Merge pull request #234 from bkryza/fix-static-linking-llvm-12

Fix static LLVM linking (#225)
This commit is contained in:
Bartek Kryza
2024-01-28 20:47:59 +01:00
committed by GitHub
3 changed files with 16 additions and 12 deletions

View File

@@ -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)

View File

@@ -67,7 +67,6 @@ else(LINK_LLVM_SHARED)
LLVMBitReader
LLVMCore
LLVMSupport)
if(MSVC)
if(${LLVM_PACKAGE_VERSION} VERSION_LESS "15.0")
list(REMOVE_ITEM LIBTOOLING_LIBS clangSupport)
else()
@@ -75,10 +74,9 @@ else(LINK_LLVM_SHARED)
LLVMWindowsDriver
LLVMWindowsManifest)
endif()
if(${LLVM_PACKAGE_VERSION} VERSION_GREATER_EQUAL "17.0")
if(${LLVM_PACKAGE_VERSION} VERSION_GREATER_EQUAL "16.0")
list(APPEND LIBTOOLING_LIBS clangASTMatchers)
endif()
endif(MSVC)
endif(LINK_LLVM_SHARED)
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.:
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