summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe Giboudeaux <christophe@krop.fr>2020-08-28 10:42:23 +0200
committerChristophe Giboudeaux <christophe@krop.fr>2020-09-15 15:39:42 +0200
commit166be41502ac77fc355f7c28c3289c95ee45b543 (patch)
tree2a509ecc923f02def180ffce85295dea01f2c49f
parentb5da5f522616f99b000ed1c64a5cc1de0c3f8937 (diff)
CMake: Fix build when using the unified clang library
Since version 9, Clang can produce a single clang-cpp which replaces all the clang component libraries. If the unified library exists, WrapLibClang will use it for linking targets. Task-number: QTBUG-83864 Change-Id: I81df7001daa79bf90dbd631c856e6a9c6aeccd02 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--cmake/FindWrapLibClang.cmake7
1 files changed, 5 insertions, 2 deletions
diff --git a/cmake/FindWrapLibClang.cmake b/cmake/FindWrapLibClang.cmake
index 0cd388a5e..206ba0448 100644
--- a/cmake/FindWrapLibClang.cmake
+++ b/cmake/FindWrapLibClang.cmake
@@ -27,7 +27,7 @@ if(WrapLibClang_FIND_VERSION AND LLVM_PACKAGE_VERSION
set(__wrap_lib_clang_requested_version_found TRUE)
endif()
-if(TARGET libclang AND TARGET clangHandleCXX AND __wrap_lib_clang_requested_version_found)
+if(TARGET libclang AND (TARGET clang-cpp OR TARGET clangHandleCXX) AND __wrap_lib_clang_requested_version_found)
set(WrapLibClang_FOUND TRUE)
get_target_property(type libclang TYPE)
@@ -47,7 +47,10 @@ if(TARGET libclang AND TARGET clangHandleCXX AND __wrap_lib_clang_requested_vers
endif()
qt_internal_disable_find_package_global_promotion(Threads::Threads)
target_link_libraries(WrapLibClang::WrapLibClang
- INTERFACE libclang clangHandleCXX Threads::Threads)
+ INTERFACE libclang
+ $<IF:$<TARGET_EXISTS:clang-cpp>,clang-cpp LLVM,clangHandleCXX> # lupdate must link to LLVM when using clang-cpp
+ Threads::Threads
+ )
foreach(version MAJOR MINOR PATCH)
set(QT_LIB_CLANG_VERSION_${version} ${LLVM_VERSION_${version}} CACHE STRING "" FORCE)