]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Rename CMake targets to avoid clashes when used as a subproject (#1970)
authorCameron Cawley <ccawley2011@gmail.com>
Tue, 28 Oct 2025 22:34:56 +0000 (22:34 +0000)
committerGitHub <noreply@github.com>
Tue, 28 Oct 2025 22:34:56 +0000 (23:34 +0100)
CMakeLists.txt
test/CMakeLists.txt
test/add-subdirectory-project/CMakeLists.txt
test/benchmarks/CMakeLists.txt
test/fuzz/CMakeLists.txt
test/pigz/CMakeLists.txt

index 31e8c691526cbdd15f717e2441b3515ace0b430b..9e995cc31548e1fd1802a39e820fd010d1ab49b6 100644 (file)
@@ -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()
index ababb3c4832ff9d18e38517ba2b46f49ea732b10..a9eb9f609dd534b929e94171eb1433a89c680077 100644 (file)
@@ -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)
index a18626febb2f7d61963218784433815f40660317..2c35218ac85b169e4bf277c09ea3d6a68df43aa0 100644 (file)
@@ -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)
index 3e229f821cd7f36dec6f3dd5c9367a085e828683..d7549c3aaa48849d66cb6ac0bfbabf6cd2133a2c 100644 (file)
@@ -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()
index db54a7e42dd8bc023a52badcc898f61654c3a6fb..e5a7455dda7dbe8e31325ee46d6bf8cb7545f3b1 100644 (file)
@@ -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)
index bc6830ae241c9b3ca5b32ecfe527981e17585ccc..e920f51f92ab39f861feac21cdb3b1ab119d75d4 100644 (file)
@@ -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)