From d2d72ac78a5741bc29d53aeef9b3bad0020aa522 Mon Sep 17 00:00:00 2001 From: Kraust Date: Sun, 13 Jul 2025 22:57:25 -0400 Subject: [PATCH] Allow Compiling Against Static CRT. --- CMakeLists.txt | 4 ++++ libarchive/CMakeLists.txt | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 78c0a0dfb..83a02857e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -258,6 +258,10 @@ OPTION(ENABLE_TEST "Enable unit and regression tests" ON) OPTION(ENABLE_COVERAGE "Enable code coverage (GCC only, automatically sets ENABLE_TEST to ON)" FALSE) OPTION(ENABLE_INSTALL "Enable installing of libraries" ON) +IF(WIN32 AND MSVC) + OPTION(MSVC_USE_STATIC_CRT "Use static CRT" OFF) +ENDIF() + SET(POSIX_REGEX_LIB "AUTO" CACHE STRING "Choose what library should provide POSIX regular expression support") SET(ENABLE_SAFESEH "AUTO" CACHE STRING "Enable use of /SAFESEH linker flag (MSVC only)") SET(WINDOWS_VERSION "WIN10" CACHE STRING "Set Windows version to use (Windows only)") diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt index 82523a6f8..de69909ed 100644 --- a/libarchive/CMakeLists.txt +++ b/libarchive/CMakeLists.txt @@ -253,6 +253,9 @@ IF(BUILD_SHARED_LIBS) SOVERSION ${SOVERSION} MACHO_COMPATIBILITY_VERSION ${MACHO_COMPATIBILITY_VERSION} MACHO_CURRENT_VERSION ${MACHO_CURRENT_VERSION}) + IF(WIN32 AND MSVC AND MSVC_USE_STATIC_CRT) + SET_PROPERTY(TARGET archive PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") + ENDIF(WIN32 AND MSVC AND MSVC_USE_STATIC_CRT) ENDIF(BUILD_SHARED_LIBS) # archive_static is a static library @@ -261,6 +264,9 @@ TARGET_INCLUDE_DIRECTORIES(archive_static PUBLIC .) TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS}) SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS LIBARCHIVE_STATIC) +IF(WIN32 AND MSVC AND MSVC_USE_STATIC_CRT) + SET_PROPERTY(TARGET archive_static PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") +ENDIF(WIN32 AND MSVC AND MSVC_USE_STATIC_CRT) # On Posix systems, libarchive.so and libarchive.a can co-exist. IF(NOT WIN32 OR CYGWIN OR NOT BUILD_SHARED_LIBS) SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive) -- 2.47.2