aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt37
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)
9option(ZLIB_BUILD_SHARED "Enable building zlib shared library" ON) 9option(ZLIB_BUILD_SHARED "Enable building zlib shared library" ON)
10option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON) 10option(ZLIB_BUILD_STATIC "Enable building zlib static library" ON)
11 11
12if(WIN32)
13 option(ZLIB_INSTALL_COMPAT_DLL "Install a copy as zlib1.dll" ON)
14endif(WIN32)
15
12include(CheckTypeSize) 16include(CheckTypeSize)
13include(CheckFunctionExists) 17include(CheckFunctionExists)
14include(CheckIncludeFile) 18include(CheckIncludeFile)
@@ -56,7 +60,6 @@ endif()
56check_include_file(unistd.h Z_HAVE_UNISTD_H) 60check_include_file(unistd.h Z_HAVE_UNISTD_H)
57 61
58if(MSVC) 62if(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)
148endif(MINGW) 151endif(MINGW)
149 152
153if(WIN32)
154 set (zlib_static_suffix "s")
155 set (zlib_debug_suffix "d")
156endif(WIN32)
157
150if(ZLIB_BUILD_SHARED) 158if(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})
157endif(ZLIB_BUILD_SHARED) 168endif(ZLIB_BUILD_SHARED)
158 169
159if(ZLIB_BUILD_STATIC) 170if(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})
164endif(ZLIB_BUILD_STATIC) 178endif(ZLIB_BUILD_STATIC)
165 179
166if(NOT CYGWIN AND ZLIB_BUILD_SHARED) 180if(NOT CYGWIN AND ZLIB_BUILD_SHARED)
@@ -177,19 +191,11 @@ endif()
177if(UNIX) 191if(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)
190elseif(BUILD_SHARED_LIBS AND WIN32)
191 # Creates zlib1.dll when building shared library version
192 set_target_properties(zlib PROPERTIES SUFFIX "1.dll")
193endif() 199endif()
194 200
195if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) 201if(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)
209endif() 220endif()
210if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) 221if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )