diff options
| author | tbeu <tc@tbeu.de> | 2023-11-19 21:39:14 +0100 |
|---|---|---|
| committer | Mark Adler <madler@alumni.caltech.edu> | 2024-01-17 14:55:54 -0800 |
| commit | 44dc43ab047d65febed972a17b0e3bf7e994e8f2 (patch) | |
| tree | 34218ba9d855975d036c7c793358d9f04482d465 | |
| parent | 01155ccc3f822a31291a64e4ecd5f1dbb8a8ee63 (diff) | |
| download | zlib-44dc43ab047d65febed972a17b0e3bf7e994e8f2.tar.gz zlib-44dc43ab047d65febed972a17b0e3bf7e994e8f2.tar.bz2 zlib-44dc43ab047d65febed972a17b0e3bf7e994e8f2.zip | |
Add a CMake option to link the C runtime statically.
| -rw-r--r-- | CMakeLists.txt | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index ae0f8ea..157097e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
| @@ -1,10 +1,16 @@ | |||
| 1 | cmake_minimum_required(VERSION 2.4.4...3.15.0) | 1 | cmake_minimum_required(VERSION 2.4.4...3.15.0) |
| 2 | set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) | 2 | set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) |
| 3 | 3 | ||
| 4 | if(POLICY CMP0091) | ||
| 5 | cmake_policy(SET CMP0091 NEW) | ||
| 6 | endif() | ||
| 7 | |||
| 4 | project(zlib C) | 8 | project(zlib C) |
| 5 | 9 | ||
| 6 | set(VERSION "1.3.0.1") | 10 | set(VERSION "1.3.0.1") |
| 7 | 11 | ||
| 12 | option(ZLIB_STATIC_LINK_CRT "Link the MSVC runtime library statically" OFF) | ||
| 13 | |||
| 8 | set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") | 14 | set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") |
| 9 | set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") | 15 | set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") |
| 10 | set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") | 16 | set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") |
| @@ -76,12 +82,24 @@ if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) | |||
| 76 | endif() | 82 | endif() |
| 77 | 83 | ||
| 78 | set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc) | 84 | set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc) |
| 79 | configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein | 85 | configure_file(${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein |
| 80 | ${ZLIB_PC} @ONLY) | 86 | ${ZLIB_PC} @ONLY) |
| 81 | configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein | 87 | configure_file(${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein |
| 82 | ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY) | 88 | ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY) |
| 83 | include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) | 89 | include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) |
| 84 | 90 | ||
| 91 | if(POLICY CMP0091) | ||
| 92 | # CMake >= 3.15 has CMAKE_MSVC_RUNTIME_LIBRARY to set the MSVCC runtime library | ||
| 93 | if(WIN32 AND CMAKE_GENERATOR MATCHES "Visual Studio .*|NMake .*") | ||
| 94 | if(ZLIB_STATIC_LINK_CRT) | ||
| 95 | message(STATUS "Configuring to link the MSVC runtime library statically") | ||
| 96 | set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") | ||
| 97 | else() | ||
| 98 | message(STATUS "Configuring to link the MSVC runtime library dynamically") | ||
| 99 | set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL") | ||
| 100 | endif() | ||
| 101 | endif() | ||
| 102 | endif() | ||
| 85 | 103 | ||
| 86 | #============================================================================ | 104 | #============================================================================ |
| 87 | # zlib | 105 | # zlib |
