summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt66
-rw-r--r--test/CMakeLists.txt16
-rw-r--r--test/add-subdirectory-project/CMakeLists.txt2
-rw-r--r--test/benchmarks/CMakeLists.txt4
-rw-r--r--test/fuzz/CMakeLists.txt4
-rw-r--r--test/pigz/CMakeLists.txt1
6 files changed, 56 insertions, 37 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 31e8c69152..9e995cc315 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -89,6 +89,7 @@ endif()
#
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)
@@ -1357,30 +1358,47 @@ if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)
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()
@@ -1396,20 +1414,20 @@ endforeach()
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()
@@ -1418,12 +1436,12 @@ 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)
@@ -1434,18 +1452,18 @@ if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)
#
# 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()
@@ -1455,9 +1473,9 @@ if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)
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()
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index ababb3c483..a9eb9f609d 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -13,15 +13,15 @@ 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)
@@ -32,7 +32,7 @@ set(MINIGZIP_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:minigzip>)
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)
@@ -44,12 +44,12 @@ endif()
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()
@@ -231,9 +231,9 @@ if(WITH_GTEST)
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)
diff --git a/test/add-subdirectory-project/CMakeLists.txt b/test/add-subdirectory-project/CMakeLists.txt
index a18626febb..2c35218ac8 100644
--- a/test/add-subdirectory-project/CMakeLists.txt
+++ b/test/add-subdirectory-project/CMakeLists.txt
@@ -10,4 +10,4 @@ set(ZLIB_ENABLE_TESTS ON CACHE BOOL "Build test binaries" FORCE)
add_subdirectory(../.. zlib-ng)
add_executable(app main.c)
-target_link_libraries(app zlibstatic)
+target_link_libraries(app zlib-ng-static)
diff --git a/test/benchmarks/CMakeLists.txt b/test/benchmarks/CMakeLists.txt
index 3e229f821c..d7549c3aaa 100644
--- a/test/benchmarks/CMakeLists.txt
+++ b/test/benchmarks/CMakeLists.txt
@@ -56,7 +56,7 @@ target_include_directories(benchmark_zlib PRIVATE
${PROJECT_BINARY_DIR}
${benchmark_SOURCE_DIR}/benchmark/include)
-target_link_libraries(benchmark_zlib zlibstatic benchmark::benchmark)
+target_link_libraries(benchmark_zlib zlib-ng-static benchmark::benchmark)
if(WIN32)
target_link_libraries(benchmark_zlib shlwapi)
endif()
@@ -111,5 +111,5 @@ if(WITH_BENCHMARK_APPS)
# We need the static png library if we're statically linking to zlib,
# otherwise it will resolve these things in the system provided dynamic
# libraries (likely linked to stock zlib)
- target_link_libraries(benchmark_zlib_apps libpng.a zlibstatic benchmark::benchmark)
+ target_link_libraries(benchmark_zlib_apps libpng.a zlib-ng-static benchmark::benchmark)
endif()
diff --git a/test/fuzz/CMakeLists.txt b/test/fuzz/CMakeLists.txt
index db54a7e42d..e5a7455dda 100644
--- a/test/fuzz/CMakeLists.txt
+++ b/test/fuzz/CMakeLists.txt
@@ -30,9 +30,9 @@ foreach(FUZZER ${FUZZERS})
endif()
if(NOT DEFINED BUILD_SHARED_LIBS)
- target_link_libraries(${FUZZER} zlibstatic)
+ target_link_libraries(${FUZZER} zlib-ng-static)
else()
- target_link_libraries(${FUZZER} zlib)
+ target_link_libraries(${FUZZER} zlib-ng)
endif()
if(FUZZING_ENGINE_FOUND)
diff --git a/test/pigz/CMakeLists.txt b/test/pigz/CMakeLists.txt
index bc6830ae24..e920f51f92 100644
--- a/test/pigz/CMakeLists.txt
+++ b/test/pigz/CMakeLists.txt
@@ -120,6 +120,7 @@ if(NOT DEFINED ZLIB_ROOT)
find_package(Zlib REQUIRED)
endif()
+set(ZLIB_ALIASES ON)
set(ZLIB_COMPAT ON)
set(ZLIB_ENABLE_TESTS OFF)