diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,9 +125,14 @@ if(WIN32) target_link_libraries(${name} version.lib) endif() - target_link_libraries(${name} clangTooling) - target_link_libraries(${name} clangToolingCore) - target_link_libraries(${name} ${clang_tooling_refactoring_lib}) + # clang >= 9.0 can provide a single shared library instead of split ones + if(CLANG_CLANG-CPP_LIB) + target_link_libraries(${name} clang-cpp) + else() + target_link_libraries(${name} clangTooling) + target_link_libraries(${name} clangToolingCore) + target_link_libraries(${name} ${clang_tooling_refactoring_lib}) + endif() endmacro() macro(add_clang_plugin name) diff --git a/cmake/FindClang.cmake b/cmake/FindClang.cmake --- a/cmake/FindClang.cmake +++ b/cmake/FindClang.cmake @@ -62,6 +62,7 @@ # note: On Windows there's 'libclang.dll' instead of 'clang.dll' -> search for 'libclang', too find_library(CLANG_LIBCLANG_LIB NAMES clang libclang HINTS ${LLVM_LIBRARY_DIRS}) # LibClang: high-level C interface + FIND_AND_ADD_CLANG_LIB(clang-cpp) FIND_AND_ADD_CLANG_LIB(clangFrontend) FIND_AND_ADD_CLANG_LIB(clangDriver) FIND_AND_ADD_CLANG_LIB(clangCodeGen)