diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,9 +39,11 @@ set(HAS_STD_REGEX FALSE) endif() -# Don't link against LLVMSupport, causes: CommandLine Error: Option 'view-background' registered more than once! STRING(REPLACE " " ";" LLVM_LIBS_LIST ${LLVM_LIBS}) # Transform into a list -LIST(REMOVE_ITEM LLVM_LIBS_LIST "-lLLVMSupport") # Remove element +if (NOT LLVM_SHARED_MODE) + # Don't link against LLVMSupport, causes: CommandLine Error: Option 'view-background' registered more than once! + LIST(REMOVE_ITEM LLVM_LIBS_LIST "-lLLVMSupport") # Remove element +endif() macro(add_clang_plugin name) set (srcs ${ARGN}) diff --git a/cmake/FindLLVM.cmake b/cmake/FindLLVM.cmake --- a/cmake/FindLLVM.cmake +++ b/cmake/FindLLVM.cmake @@ -114,6 +114,17 @@ OUTPUT_VARIABLE LLVM_INSTALL_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE ) + + execute_process( + COMMAND ${LLVM_CONFIG_EXECUTABLE} --shared-mode + OUTPUT_VARIABLE _LLVM_SHARED_MODE + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if (_LLVM_SHARED_MODE STREQUAL "shared") + set(LLVM_SHARED_MODE ON) + else() + set(LLVM_SHARED_MODE OFF) + endif() # potentially add include dir from binary dir for non-installed LLVM execute_process(