Skip to content

Commit

Permalink
Fix static LLVM linking (#225)
Browse files Browse the repository at this point in the history
  • Loading branch information
bkryza committed Jan 28, 2024
1 parent 875bf16 commit 6226b31
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 12 deletions.
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ endif

LLVM_VERSION ?=
LLVM_CONFIG_PATH ?=
LLVM_SHARED ?= ON
CMAKE_PREFIX ?=
CMAKE_CXX_FLAGS ?=
CMAKE_EXE_LINKER_FLAGS ?=
Expand Down Expand Up @@ -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)

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

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

Expand Down
22 changes: 10 additions & 12 deletions cmake/LLVMSetup.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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 "")
Expand Down
2 changes: 2 additions & 0 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 6226b31

Please sign in to comment.