From c3628c9bbaf7387a9ad37468c704c942d98fe150 Mon Sep 17 00:00:00 2001 From: Alex Kasko Date: Fri, 17 Oct 2025 18:18:01 +0100 Subject: [PATCH] Link MSVC runtime library statically This change makes all CMake targets to use `-MT`/`-MTd` compilation flags for Windows MSVC builds. This way the MSVC runtime library is linked statically and the workaround for VS2019 described in duckdb/duckdb#17991 is no longer necessary. `extension-ci-tools` PR: duckdb/extension-ci-tools#276 Ref: duckdblabs/duckdb-internal#2036 --- CMakeLists.txt | 1 + cmake/duckdb_loader.cmake | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ab9e1cee..fb412366 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ project(duckdb_py LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") # Set the library name set(DUCKDB_PYTHON_LIB_NAME "_duckdb") diff --git a/cmake/duckdb_loader.cmake b/cmake/duckdb_loader.cmake index 2fc738fb..c9c77bb3 100644 --- a/cmake/duckdb_loader.cmake +++ b/cmake/duckdb_loader.cmake @@ -198,8 +198,6 @@ function(_duckdb_create_interface_target target_name) /wd26451 /wd26495 # suppress Code Analysis /D_CRT_SECURE_NO_WARNINGS # suppress warnings about unsafe functions - /D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR # see - # https://github.com/duckdblabs/duckdb-internal/issues/5151 /utf-8 # treat source files as UTF-8 encoded ) elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")