Skip to content

Commit 1334185

Browse files
authored
Use CMAKE_MSVC_RUNTIME_LIBRARY to consistently handle linking mode for MSVC runtime (#687)
* Use CMAKE_MSVC_RUNTIME_LIBRARY to consistently handle linking mode for MSVC runtime * Require CMake 3.15+
1 parent 1ef6649 commit 1334185

File tree

1 file changed

+7
-19
lines changed

1 file changed

+7
-19
lines changed

CMakeLists.txt

+7-19
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.2)
1+
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
22

33
project(dmlc VERSION 0.3 LANGUAGES C CXX)
44

@@ -130,16 +130,6 @@ if(USE_OPENMP)
130130
endif()
131131

132132
find_package(OpenMP REQUIRED)
133-
134-
# For CMake < 3.9, we need to make target OpenMP::OpenMP_CXX ourselves
135-
if(NOT TARGET OpenMP::OpenMP_CXX)
136-
find_package(Threads REQUIRED)
137-
add_library(OpenMP::OpenMP_CXX IMPORTED INTERFACE)
138-
set_property(TARGET OpenMP::OpenMP_CXX
139-
PROPERTY INTERFACE_COMPILE_OPTIONS ${OpenMP_CXX_FLAGS})
140-
set_property(TARGET OpenMP::OpenMP_CXX
141-
PROPERTY INTERFACE_LINK_LIBRARIES ${OpenMP_CXX_FLAGS} Threads::Threads)
142-
endif()
143133
target_link_libraries(dmlc PRIVATE OpenMP::OpenMP_CXX)
144134
endif()
145135

@@ -199,14 +189,12 @@ target_compile_definitions(dmlc PUBLIC -DDMLC_CORE_USE_CMAKE)
199189
# compiler flags
200190
if(MSVC)
201191
target_compile_definitions(dmlc PUBLIC -DDMLC_USE_CXX11=1)
202-
if(NOT BUILD_SHARED_LIBS AND NOT DMLC_FORCE_SHARED_CRT)
203-
foreach(flag_var
204-
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
205-
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
206-
if(${flag_var} MATCHES "/MD")
207-
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
208-
endif(${flag_var} MATCHES "/MD")
209-
endforeach(flag_var)
192+
if(DMLC_FORCE_SHARED_CRT)
193+
message(STATUS "DMLC-Core: Using dynamically linked MSVC runtime...")
194+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
195+
else()
196+
message(STATUS "DMLC-Core: Using statically linked MSVC runtime...")
197+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
210198
endif()
211199
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
212200
else()

0 commit comments

Comments
 (0)