#
option(WITH_GZFILEOP "Compile with support for gzFile related functions" ON)
option(ZLIB_COMPAT "Compile with zlib compatible API" OFF)
+option(ZLIB_ALIASES "Provide zlib compatible targets" ON)
option(WITH_OPTIM "Build with optimisation" ON)
option(WITH_ALL_FALLBACKS "Build all generic fallback functions (Useful for Gbench)" OFF)
option(WITH_REDUCED_MEM "Reduced memory usage for special cases (reduces performance)" OFF)
endif()
if(NOT DEFINED BUILD_SHARED_LIBS)
- add_library(zlib SHARED ${ZLIB_ALL_SRCS} ${ZLIB_DLL_SRCS})
- add_library(zlibstatic STATIC ${ZLIB_ALL_SRCS})
+ add_library(zlib-ng SHARED ${ZLIB_ALL_SRCS} ${ZLIB_DLL_SRCS})
+ add_library(zlib-ng-static STATIC ${ZLIB_ALL_SRCS})
+ add_library(zlib-ng::zlib ALIAS zlib-ng)
+ add_library(zlib-ng::zlibstatic ALIAS zlib-ng-static)
- set(ZLIB_INSTALL_LIBRARIES zlib zlibstatic)
+ set(ZLIB_INSTALL_LIBRARIES zlib-ng zlib-ng-static)
else()
- add_library(zlib ${ZLIB_ALL_SRCS})
+ add_library(zlib-ng ${ZLIB_ALL_SRCS})
+ add_library(zlib-ng::zlib ALIAS zlib-ng)
if(BUILD_SHARED_LIBS)
- target_sources(zlib PRIVATE ${ZLIB_DLL_SRCS})
+ target_sources(zlib-ng PRIVATE ${ZLIB_DLL_SRCS})
else()
- add_library(zlibstatic ALIAS zlib)
+ add_library(zlib-ng-static ALIAS zlib-ng)
+ add_library(zlib-ng::zlibstatic ALIAS zlib-ng)
endif()
- set(ZLIB_INSTALL_LIBRARIES zlib)
+ set(ZLIB_INSTALL_LIBRARIES zlib-ng)
endif()
# INFO: Mimics official zlib CMake target
# Generates ZLIB.cmake in case ZLIB_COMPAT=ON and always exports the CMake target ZLIB::ZLIB
# In case ZLIB_COMPAT=OFF, the CMake target and file follows zlib-ng naming convention
if (ZLIB_COMPAT)
- if (TARGET zlib)
- set_target_properties(zlib PROPERTIES EXPORT_NAME ZLIB)
- else()
- set_target_properties(zlibstatic PROPERTIES EXPORT_NAME ZLIB)
+ set_target_properties(zlib-ng PROPERTIES EXPORT_NAME ZLIB)
+ if (NOT DEFINED BUILD_SHARED_LIBS)
+ set_target_properties(zlib-ng-static PROPERTIES EXPORT_NAME ZLIBSTATIC)
+ endif()
+else()
+ set_target_properties(zlib-ng PROPERTIES EXPORT_NAME zlib)
+ if (NOT DEFINED BUILD_SHARED_LIBS)
+ set_target_properties(zlib-ng-static PROPERTIES EXPORT_NAME zlibstatic)
+ endif()
+endif()
+
+if (ZLIB_ALIASES)
+ add_library(zlib ALIAS zlib-ng)
+ if (NOT DEFINED BUILD_SHARED_LIBS)
+ add_library(zlibstatic ALIAS zlib-ng-static)
+ elseif (NOT BUILD_SHARED_LIBS)
+ add_library(zlibstatic ALIAS zlib-ng)
endif()
endif()
if(WIN32)
# Shared library
if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)
- set_target_properties(zlib PROPERTIES OUTPUT_NAME zlib${SUFFIX})
+ set_target_properties(zlib-ng PROPERTIES OUTPUT_NAME zlib${SUFFIX})
endif()
# Static library
if(NOT DEFINED BUILD_SHARED_LIBS)
if(MSVC)
- set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME zlibstatic${SUFFIX})
+ set_target_properties(zlib-ng-static PROPERTIES OUTPUT_NAME zlibstatic${SUFFIX})
else()
- set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z${SUFFIX})
+ set_target_properties(zlib-ng-static PROPERTIES OUTPUT_NAME z${SUFFIX})
endif()
elseif(NOT BUILD_SHARED_LIBS)
if(MSVC)
- set_target_properties(zlib PROPERTIES OUTPUT_NAME zlibstatic${SUFFIX})
+ set_target_properties(zlib-ng PROPERTIES OUTPUT_NAME zlibstatic${SUFFIX})
else()
- set_target_properties(zlib PROPERTIES OUTPUT_NAME z${SUFFIX})
+ set_target_properties(zlib-ng PROPERTIES OUTPUT_NAME z${SUFFIX})
endif()
endif()
else()
endif()
if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)
- set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
+ set_target_properties(zlib-ng PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
if(ZLIB_COMPAT)
- set_target_properties(zlib PROPERTIES SOVERSION 1)
+ set_target_properties(zlib-ng PROPERTIES SOVERSION 1)
else()
- set_target_properties(zlib PROPERTIES SOVERSION 2)
+ set_target_properties(zlib-ng PROPERTIES SOVERSION 2)
endif()
if(NOT CYGWIN)
#
# This has no effect with MSVC, on that platform the version info for
# the DLL comes from the resource file win32/zlib1.rc
- set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION})
+ set_target_properties(zlib-ng PROPERTIES VERSION ${ZLIB_FULL_VERSION})
endif()
if(UNIX)
if(HAVE_NO_INTERPOSITION)
- set_target_properties(zlib PROPERTIES COMPILE_FLAGS "-fno-semantic-interposition")
+ set_target_properties(zlib-ng PROPERTIES COMPILE_FLAGS "-fno-semantic-interposition")
endif()
if(NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL AIX)
if(NOT ZLIB_COMPAT)
add_definitions(-DHAVE_SYMVER)
endif()
- set_target_properties(zlib PROPERTIES LINK_FLAGS
+ set_target_properties(zlib-ng PROPERTIES LINK_FLAGS
"-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib${SUFFIX}.map\"")
endif()
endif()
elseif(WIN32)
# Creates zlib1.dll when building shared library version
if(ZLIB_COMPAT)
- set_target_properties(zlib PROPERTIES SUFFIX "1.dll")
+ set_target_properties(zlib-ng PROPERTIES SUFFIX "1.dll")
else()
- set_target_properties(zlib PROPERTIES SUFFIX "2.dll")
+ set_target_properties(zlib-ng PROPERTIES SUFFIX "2.dll")
endif()
endif()
endif()
add_executable(example example.c)
configure_test_executable(example)
-target_link_libraries(example zlib)
+target_link_libraries(example zlib-ng)
add_test(NAME example COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:example>)
add_executable(minigzip minigzip.c)
configure_test_executable(minigzip)
if(NOT DEFINED BUILD_SHARED_LIBS)
- target_link_libraries(minigzip zlibstatic)
+ target_link_libraries(minigzip zlib-ng-static)
else()
- target_link_libraries(minigzip zlib)
+ target_link_libraries(minigzip zlib-ng)
endif()
if(BASEARCH_S360_FOUND)
if(WITH_DFLTCC_DEFLATE OR WITH_DFLTCC_INFLATE)
add_executable(minideflate minideflate.c)
configure_test_executable(minideflate)
-target_link_libraries(minideflate zlib)
+target_link_libraries(minideflate zlib-ng)
set(MINIDEFLATE_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:minideflate>)
if(INSTALL_UTILS)
add_executable(switchlevels switchlevels.c)
configure_test_executable(switchlevels)
-target_link_libraries(switchlevels zlib)
+target_link_libraries(switchlevels zlib-ng)
set(SWITCHLEVELS_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:switchlevels>)
add_executable(infcover infcover.c)
configure_test_executable(infcover)
-target_link_libraries(infcover zlib)
+target_link_libraries(infcover zlib-ng)
if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)
target_sources(infcover PRIVATE ${PROJECT_SOURCE_DIR}/inftrees.c)
endif()
if(NOT DEFINED BUILD_SHARED_LIBS)
# Link statically in order to test internal zlib-ng functions.
- target_link_libraries(gtest_zlib zlibstatic)
+ target_link_libraries(gtest_zlib zlib-ng-static)
else()
- target_link_libraries(gtest_zlib zlib)
+ target_link_libraries(gtest_zlib zlib-ng)
endif()
if(BUILD_SHARED_LIBS)