From 2a0368b7cadc9cb5d02032a77f75bc591c8cb946 Mon Sep 17 00:00:00 2001 From: Philip Hyunsu Cho Date: Wed, 29 Sep 2021 22:13:57 -0700 Subject: [PATCH] Add CMake option to use /MD runtime (#7277) --- CMakeLists.txt | 4 ++++ cmake/Utils.cmake | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 966f0921c..109152f43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,7 @@ set_default_configuration_release() option(BUILD_C_DOC "Build documentation for C APIs using Doxygen." OFF) option(USE_OPENMP "Build with OpenMP support." ON) option(BUILD_STATIC_LIB "Build static library" OFF) +option(FORCE_SHARED_CRT "Build with dynamic CRT on Windows (/MD)" OFF) option(RABIT_BUILD_MPI "Build MPI" OFF) ## Bindings option(JVM_BINDINGS "Build JVM bindings" OFF) @@ -160,6 +161,9 @@ endif (USE_NCCL) # dmlc-core msvc_use_static_runtime() +if (FORCE_SHARED_CRT) + set(DMLC_FORCE_SHARED_CRT ON) +endif () add_subdirectory(${xgboost_SOURCE_DIR}/dmlc-core) if (MSVC) diff --git a/cmake/Utils.cmake b/cmake/Utils.cmake index 645f31fef..32a5304b3 100644 --- a/cmake/Utils.cmake +++ b/cmake/Utils.cmake @@ -15,7 +15,7 @@ endfunction(auto_source_group) # Force static runtime for MSVC function(msvc_use_static_runtime) - if(MSVC) + if(MSVC AND (NOT BUILD_SHARED_LIBS) AND (NOT FORCE_SHARED_CRT)) set(variables CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_MINSIZEREL