summaryrefslogtreecommitdiffstats
path: root/config/cmake
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2024-03-07 17:27:56 (GMT)
committerGitHub <noreply@github.com>2024-03-07 17:27:56 (GMT)
commitc872acae63feb8b391f6919b94c2d2d06deb1a19 (patch)
tree8b80a7f2f973724dc5f62c9f63314f85a82240ff /config/cmake
parent64a0b71c86bd6606c4e6feb0206e6fdcad5a7771 (diff)
downloadhdf5-c872acae63feb8b391f6919b94c2d2d06deb1a19.zip
hdf5-c872acae63feb8b391f6919b94c2d2d06deb1a19.tar.gz
hdf5-c872acae63feb8b391f6919b94c2d2d06deb1a19.tar.bz2
New option for building with static CRT in Windows (#4062)
Diffstat (limited to 'config/cmake')
-rw-r--r--config/cmake/HDFUseFortran.cmake8
-rw-r--r--config/cmake/UserMacros/Windows_MT.cmake34
2 files changed, 5 insertions, 37 deletions
diff --git a/config/cmake/HDFUseFortran.cmake b/config/cmake/HDFUseFortran.cmake
index 392ea30..2d53a50 100644
--- a/config/cmake/HDFUseFortran.cmake
+++ b/config/cmake/HDFUseFortran.cmake
@@ -19,14 +19,6 @@ set (HDF_PREFIX "H5")
include (CheckFortranSourceRuns)
include (CheckFortranSourceCompiles)
-#-------------------------------------------------------------------------------
-# Fix Fortran flags if we are compiling statically on Windows using
-# Windows_MT.cmake from config/cmake/UserMacros
-#-------------------------------------------------------------------------------
-if (BUILD_STATIC_CRT_LIBS)
- TARGET_STATIC_CRT_FLAGS ()
-endif ()
-
#-----------------------------------------------------------------------------
# Detect name mangling convention used between Fortran and C
#-----------------------------------------------------------------------------
diff --git a/config/cmake/UserMacros/Windows_MT.cmake b/config/cmake/UserMacros/Windows_MT.cmake
index c8edbe4..351c991 100644
--- a/config/cmake/UserMacros/Windows_MT.cmake
+++ b/config/cmake/UserMacros/Windows_MT.cmake
@@ -20,34 +20,10 @@
# INCLUDE(path_to_file/WINDOWS_MT.cmake)
#-----------------------------------------------------------------------------
-# Option to Build with Static CRT libraries on Windows
-#-------------------------------------------------------------------------------
-macro (TARGET_STATIC_CRT_FLAGS)
- if (MSVC AND NOT BUILD_SHARED_LIBS)
- foreach (flag_var
- CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
- CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
- CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
- CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
- if (${flag_var} MATCHES "/MD")
- string (REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
- endif ()
- endforeach ()
- foreach (flag_var
- CMAKE_Fortran_FLAGS CMAKE_Fortran_FLAGS_DEBUG CMAKE_Fortran_FLAGS_RELEASE
- CMAKE_Fortran_FLAGS_MINSIZEREL CMAKE_Fortran_FLAGS_RELWITHDEBINFO)
- if (${flag_var} MATCHES "/libs:dll")
- string (REGEX REPLACE "/libs:dll" "/libs:static" ${flag_var} "${${flag_var}}")
- endif ()
- endforeach ()
- set (WIN_COMPILE_FLAGS "")
- set (WIN_LINK_FLAGS "/NODEFAULTLIB:MSVCRT")
- endif ()
-endmacro ()
-
+# Option to Build with Static CRT libraries on Windows (USE WITH CAUTION!!!)
#-----------------------------------------------------------------------------
-option (BUILD_STATIC_CRT_LIBS "Build With Static CRT Libraries" OFF)
-mark_as_advanced (BUILD_STATIC_CRT_LIBS)
-if (BUILD_STATIC_CRT_LIBS)
- TARGET_STATIC_CRT_FLAGS ()
+option (HDF5_BUILD_STATIC_CRT_LIBS "Build With Static Windows CRT Libraries" OFF)
+mark_as_advanced (HDF5_BUILD_STATIC_CRT_LIBS)
+if (HDF5_BUILD_STATIC_CRT_LIBS)
+ set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif ()