diff --git a/Makefile b/Makefile index 119b0cbff..78058d762 100644 --- a/Makefile +++ b/Makefile @@ -32,6 +32,7 @@ endif LLVM_VERSION ?= LLVM_CONFIG_PATH ?= +LLVM_SHARED ?= ON CMAKE_PREFIX ?= CMAKE_CXX_FLAGS ?= CMAKE_EXE_LINKER_FLAGS ?= @@ -60,6 +61,7 @@ debug/CMakeLists.txt: -DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \ -DLLVM_VERSION=${LLVM_VERSION} \ -DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \ + -DLINK_LLVM_SHARED=${LLVM_SHARED} \ -DCMAKE_PREFIX=${CMAKE_PREFIX} \ -DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES) @@ -73,6 +75,7 @@ release/CMakeLists.txt: -DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \ -DLLVM_VERSION=${LLVM_VERSION} \ -DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \ + -DLINK_LLVM_SHARED=${LLVM_SHARED} \ -DCMAKE_PREFIX=${CMAKE_PREFIX} \ -DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES) @@ -87,6 +90,7 @@ debug_tidy/CMakeLists.txt: -DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \ -DLLVM_VERSION=${LLVM_VERSION} \ -DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \ + -DLINK_LLVM_SHARED=${LLVM_SHARED} \ -DCMAKE_PREFIX=${CMAKE_PREFIX} \ -DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES) diff --git a/cmake/LLVMSetup.cmake b/cmake/LLVMSetup.cmake index e42db14c8..a5b27081c 100644 --- a/cmake/LLVMSetup.cmake +++ b/cmake/LLVMSetup.cmake @@ -67,18 +67,16 @@ else(LINK_LLVM_SHARED) LLVMBitReader LLVMCore LLVMSupport) - if(MSVC) - if(${LLVM_PACKAGE_VERSION} VERSION_LESS "15.0") - list(REMOVE_ITEM LIBTOOLING_LIBS clangSupport) - else() - list(APPEND LIBTOOLING_LIBS - LLVMWindowsDriver - LLVMWindowsManifest) - endif() - if(${LLVM_PACKAGE_VERSION} VERSION_GREATER_EQUAL "17.0") - list(APPEND LIBTOOLING_LIBS clangASTMatchers) - endif() - endif(MSVC) + if(${LLVM_PACKAGE_VERSION} VERSION_LESS "15.0") + list(REMOVE_ITEM LIBTOOLING_LIBS clangSupport) + else() + list(APPEND LIBTOOLING_LIBS + LLVMWindowsDriver + LLVMWindowsManifest) + endif() + if(${LLVM_PACKAGE_VERSION} VERSION_GREATER_EQUAL "16.0") + list(APPEND LIBTOOLING_LIBS clangASTMatchers) + endif() endif(LINK_LLVM_SHARED) if("${LIBTOOLING_LIBS}" STREQUAL "") diff --git a/docs/installation.md b/docs/installation.md index a42829b0c..c4d2e5b3c 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -84,6 +84,8 @@ LLVM_CONFIG_PATH=/usr/bin/llvm-config-16 make release # or directly specify the path where LLVMConfig.cmake can be found on your system, e.g.: CMAKE_PREFIX=/usr/lib/llvm-16/lib/cmake/llvm make release +# By default clang-uml is linked against shared LLVM libraries, this can be changed using: +LLVM_SHARED=OFF LLVM_VERSION=16 make release # Optionally, to install in default prefix make install