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