diff options
author | Eike Ziller <eike.ziller@qt.io> | 2020-12-10 13:02:02 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2020-12-10 13:02:02 +0100 |
commit | 1283b15117e2c6ee110942ef6f97f120a1a4b533 (patch) | |
tree | e83ff378de66c6718e82e55d7f95fcc69af2ebd2 /cmake | |
parent | f440dfe43a286ef1d84d4fe1e281ea8996e64148 (diff) | |
parent | 8d6ca33a7af5d69883e52a0e785d6d238de67a0a (diff) | |
download | qt-creator-1283b15117e2c6ee110942ef6f97f120a1a4b533.tar.gz |
Merge remote-tracking branch 'origin/4.14'
Conflicts:
doc/qtdesignstudio/examples/loginui1/qtquickcontrols2.conf
doc/qtdesignstudio/examples/loginui2/qtquickcontrols2.conf
doc/qtdesignstudio/examples/loginui3/qtquickcontrols2.conf
doc/qtdesignstudio/examples/loginui4/qtquickcontrols2.conf
share/qtcreator/debugger/dumper.py
share/qtcreator/debugger/qttypes.py
Change-Id: Id44a67cdeeb0889ff96eddcdf409d20ca7cbdd0b
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/FindClang.cmake | 45 |
1 files changed, 35 insertions, 10 deletions
diff --git a/cmake/FindClang.cmake b/cmake/FindClang.cmake index fcc9f241e1..b515820be1 100644 --- a/cmake/FindClang.cmake +++ b/cmake/FindClang.cmake @@ -13,14 +13,39 @@ elseif (TARGET clang-cpp) set(CLANG_TOOLING_LIBS libclang clang-cpp) endif() -SET(QTC_CLANG_BUILDMODE_MATCH ON) -if (WIN32 AND TARGET libclang) - string(TOLOWER ${CMAKE_BUILD_TYPE} _type) - get_target_property(_llvmConfigs libclang IMPORTED_CONFIGURATIONS) - string(TOLOWER ${_llvmConfigs} _llvm_configs) - list(FIND _llvm_configs ${_type} _build_type_found) - if (_build_type_found LESS 0) - set(QTC_CLANG_BUILDMODE_MATCH OFF) - message("Build mode mismatch (debug vs release): limiting clangTooling") - endif() + +if (WIN32 AND TARGET clangTooling) + # check that we can compile against clangTooling + # which requires the build modes to be compatible + # (debug vs release on Windows) + include(CheckCxxSourceCompiles) + + set(CMAKE_TRY_COMPILE_CONFIGURATION ${CMAKE_BUILD_TYPE}) + set(CMAKE_REQUIRED_INCLUDES ${CLANG_INCLUDE_DIRS}) + set(CMAKE_REQUIRED_LIBRARIES clangTooling) + + check_cxx_source_compiles([=[ + #include <clang/Tooling/CommonOptionsParser.h> + #include <clang/Tooling/Tooling.h> + using namespace clang; + using namespace clang::tooling; + llvm::cl::OptionCategory CheckToolCategory("check tool options"); + int main(int argc, const char **argv) + { + CommonOptionsParser OptionsParser(argc, argv, CheckToolCategory); + ClangTool Tool(OptionsParser.getCompilations(), + OptionsParser.getSourcePathList()); + return 0; + } + ]=] QTC_CLANG_BUILDMODE_MATCH + ) + unset(CMAKE_TRY_COMPILE_CONFIGURATION) + unset(CMAKE_REQUIRED_INCLUDES) + unset(CMAKE_REQUIRED_LIBRARIES) +else() + set(QTC_CLANG_BUILDMODE_MATCH ON) +endif() + +if (NOT QTC_CLANG_BUILDMODE_MATCH) + message("Clang build mode mismatch (debug vs release): limiting clangTooling") endif() |