Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 4644f3b

Browse files
committedJul 12, 2024
Enable user-configuration of LLVM static/shared linking
1 parent 800b775 commit 4644f3b

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed
 

‎cmake/Modules/FindLLVM.cmake

+21-9
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,14 @@ else()
7777
if(LLVM_FIND_QUIETLY)
7878
set(_quiet_arg ERROR_QUIET)
7979
endif()
80+
if (LLVM_IS_SHARED)
81+
set(sharedstatic "--link-shared")
82+
else()
83+
set(sharedstatic "--link-static")
84+
endif()
8085
set(result_code)
8186
execute_process(
82-
COMMAND ${LLVM_CONFIG} --${flag}
87+
COMMAND ${LLVM_CONFIG} ${sharedstatic} --${flag}
8388
RESULT_VARIABLE result_code
8489
OUTPUT_VARIABLE LLVM_${var}
8590
OUTPUT_STRIP_TRAILING_WHITESPACE
@@ -97,9 +102,14 @@ else()
97102
if(LLVM_FIND_QUIETLY)
98103
set(_quiet_arg ERROR_QUIET)
99104
endif()
105+
if (LLVM_IS_SHARED)
106+
set(sharedstatic "--link-shared")
107+
else()
108+
set(sharedstatic "--link-static")
109+
endif()
100110
set(result_code)
101111
execute_process(
102-
COMMAND ${LLVM_CONFIG} --${flag} ${components}
112+
COMMAND ${LLVM_CONFIG} ${sharedstatic} --${flag} ${components}
103113
RESULT_VARIABLE result_code
104114
OUTPUT_VARIABLE tmplibs
105115
OUTPUT_STRIP_TRAILING_WHITESPACE
@@ -113,6 +123,15 @@ else()
113123
endif()
114124
endmacro()
115125

126+
if (NOT DEFINED LLVM_IS_SHARED)
127+
llvm_set(SHARED_MODE shared-mode)
128+
if(LLVM_SHARED_MODE STREQUAL "shared")
129+
set(LLVM_IS_SHARED ON)
130+
else()
131+
set(LLVM_IS_SHARED OFF)
132+
endif()
133+
endif()
134+
116135
llvm_set(VERSION_STRING version)
117136
llvm_set(CXXFLAGS cxxflags)
118137
llvm_set(INCLUDE_DIRS includedir true)
@@ -124,13 +143,6 @@ else()
124143
string(REGEX REPLACE "([0-9]+).*" "\\1" LLVM_VERSION_MAJOR "${LLVM_VERSION_STRING}" )
125144
string(REGEX REPLACE "[0-9]+\\.([0-9]+).*[A-Za-z]*" "\\1" LLVM_VERSION_MINOR "${LLVM_VERSION_STRING}" )
126145

127-
llvm_set(SHARED_MODE shared-mode)
128-
if(LLVM_SHARED_MODE STREQUAL "shared")
129-
set(LLVM_IS_SHARED ON)
130-
else()
131-
set(LLVM_IS_SHARED OFF)
132-
endif()
133-
134146
llvm_set(LDFLAGS ldflags)
135147
llvm_set(SYSTEM_LIBS system-libs)
136148
string(REPLACE "\n" " " LLVM_LDFLAGS "${LLVM_LDFLAGS} ${LLVM_SYSTEM_LIBS}")

0 commit comments

Comments
 (0)
Please sign in to comment.