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 |