diff options
| author | Vollstrecker <werner@vollstreckernet.de> | 2024-11-30 23:34:02 +0100 |
|---|---|---|
| committer | Mark Adler <madler@alumni.caltech.edu> | 2025-01-31 07:41:44 -0800 |
| commit | 74247f0947e4156551f0ba66ef0993c8147750a5 (patch) | |
| tree | 9333bd580da6af80acfadce0011f7570341776c2 | |
| parent | ee00230f8e8e75e4175cc8f30c9686245a686d5c (diff) | |
| download | zlib-74247f0947e4156551f0ba66ef0993c8147750a5.tar.gz zlib-74247f0947e4156551f0ba66ef0993c8147750a5.tar.bz2 zlib-74247f0947e4156551f0ba66ef0993c8147750a5.zip | |
CMake: Install libs with static and debug suffix.
Add option to also install zlib1.ddl for compatibility.
| -rw-r--r-- | CMakeLists.txt | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index b902940..fc234f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
| @@ -9,6 +9,10 @@ option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" ON) | |||
| 9 | option(ZLIB_BUILD_SHARED "Enable building zlib shared library" ON) | 9 | option(ZLIB_BUILD_SHARED "Enable building zlib shared library" ON) |
| 10 | option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON) | 10 | option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON) |
| 11 | 11 | ||
| 12 | if(WIN32) | ||
| 13 | option(ZLIB_INSTALL_COMPAT_DLL "Install a copy as zlib1.dll" ON) | ||
| 14 | endif(WIN32) | ||
| 15 | |||
| 12 | include(CheckTypeSize) | 16 | include(CheckTypeSize) |
| 13 | include(CheckFunctionExists) | 17 | include(CheckFunctionExists) |
| 14 | include(CheckIncludeFile) | 18 | include(CheckIncludeFile) |
| @@ -56,7 +60,6 @@ endif() | |||
| 56 | check_include_file(unistd.h Z_HAVE_UNISTD_H) | 60 | check_include_file(unistd.h Z_HAVE_UNISTD_H) |
| 57 | 61 | ||
| 58 | if(MSVC) | 62 | if(MSVC) |
| 59 | set(CMAKE_DEBUG_POSTFIX "d") | ||
| 60 | add_definitions(-D_CRT_SECURE_NO_DEPRECATE) | 63 | add_definitions(-D_CRT_SECURE_NO_DEPRECATE) |
| 61 | add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) | 64 | add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) |
| 62 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}) | 65 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}) |
| @@ -147,13 +150,21 @@ if(MINGW) | |||
| 147 | set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) | 150 | set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) |
| 148 | endif(MINGW) | 151 | endif(MINGW) |
| 149 | 152 | ||
| 153 | if(WIN32) | ||
| 154 | set (zlib_static_suffix "s") | ||
| 155 | set (zlib_debug_suffix "d") | ||
| 156 | endif(WIN32) | ||
| 157 | |||
| 150 | if(ZLIB_BUILD_SHARED) | 158 | if(ZLIB_BUILD_SHARED) |
| 151 | add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) | 159 | add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) |
| 152 | target_include_directories(zlib PUBLIC | 160 | target_include_directories(zlib PUBLIC |
| 153 | $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> | 161 | $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> |
| 154 | $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>) | 162 | $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>) |
| 155 | set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL) | 163 | set_target_properties(zlib PROPERTIES |
| 156 | set_target_properties(zlib PROPERTIES SOVERSION 1) | 164 | DEFINE_SYMBOL ZLIB_DLL |
| 165 | SOVERSION 1 | ||
| 166 | PROPERTIES OUTPUT_NAME z | ||
| 167 | PROPERTIES OUTPUT_NAME_DEBUG z${zlib_debug_suffix}) | ||
| 157 | endif(ZLIB_BUILD_SHARED) | 168 | endif(ZLIB_BUILD_SHARED) |
| 158 | 169 | ||
| 159 | if(ZLIB_BUILD_STATIC) | 170 | if(ZLIB_BUILD_STATIC) |
| @@ -161,6 +172,9 @@ if(ZLIB_BUILD_STATIC) | |||
| 161 | target_include_directories(zlibstatic PUBLIC | 172 | target_include_directories(zlibstatic PUBLIC |
| 162 | $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> | 173 | $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> |
| 163 | $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>) | 174 | $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>) |
| 175 | set_target_properties(zlibstatic PROPERTIES | ||
| 176 | PROPERTIES OUTPUT_NAME z${zlib_static_suffix} | ||
| 177 | PROPERTIES OUTPUT_NAME_DEBUG z${zlib_static_suffix}${zlib_debug_suffix}) | ||
| 164 | endif(ZLIB_BUILD_STATIC) | 178 | endif(ZLIB_BUILD_STATIC) |
| 165 | 179 | ||
| 166 | if(NOT CYGWIN AND ZLIB_BUILD_SHARED) | 180 | if(NOT CYGWIN AND ZLIB_BUILD_SHARED) |
| @@ -177,19 +191,11 @@ endif() | |||
| 177 | if(UNIX) | 191 | if(UNIX) |
| 178 | # On unix-like platforms the library is almost always called libz | 192 | # On unix-like platforms the library is almost always called libz |
| 179 | if(ZLIB_BUILD_SHARED) | 193 | if(ZLIB_BUILD_SHARED) |
| 180 | set_target_properties(zlib PROPERTIES OUTPUT_NAME z) | ||
| 181 | if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX)) | 194 | if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX)) |
| 182 | set_target_properties(zlib PROPERTIES | 195 | set_target_properties(zlib PROPERTIES |
| 183 | LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"") | 196 | LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"") |
| 184 | endif() | 197 | endif() |
| 185 | endif(ZLIB_BUILD_SHARED) | 198 | endif(ZLIB_BUILD_SHARED) |
| 186 | |||
| 187 | if(ZLIB_BUILD_STATIC) | ||
| 188 | set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z) | ||
| 189 | endif(ZLIB_BUILD_STATIC) | ||
| 190 | elseif(BUILD_SHARED_LIBS AND WIN32) | ||
| 191 | # Creates zlib1.dll when building shared library version | ||
| 192 | set_target_properties(zlib PROPERTIES SUFFIX "1.dll") | ||
| 193 | endif() | 199 | endif() |
| 194 | 200 | ||
| 195 | if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) | 201 | if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) |
| @@ -197,14 +203,19 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) | |||
| 197 | install(TARGETS zlib | 203 | install(TARGETS zlib |
| 198 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" | 204 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" |
| 199 | ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" | 205 | ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" |
| 200 | LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) | 206 | LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") |
| 207 | if(ZLIB_INSTALL_COMPAT_DLL) | ||
| 208 | install(FILES $<TARGET_FILE:zlib> | ||
| 209 | RENAME zlib1.dll | ||
| 210 | DESTINATION "${CMAKE_INSTALL_BINDIR}") | ||
| 211 | endif(ZLIB_INSTALL_COMPAT_DLL) | ||
| 201 | endif(ZLIB_BUILD_SHARED) | 212 | endif(ZLIB_BUILD_SHARED) |
| 202 | 213 | ||
| 203 | if(ZLIB_BUILD_STATIC) | 214 | if(ZLIB_BUILD_STATIC) |
| 204 | install(TARGETS zlibstatic | 215 | install(TARGETS zlibstatic |
| 205 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" | 216 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" |
| 206 | ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" | 217 | ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" |
| 207 | LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) | 218 | LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") |
| 208 | endif(ZLIB_BUILD_STATIC) | 219 | endif(ZLIB_BUILD_STATIC) |
| 209 | endif() | 220 | endif() |
| 210 | if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) | 221 | if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) |
