From: Kraust Date: Mon, 14 Jul 2025 02:57:25 +0000 (-0400) Subject: Allow Compiling Against Static CRT. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F2697%2Fhead;p=thirdparty%2Flibarchive.git Allow Compiling Against Static CRT. --- 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)