Skip to content

Commit

Permalink
Fix linking against built zlib
Browse files Browse the repository at this point in the history
  • Loading branch information
caseif committed Nov 10, 2023
1 parent 8945e77 commit c350b78
Showing 1 changed file with 26 additions and 12 deletions.
38 changes: 26 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ set(TMP_INCLUDE_DIR "${PROJECT_BINARY_DIR}/include.tmp")
set(EXT_INCLUDE_DIRS "")
set(EXT_LIBS "")
set(EXT_LIBS_STATIC "")
set(EXT_DEPS "")
set(EXT_DEPS_STATIC "")

if(${LIBARP_FEATURE_DEFLATE})
add_definitions("-DFEATURE_DEFLATE")
Expand All @@ -107,19 +109,21 @@ if(${LIBARP_FEATURE_DEFLATE})
list(APPEND EXT_LIBS "${ZLIB_LIBRARIES}")
list(APPEND EXT_LIBS_STATIC "${ZLIB_LIBRARIES}")
else()
set(ZLIB_SOURCE_DIR "${PROJECT_SOURCE_DIR}/libs/zlib")
set(ZLIB_INCLUDE_DIRS "${ZLIB_SOURCE_DIR};${TMP_INCLUDE_DIR}/zlib")
set(ZLIB_INCLUDE_DIR "${ZLIB_INCLUDE_DIRS}")
configure_file("${ZLIB_SOURCE_DIR}/zconf.h.in" "${TMP_INCLUDE_DIR}/zlib/zconf.h")
set(ZLIB_LIBRARY "zlib")
set(ZLIB_LIBRARIES "${ZLIB_LIBRARY}")
message("ZLIB_INCLUDE_DIRS: ${ZLIB_INCLUDE_DIRS}")
message("ZLIB_LIBRARIES: ${ZLIB_LIBRARIES}")
if(NOT REUSE_ZLIB)
message("not reusing zlib")
endif()

set(ZLIB_TARGET "zlib")
set(ZLIB_STATIC_TARGET "zlibstatic")

list(APPEND EXT_INCLUDE_DIRS "${ZLIB_INCLUDE_DIRS}")
list(APPEND EXT_LIBS "${ZLIB_LIBRARIES}")
list(APPEND EXT_LIBS_STATIC "${ZLIB_STATIC_TARGET}")
if(NOT TARGET "${ZLIB_TARGET}")
set(ZLIB_SOURCE_DIR "${PROJECT_SOURCE_DIR}/libs/zlib")

set(ZLIB_INCLUDE_DIRS "${TMP_INCLUDE_DIR}/zlib")
configure_file("${ZLIB_SOURCE_DIR}/zconf.h.in" "${TMP_INCLUDE_DIR}/zlib/zconf.h")

if(NOT TARGET "${ZLIB_LIBRARY}")
set(ENABLE_EXAMPLES OFF CACHE BOOL "" FORCE)
add_subdirectory("${ZLIB_SOURCE_DIR}")
set_target_properties(minigzip example
Expand All @@ -129,8 +133,11 @@ if(${LIBARP_FEATURE_DEFLATE})
PROPERTIES EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_DEFAULT_BUILD 1)
endif()

_arp_disable_warnings("${ZLIB_LIBRARY}")
_arp_disable_warnings("${ZLIB_TARGET}")
endif()

list(APPEND EXT_DEPS "${ZLIB_TARGET}")
list(APPEND EXT_DEPS_STATIC "${ZLIB_STATIC_TARGET}")
endif()
endif()

Expand Down Expand Up @@ -222,6 +229,13 @@ target_include_directories("${PROJECT_NAME}_static" PUBLIC "${EXT_INCLUDE_DIRS}"
target_link_libraries("${PROJECT_NAME}" "${EXT_LIBS}")
target_link_libraries("${PROJECT_NAME}_static" "${EXT_LIBS_STATIC}")

if(NOT "${EXT_DEPS}" STREQUAL "")
add_dependencies("${PROJECT_NAME}" "${EXT_DEPS}")
endif()
if(NOT "${EXT_DEPS_STATIC}" STREQUAL "")
add_dependencies("${PROJECT_NAME}_static" "${EXT_DEPS_STATIC}")
endif()

# set the C standard
set_target_properties("${PROJECT_NAME}" PROPERTIES C_STANDARD 11)
set_target_properties("${PROJECT_NAME}" PROPERTIES C_STANDARD_REQUIRED ON)
Expand Down Expand Up @@ -303,5 +317,5 @@ function(copy_dep_output DEP_TARGET)
endfunction()

if(LIBARP_FEATURE_DEFLATE AND NOT USE_SYSTEM_ZLIB)
copy_dep_output("${ZLIB_LIBRARY}")
copy_dep_output("${ZLIB_TARGET}")
endif()

0 comments on commit c350b78

Please sign in to comment.