Fix static LLVM linking (#225)

This commit is contained in:
Bartek Kryza
2024-01-28 20:02:29 +01:00
parent 875bf16621
commit 6226b31ea4
3 changed files with 16 additions and 12 deletions

View File

@@ -32,6 +32,7 @@ endif
LLVM_VERSION ?= LLVM_VERSION ?=
LLVM_CONFIG_PATH ?= LLVM_CONFIG_PATH ?=
LLVM_SHARED ?= ON
CMAKE_PREFIX ?= CMAKE_PREFIX ?=
CMAKE_CXX_FLAGS ?= CMAKE_CXX_FLAGS ?=
CMAKE_EXE_LINKER_FLAGS ?= CMAKE_EXE_LINKER_FLAGS ?=
@@ -60,6 +61,7 @@ debug/CMakeLists.txt:
-DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \ -DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION} \ -DLLVM_VERSION=${LLVM_VERSION} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \ -DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DLINK_LLVM_SHARED=${LLVM_SHARED} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \ -DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES) -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)" \ -DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION} \ -DLLVM_VERSION=${LLVM_VERSION} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \ -DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DLINK_LLVM_SHARED=${LLVM_SHARED} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \ -DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES) -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)" \ -DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION} \ -DLLVM_VERSION=${LLVM_VERSION} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \ -DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DLINK_LLVM_SHARED=${LLVM_SHARED} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \ -DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES) -DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES)

View File

@@ -67,18 +67,16 @@ else(LINK_LLVM_SHARED)
LLVMBitReader LLVMBitReader
LLVMCore LLVMCore
LLVMSupport) LLVMSupport)
if(MSVC) if(${LLVM_PACKAGE_VERSION} VERSION_LESS "15.0")
if(${LLVM_PACKAGE_VERSION} VERSION_LESS "15.0") list(REMOVE_ITEM LIBTOOLING_LIBS clangSupport)
list(REMOVE_ITEM LIBTOOLING_LIBS clangSupport) else()
else() list(APPEND LIBTOOLING_LIBS
list(APPEND LIBTOOLING_LIBS LLVMWindowsDriver
LLVMWindowsDriver LLVMWindowsManifest)
LLVMWindowsManifest) endif()
endif() if(${LLVM_PACKAGE_VERSION} VERSION_GREATER_EQUAL "16.0")
if(${LLVM_PACKAGE_VERSION} VERSION_GREATER_EQUAL "17.0") list(APPEND LIBTOOLING_LIBS clangASTMatchers)
list(APPEND LIBTOOLING_LIBS clangASTMatchers) endif()
endif()
endif(MSVC)
endif(LINK_LLVM_SHARED) endif(LINK_LLVM_SHARED)
if("${LIBTOOLING_LIBS}" STREQUAL "") if("${LIBTOOLING_LIBS}" STREQUAL "")

View File

@@ -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.: # 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 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 # Optionally, to install in default prefix
make install make install