2019-04-03 17:26:27 +02:00
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
2024-04-30 10:36:31 +02:00
|
|
|
index 15ceebe..03825a2 100644
|
2019-04-03 17:26:27 +02:00
|
|
|
--- a/CMakeLists.txt
|
|
|
|
|
+++ b/CMakeLists.txt
|
2024-04-30 10:36:31 +02:00
|
|
|
@@ -1,23 +1,21 @@
|
|
|
|
|
-cmake_minimum_required(VERSION 2.4.4...3.15.0)
|
2019-04-03 17:26:27 +02:00
|
|
|
-set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
|
2024-04-30 10:36:31 +02:00
|
|
|
+cmake_minimum_required(VERSION 3.15)
|
2019-04-03 17:26:27 +02:00
|
|
|
|
|
|
|
|
-project(zlib C)
|
|
|
|
|
-
|
2024-04-30 10:36:31 +02:00
|
|
|
-set(VERSION "1.3.1")
|
|
|
|
|
+project(zlib VERSION 1.3.1 LANGUAGES C)
|
|
|
|
|
|
|
|
|
|
option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" ON)
|
|
|
|
|
|
2019-04-03 17:26:27 +02:00
|
|
|
-set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
|
|
|
|
|
-set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
|
|
|
|
|
-set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
|
|
|
|
|
-set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages")
|
|
|
|
|
-set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
|
2023-06-13 13:59:10 +02:00
|
|
|
+include(GNUInstallDirs)
|
|
|
|
|
+set(INSTALL_BIN_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH "Installation directory for executables")
|
|
|
|
|
+set(INSTALL_LIB_DIR "${CMAKE_INSTALL_LIBDIR}" CACHE PATH "Installation directory for libraries")
|
|
|
|
|
+set(INSTALL_INC_DIR "${CMAKE_INSTALL_INCLUDEDIR}" CACHE PATH "Installation directory for headers")
|
2019-04-03 17:26:27 +02:00
|
|
|
+set(INSTALL_MAN_DIR "${CMAKE_INSTALL_MANDIR}" CACHE PATH "Installation directory for manual pages")
|
|
|
|
|
+set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_DATADIR}/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
|
|
|
|
|
|
|
|
|
|
include(CheckTypeSize)
|
|
|
|
|
include(CheckFunctionExists)
|
|
|
|
|
include(CheckIncludeFile)
|
|
|
|
|
include(CheckCSourceCompiles)
|
|
|
|
|
-enable_testing()
|
|
|
|
|
+include(CTest)
|
|
|
|
|
|
|
|
|
|
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
|
|
|
|
|
check_include_file(stdint.h HAVE_STDINT_H)
|
2024-04-30 10:36:31 +02:00
|
|
|
@@ -149,12 +147,21 @@ if(MINGW)
|
2020-01-21 17:38:38 +01:00
|
|
|
set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
|
2019-04-03 17:26:27 +02:00
|
|
|
endif(MINGW)
|
|
|
|
|
|
2023-06-13 13:59:10 +02:00
|
|
|
-add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
2024-04-30 10:36:31 +02:00
|
|
|
-target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
2023-06-13 13:59:10 +02:00
|
|
|
-add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
2024-04-30 10:36:31 +02:00
|
|
|
-target_include_directories(zlibstatic PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
2019-04-03 17:26:27 +02:00
|
|
|
-set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
|
|
|
|
|
-set_target_properties(zlib PROPERTIES SOVERSION 1)
|
2020-01-21 17:38:38 +01:00
|
|
|
+if(BUILD_SHARED_LIBS)
|
2024-04-30 10:36:31 +02:00
|
|
|
+ add_library(ZLIB SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
|
|
|
|
+ set_target_properties(ZLIB PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
|
|
|
|
|
+ set_target_properties(ZLIB PROPERTIES SOVERSION 1)
|
2020-01-21 17:38:38 +01:00
|
|
|
+else()
|
2024-04-30 10:36:31 +02:00
|
|
|
+ add_library(ZLIB STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
2020-01-21 17:38:38 +01:00
|
|
|
+endif()
|
|
|
|
|
+
|
|
|
|
|
+target_include_directories(ZLIB PUBLIC
|
2024-04-30 10:36:31 +02:00
|
|
|
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
|
|
|
|
|
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
|
|
|
|
+ $<INSTALL_INTERFACE:include>)
|
2019-04-03 17:26:27 +02:00
|
|
|
+
|
2020-01-21 17:38:38 +01:00
|
|
|
+add_library(ZLIB::ZLIB ALIAS ZLIB)
|
2024-04-30 10:36:31 +02:00
|
|
|
+
|
2019-04-03 17:26:27 +02:00
|
|
|
|
|
|
|
|
if(NOT CYGWIN)
|
|
|
|
|
# This property causes shared libraries on Linux to have the full version
|
2024-04-30 10:36:31 +02:00
|
|
|
@@ -164,26 +171,45 @@ if(NOT CYGWIN)
|
2020-01-21 17:38:38 +01:00
|
|
|
#
|
2019-04-03 17:26:27 +02:00
|
|
|
# This has no effect with MSVC, on that platform the version info for
|
|
|
|
|
# the DLL comes from the resource file win32/zlib1.rc
|
2020-01-21 17:38:38 +01:00
|
|
|
- set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION})
|
2024-04-30 10:36:31 +02:00
|
|
|
+ set_target_properties(ZLIB PROPERTIES VERSION ${ZLIB_FULL_VERSION})
|
2019-04-03 17:26:27 +02:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(UNIX)
|
2024-04-30 10:36:31 +02:00
|
|
|
# On unix-like platforms the library is almost always called libz
|
2020-01-21 17:38:38 +01:00
|
|
|
- set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z)
|
2024-04-30 10:36:31 +02:00
|
|
|
- if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX))
|
2020-01-21 17:38:38 +01:00
|
|
|
- set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
|
2024-04-30 10:36:31 +02:00
|
|
|
+ set_target_properties(ZLIB PROPERTIES OUTPUT_NAME z)
|
|
|
|
|
+ if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX) AND BUILD_SHARED_LIBS)
|
|
|
|
|
+ set_target_properties(ZLIB PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
|
|
|
|
|
endif()
|
2020-01-21 17:38:38 +01:00
|
|
|
elseif(BUILD_SHARED_LIBS AND WIN32)
|
|
|
|
|
# Creates zlib1.dll when building shared library version
|
|
|
|
|
- set_target_properties(zlib PROPERTIES SUFFIX "1.dll")
|
2024-04-30 10:36:31 +02:00
|
|
|
+ set_target_properties(ZLIB PROPERTIES SUFFIX "1.dll")
|
|
|
|
|
+endif()
|
|
|
|
|
+
|
|
|
|
|
+if(NOT UNIX)
|
|
|
|
|
+ set_target_properties(ZLIB PROPERTIES OUTPUT_NAME zlib)
|
2019-04-03 17:26:27 +02:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
-if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
|
2020-01-21 17:38:38 +01:00
|
|
|
- install(TARGETS zlib zlibstatic
|
|
|
|
|
- RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
|
|
|
|
|
- ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
|
|
|
|
|
- LIBRARY DESTINATION "${INSTALL_LIB_DIR}" )
|
2024-04-30 10:36:31 +02:00
|
|
|
+if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
|
|
|
|
|
+ install(TARGETS ZLIB
|
|
|
|
|
+ EXPORT ZLIBTargets
|
|
|
|
|
+ RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
|
|
|
|
|
+ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
|
|
|
|
|
+ LIBRARY DESTINATION "${INSTALL_LIB_DIR}")
|
|
|
|
|
+ install(EXPORT ZLIBTargets
|
|
|
|
|
+ NAMESPACE ZLIB::
|
|
|
|
|
+ DESTINATION lib/cmake/ZLIB)
|
|
|
|
|
+ include(CMakePackageConfigHelpers)
|
|
|
|
|
+ write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/ZLIBConfigVersion.cmake"
|
|
|
|
|
+ VERSION ${PROJECT_VERSION}
|
|
|
|
|
+ COMPATIBILITY SameMajorVersion)
|
|
|
|
|
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/ZLIBConfig.cmake"
|
|
|
|
|
+ "include(\"\${CMAKE_CURRENT_LIST_DIR}/ZLIBTargets.cmake\")"
|
|
|
|
|
+ )
|
|
|
|
|
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ZLIBConfig.cmake"
|
|
|
|
|
+ "${CMAKE_CURRENT_BINARY_DIR}/ZLIBConfigVersion.cmake"
|
|
|
|
|
+ DESTINATION lib/cmake/ZLIB)
|
2020-01-21 17:38:38 +01:00
|
|
|
endif()
|
|
|
|
|
+
|
2019-04-03 17:26:27 +02:00
|
|
|
if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
|
|
|
|
|
install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}")
|
|
|
|
|
endif()
|
2024-04-30 10:36:31 +02:00
|
|
|
@@ -199,20 +225,20 @@ endif()
|
2019-04-03 17:26:27 +02:00
|
|
|
#============================================================================
|
2024-04-30 10:36:31 +02:00
|
|
|
if(ZLIB_BUILD_EXAMPLES)
|
|
|
|
|
add_executable(example test/example.c)
|
|
|
|
|
- target_link_libraries(example zlib)
|
|
|
|
|
+ target_link_libraries(example ZLIB)
|
|
|
|
|
add_test(example example)
|
|
|
|
|
|
|
|
|
|
add_executable(minigzip test/minigzip.c)
|
|
|
|
|
- target_link_libraries(minigzip zlib)
|
|
|
|
|
+ target_link_libraries(minigzip ZLIB)
|
|
|
|
|
|
|
|
|
|
if(HAVE_OFF64_T)
|
|
|
|
|
add_executable(example64 test/example.c)
|
|
|
|
|
- target_link_libraries(example64 zlib)
|
|
|
|
|
+ target_link_libraries(example64 ZLIB)
|
|
|
|
|
set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
|
|
|
|
|
add_test(example64 example64)
|
|
|
|
|
|
|
|
|
|
add_executable(minigzip64 test/minigzip.c)
|
|
|
|
|
- target_link_libraries(minigzip64 zlib)
|
|
|
|
|
+ target_link_libraries(minigzip64 ZLIB)
|
|
|
|
|
set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
|
|
|
|
|
endif()
|
2019-04-03 17:26:27 +02:00
|
|
|
endif()
|