Skip to content

Commit 60ebf1c

Browse files
committed
cmake: set MSVC_RUNTIME_LIBRARY to MultiThreadedDLL
As Rust always uses the non-debug Windows runtime for MSVC targets. Related to #682 Related to #676
1 parent 918665c commit 60ebf1c

File tree

6 files changed

+42
-0
lines changed

6 files changed

+42
-0
lines changed

examples/demo_threading/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ cmake_minimum_required(VERSION 3.24)
88
project(demo_threading)
99
set(APP_NAME ${PROJECT_NAME})
1010

11+
# Rust always links against non-debug Windows runtime on *-msvc targets
12+
# https://github.com/corrosion-rs/corrosion/blob/master/doc/src/common_issues.md#linking-debug-cc-libraries-into-rust-fails-on-windows-msvc-targets
13+
# https://github.com/rust-lang/rust/issues/39016
14+
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
15+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
16+
endif()
17+
1118
set(CMAKE_AUTOMOC ON)
1219
set(CMAKE_AUTORCC ON)
1320
set(CMAKE_CXX_STANDARD 17)

examples/qml_features/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ cmake_minimum_required(VERSION 3.24)
99
project(example_qml_features)
1010
set(APP_NAME ${PROJECT_NAME})
1111

12+
# Rust always links against non-debug Windows runtime on *-msvc targets
13+
# https://github.com/corrosion-rs/corrosion/blob/master/doc/src/common_issues.md#linking-debug-cc-libraries-into-rust-fails-on-windows-msvc-targets
14+
# https://github.com/rust-lang/rust/issues/39016
15+
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
16+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
17+
endif()
18+
1219
set(CMAKE_AUTOMOC ON)
1320
set(CMAKE_AUTORCC ON)
1421
set(CMAKE_CXX_STANDARD 17)

examples/qml_minimal/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ cmake_minimum_required(VERSION 3.24)
1010
project(example_qml_minimal)
1111
set(APP_NAME ${PROJECT_NAME})
1212

13+
# Rust always links against non-debug Windows runtime on *-msvc targets
14+
# https://github.com/corrosion-rs/corrosion/blob/master/doc/src/common_issues.md#linking-debug-cc-libraries-into-rust-fails-on-windows-msvc-targets
15+
# https://github.com/rust-lang/rust/issues/39016
16+
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
17+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
18+
endif()
19+
1320
set(CMAKE_AUTOMOC ON)
1421
set(CMAKE_AUTORCC ON)
1522
set(CMAKE_CXX_STANDARD 17)

tests/basic_cxx_only/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ cmake_minimum_required(VERSION 3.24)
99
project(tests_basic_cxx_only)
1010
set(APP_NAME ${PROJECT_NAME})
1111

12+
# Rust always links against non-debug Windows runtime on *-msvc targets
13+
# https://github.com/corrosion-rs/corrosion/blob/master/doc/src/common_issues.md#linking-debug-cc-libraries-into-rust-fails-on-windows-msvc-targets
14+
# https://github.com/rust-lang/rust/issues/39016
15+
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
16+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
17+
endif()
18+
1219
# TODO: Add a helper function to our CMake module which automatically
1320
# handles some of this boilerplate for a "typical" Qt application
1421
set(CMAKE_AUTOMOC ON)

tests/basic_cxx_qt/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ cmake_minimum_required(VERSION 3.24)
99
project(tests_basic_cxx_qt)
1010
set(APP_NAME ${PROJECT_NAME})
1111

12+
# Rust always links against non-debug Windows runtime on *-msvc targets
13+
# https://github.com/corrosion-rs/corrosion/blob/master/doc/src/common_issues.md#linking-debug-cc-libraries-into-rust-fails-on-windows-msvc-targets
14+
# https://github.com/rust-lang/rust/issues/39016
15+
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
16+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
17+
endif()
18+
1219
# TODO: Add a helper function to our CMake module which automatically
1320
# handles some of this boilerplate for a "typical" Qt application
1421
set(CMAKE_AUTOMOC ON)

tests/qt_types_standalone/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ cmake_minimum_required(VERSION 3.24)
99
project(tests_qt_types_standalone)
1010
set(APP_NAME ${PROJECT_NAME})
1111

12+
# Rust always links against non-debug Windows runtime on *-msvc targets
13+
# https://github.com/corrosion-rs/corrosion/blob/master/doc/src/common_issues.md#linking-debug-cc-libraries-into-rust-fails-on-windows-msvc-targets
14+
# https://github.com/rust-lang/rust/issues/39016
15+
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
16+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
17+
endif()
18+
1219
# TODO: Add a helper function to our CMake module which automatically
1320
# handles some of this boilerplate for a "typical" Qt application
1421
set(CMAKE_AUTOMOC ON)

0 commit comments

Comments
 (0)