diff options
| author | Christoph J. Thompson <cjsthompson@gmail.com> | 2012-03-11 10:17:57 +0100 |
|---|---|---|
| committer | Mark Adler <madler@alumni.caltech.edu> | 2012-03-11 10:16:12 -0700 |
| commit | cd71ef302123032aed0accade96efaca3e1f33dd (patch) | |
| tree | d3ef11df07f9c09699cf58991283775a3eab7e67 | |
| parent | ca6e7a0d552e3b54c0833658409e34f9de3bead6 (diff) | |
| download | zlib-cd71ef302123032aed0accade96efaca3e1f33dd.tar.gz zlib-cd71ef302123032aed0accade96efaca3e1f33dd.tar.bz2 zlib-cd71ef302123032aed0accade96efaca3e1f33dd.zip | |
Build both a static and a shared version of zlib with cmake.
| -rw-r--r-- | CMakeLists.txt | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 26bb1d4..39d2104 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
| @@ -9,10 +9,6 @@ set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation d | |||
| 9 | set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages") | 9 | set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages") |
| 10 | set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") | 10 | set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") |
| 11 | 11 | ||
| 12 | if(NOT DEFINED BUILD_SHARED_LIBS) | ||
| 13 | option(BUILD_SHARED_LIBS "Build a shared library form of zlib" ON) | ||
| 14 | endif() | ||
| 15 | |||
| 16 | include(CheckTypeSize) | 12 | include(CheckTypeSize) |
| 17 | include(CheckFunctionExists) | 13 | include(CheckFunctionExists) |
| 18 | include(CheckIncludeFile) | 14 | include(CheckIncludeFile) |
| @@ -147,9 +143,9 @@ if(MINGW) | |||
| 147 | set(ZLIB_SRCS ${ZLIB_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) | 143 | set(ZLIB_SRCS ${ZLIB_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) |
| 148 | endif(MINGW) | 144 | endif(MINGW) |
| 149 | 145 | ||
| 150 | add_library(zlib ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) | 146 | add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) |
| 147 | add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) | ||
| 151 | set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL) | 148 | set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL) |
| 152 | |||
| 153 | set_target_properties(zlib PROPERTIES SOVERSION 1) | 149 | set_target_properties(zlib PROPERTIES SOVERSION 1) |
| 154 | 150 | ||
| 155 | if(NOT CYGWIN) | 151 | if(NOT CYGWIN) |
| @@ -165,14 +161,14 @@ endif() | |||
| 165 | 161 | ||
| 166 | if(UNIX) | 162 | if(UNIX) |
| 167 | # On unix-like platforms the library is almost always called libz | 163 | # On unix-like platforms the library is almost always called libz |
| 168 | set_target_properties(zlib PROPERTIES OUTPUT_NAME z) | 164 | set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z) |
| 169 | elseif(BUILD_SHARED_LIBS AND WIN32) | 165 | elseif(BUILD_SHARED_LIBS AND WIN32) |
| 170 | # Creates zlib1.dll when building shared library version | 166 | # Creates zlib1.dll when building shared library version |
| 171 | set_target_properties(zlib PROPERTIES SUFFIX "1.dll") | 167 | set_target_properties(zlib PROPERTIES SUFFIX "1.dll") |
| 172 | endif() | 168 | endif() |
| 173 | 169 | ||
| 174 | if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) | 170 | if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) |
| 175 | install(TARGETS zlib | 171 | install(TARGETS zlib zlibstatic |
| 176 | RUNTIME DESTINATION "${INSTALL_BIN_DIR}" | 172 | RUNTIME DESTINATION "${INSTALL_BIN_DIR}" |
| 177 | ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" | 173 | ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" |
| 178 | LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) | 174 | LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) |
