summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortbeu <tc@tbeu.de>2023-11-19 21:39:14 +0100
committerMark Adler <madler@alumni.caltech.edu>2024-01-17 14:55:54 -0800
commit44dc43ab047d65febed972a17b0e3bf7e994e8f2 (patch)
tree34218ba9d855975d036c7c793358d9f04482d465
parent01155ccc3f822a31291a64e4ecd5f1dbb8a8ee63 (diff)
downloadzlib-44dc43ab047d65febed972a17b0e3bf7e994e8f2.tar.gz
zlib-44dc43ab047d65febed972a17b0e3bf7e994e8f2.tar.bz2
zlib-44dc43ab047d65febed972a17b0e3bf7e994e8f2.zip
Add a CMake option to link the C runtime statically.
-rw-r--r--CMakeLists.txt26
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 @@
1cmake_minimum_required(VERSION 2.4.4...3.15.0) 1cmake_minimum_required(VERSION 2.4.4...3.15.0)
2set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) 2set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
3 3
4if(POLICY CMP0091)
5 cmake_policy(SET CMP0091 NEW)
6endif()
7
4project(zlib C) 8project(zlib C)
5 9
6set(VERSION "1.3.0.1") 10set(VERSION "1.3.0.1")
7 11
12option(ZLIB_STATIC_LINK_CRT "Link the MSVC runtime library statically" OFF)
13
8set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") 14set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
9set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") 15set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
10set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") 16set(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)
76endif() 82endif()
77 83
78set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc) 84set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc)
79configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein 85configure_file(${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein
80 ${ZLIB_PC} @ONLY) 86 ${ZLIB_PC} @ONLY)
81configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein 87configure_file(${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein
82 ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY) 88 ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
83include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) 89include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
84 90
91if(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()
102endif()
85 103
86#============================================================================ 104#============================================================================
87# zlib 105# zlib