From 164b72b22a4968c1c0894d40edb365cd45fb4eda Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 4 Sep 2015 10:21:41 +0200 Subject: [PATCH] Clang: Check for libclang main header file Otherwise we will run into compile errors if the libclang dev package is not installed. Change-Id: I31c05d9d0e11154f1c3748e6736c143805d310e8 Reviewed-by: Christian Kandeler --- src/plugins/clangcodemodel/clangcodemodel.qbs | 2 +- src/shared/clang/clang_installation.pri | 3 ++- src/tools/clangbackend/clangbackend.qbs | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/clangcodemodel/clangcodemodel.qbs b/src/plugins/clangcodemodel/clangcodemodel.qbs index cc41d8ebd2d..ca81f76fa86 100644 --- a/src/plugins/clangcodemodel/clangcodemodel.qbs +++ b/src/plugins/clangcodemodel/clangcodemodel.qbs @@ -30,7 +30,7 @@ QtcPlugin { property string llvmLibs: Clang.libraries(qbs.targetOS) property string llvmVersion: Clang.version(llvmConfig, QtcProcessOutputReader) - condition: llvmConfig + condition: llvmConfig && File.exists(llvmIncludeDir.concat("/clang-c/Index.h")) cpp.includePaths: base.concat(llvmIncludeDir) cpp.libraryPaths: base.concat(llvmLibDir) diff --git a/src/shared/clang/clang_installation.pri b/src/shared/clang/clang_installation.pri index 7ce74635ee5..6e0ced06e84 100644 --- a/src/shared/clang/clang_installation.pri +++ b/src/shared/clang/clang_installation.pri @@ -87,7 +87,8 @@ unix { LLVM_VERSION = $$findLLVMVersionFromLibDir($$LLVM_LIBDIR) } - !exists($$LLVM_INCLUDEPATH): error("Cannot detect include dir for clang, candidate: $$LLVM_INCLUDEPATH") + LIBCLANG_MAIN_HEADER = $$LLVM_INCLUDEPATH/clang-c/Index.h + !exists($$LIBCLANG_MAIN_HEADER): error("Cannot find libclang's main header file, candidate: $$LIBCLANG_MAIN_HEADER") !exists($$LLVM_LIBDIR): error("Cannot detect lib dir for clang, candidate: $$LLVM_LIBDIR") clang_lib = $$findClangLibInLibDir($$LLVM_LIBDIR) isEmpty(clang_lib): error("Cannot find Clang shared library in $$LLVM_LIBDIR") diff --git a/src/tools/clangbackend/clangbackend.qbs b/src/tools/clangbackend/clangbackend.qbs index c46534240d8..16b0f948e69 100644 --- a/src/tools/clangbackend/clangbackend.qbs +++ b/src/tools/clangbackend/clangbackend.qbs @@ -1,4 +1,5 @@ import qbs 1.0 +import qbs.File import QtcClangInstallation as Clang import QtcFunctions import QtcProcessOutputReader @@ -23,7 +24,7 @@ QtcTool { property string llvmLibDir: Clang.libDir(llvmConfig, QtcProcessOutputReader) property string llvmLibs: Clang.libraries(qbs.targetOS) - condition: llvmConfig + condition: llvmConfig && File.exists(llvmIncludeDir.concat("/clang-c/Index.h")) cpp.includePaths: base.concat(["ipcsource", llvmIncludeDir]) cpp.libraryPaths: base.concat(llvmLibDir)