Skip to content

Commit 917119e

Browse files
petrhosekzmodem
authored andcommitted
[CMake] Link against ZLIB::ZLIB
This is the imported target that find_package(ZLIB) defines. Differential Revision: https://reviews.llvm.org/D74176 (cherry picked from commit 2181bf4)
1 parent 499b169 commit 917119e

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

llvm/lib/Support/CMakeLists.txt

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
if(LLVM_ENABLE_ZLIB)
2-
set(system_libs ${ZLIB_LIBRARY})
2+
set(imported_libs ZLIB::ZLIB)
33
endif()
44

55
if( MSVC OR MINGW )
@@ -186,10 +186,29 @@ add_llvm_component_library(LLVMSupport
186186
${LLVM_MAIN_INCLUDE_DIR}/llvm/ADT
187187
${LLVM_MAIN_INCLUDE_DIR}/llvm/Support
188188
${Backtrace_INCLUDE_DIRS}
189-
LINK_LIBS ${system_libs} ${delayload_flags} ${Z3_LINK_FILES}
189+
LINK_LIBS ${system_libs} ${imported_libs} ${delayload_flags} ${Z3_LINK_FILES}
190190
)
191191

192-
set_property(TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS "${system_libs}")
192+
set(llvm_system_libs ${system_libs})
193+
194+
if(LLVM_ENABLE_ZLIB)
195+
string(TOUPPER ${CMAKE_BUILD_TYPE} build_type)
196+
get_property(zlib_library TARGET ZLIB::ZLIB PROPERTY LOCATION_${build_type})
197+
if(NOT zlib_library)
198+
get_property(zlib_library TARGET ZLIB::ZLIB PROPERTY LOCATION)
199+
endif()
200+
get_filename_component(zlib_library ${zlib_library} NAME)
201+
if(zlib_library MATCHES "^${CMAKE_STATIC_LIBRARY_PREFIX}.*${CMAKE_STATIC_LIBRARY_SUFFIX}$")
202+
STRING(REGEX REPLACE "^${CMAKE_STATIC_LIBRARY_PREFIX}" "" zlib_library ${zlib_library})
203+
STRING(REGEX REPLACE "${CMAKE_STATIC_LIBRARY_SUFFIX}$" "" zlib_library ${zlib_library})
204+
elseif(zlib_library MATCHES "^${CMAKE_SHARED_LIBRARY_PREFIX}.*${CMAKE_SHARED_LIBRARY_SUFFIX}$")
205+
STRING(REGEX REPLACE "^${CMAKE_SHARED_LIBRARY_PREFIX}" "" zlib_library ${zlib_library})
206+
STRING(REGEX REPLACE "${CMAKE_SHARED_LIBRARY_SUFFIX}$" "" zlib_library ${zlib_library})
207+
endif()
208+
set(llvm_system_libs ${llvm_system_libs} "${zlib_library}")
209+
endif()
210+
211+
set_property(TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS "${llvm_system_libs}")
193212

194213
if(LLVM_WITH_Z3)
195214
target_include_directories(LLVMSupport SYSTEM

0 commit comments

Comments
 (0)