summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2013-06-14 14:24:27 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2013-06-14 14:24:27 (GMT)
commite41f1a44b8790d39e65396e5b8d739026cf20488 (patch)
treed62ff63b6f3e4b7c7d84e153d8a09863f6977910 /config
parent109aa3016b1a9a4c8a7244319ec9ee8af078ea8d (diff)
downloadhdf5-e41f1a44b8790d39e65396e5b8d739026cf20488.zip
hdf5-e41f1a44b8790d39e65396e5b8d739026cf20488.tar.gz
hdf5-e41f1a44b8790d39e65396e5b8d739026cf20488.tar.bz2
[svn-r23771] HDFFV-8434,-8437,-8445,-8447,-8461: Merge changes from Trunk.
Tested: local linux
Diffstat (limited to 'config')
-rw-r--r--config/cmake/ConfigureChecks.cmake22
-rw-r--r--config/cmake/HDFMacros.cmake57
-rw-r--r--config/cmake/UserMacros/Windows_MT.cmake39
3 files changed, 104 insertions, 14 deletions
diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake
index cb625e2..55680a0 100644
--- a/config/cmake/ConfigureChecks.cmake
+++ b/config/cmake/ConfigureChecks.cmake
@@ -183,14 +183,14 @@ IF (WINDOWS)
ENDIF (MINGW)
SET (H5_HAVE_LIBWS2_32 1)
SET (H5_HAVE_LIBWSOCK32 1)
-ENDIF (WINDOWS)
-#-----------------------------------------------------------------------------
-# These tests need to be manually SET for windows since there is currently
-# something not quite correct with the actual test implementation. This affects
-# the 'dt_arith' test and most likely lots of other code
-# ----------------------------------------------------------------------------
-SET (H5_FP_TO_ULLONG_RIGHT_MAXIMUM "" CACHE INTERNAL "")
+ #-----------------------------------------------------------------------------
+ # These tests need to be manually SET for windows since there is currently
+ # something not quite correct with the actual test implementation. This affects
+ # the 'dt_arith' test and most likely lots of other code
+ # ----------------------------------------------------------------------------
+ SET (H5_FP_TO_ULLONG_RIGHT_MAXIMUM "" CACHE INTERNAL "")
+ENDIF (WINDOWS)
# ----------------------------------------------------------------------
# END of WINDOWS Hard code Values
@@ -1029,7 +1029,9 @@ H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_LDOUBLE_TO_INTEGER_ACCURATE "chec
# integers except 'unsigned long long'. Other HP-UX systems are unknown
# yet. (1/8/05 - SLU)
#
-H5ConversionTests (H5_LDOUBLE_TO_INTEGER_WORKS "Checking IF converting from long double to integers works")
+IF (NOT MSVC)
+ H5ConversionTests (H5_LDOUBLE_TO_INTEGER_WORKS "Checking IF converting from long double to integers works")
+ENDIF (NOT MSVC)
# -----------------------------------------------------------------------
# Set flag to indicate that the machine can handle conversion from
# integers to long double. (This flag should be set "yes" for all
@@ -1103,7 +1105,9 @@ ENDIF (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$)
# where the last 2 bytes of mantissa are lost when compiler tries to do
# the conversion, and Cygwin where compiler doesn't do rounding correctly.)
#
-H5ConversionTests (H5_ULLONG_TO_LDOUBLE_PRECISION "Checking IF converting unsigned long long to long double with precision")
+IF (NOT MSVC)
+ H5ConversionTests (H5_ULLONG_TO_LDOUBLE_PRECISION "Checking IF converting unsigned long long to long double with precision")
+ENDIF (NOT MSVC)
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine can handle overflow converting
# all floating-point to all integer types.
diff --git a/config/cmake/HDFMacros.cmake b/config/cmake/HDFMacros.cmake
index 099b97f..1a2d11b 100644
--- a/config/cmake/HDFMacros.cmake
+++ b/config/cmake/HDFMacros.cmake
@@ -121,20 +121,67 @@ MACRO (HDF_SET_LIB_OPTIONS libtarget libname libtype)
ENDMACRO (HDF_SET_LIB_OPTIONS)
#-------------------------------------------------------------------------------
-MACRO (TARGET_FORTRAN_WIN_PROPERTIES forttarget addlinkflags)
- IF (WIN32 AND MSVC)
+MACRO (TARGET_C_PROPERTIES wintarget addcompileflags addlinkflags)
+ IF (MSVC)
+ TARGET_MSVC_PROPERTIES (${wintarget} "${addcompileflags} ${WIN_COMPILE_FLAGS}" "${addlinkflags} ${WIN_LINK_FLAGS}")
+ ELSE (MSVC)
+ IF (BUILD_SHARED_LIBS)
+ SET_TARGET_PROPERTIES (${wintarget}
+ PROPERTIES
+ COMPILE_FLAGS "${addcompileflags}"
+ LINK_FLAGS "${addlinkflags}"
+ )
+ ELSE (BUILD_SHARED_LIBS)
+ SET_TARGET_PROPERTIES (${wintarget}
+ PROPERTIES
+ COMPILE_FLAGS "${addcompileflags}"
+ LINK_FLAGS "${addlinkflags}"
+ )
+ ENDIF (BUILD_SHARED_LIBS)
+ ENDIF (MSVC)
+ENDMACRO (TARGET_C_PROPERTIES)
+
+#-------------------------------------------------------------------------------
+MACRO (TARGET_MSVC_PROPERTIES wintarget addcompileflags addlinkflags)
+ IF (MSVC)
+ IF (BUILD_SHARED_LIBS)
+ SET_TARGET_PROPERTIES (${wintarget}
+ PROPERTIES
+ COMPILE_FLAGS "/dll ${addcompileflags}"
+ LINK_FLAGS "/SUBSYSTEM:CONSOLE ${addlinkflags}"
+ )
+ ELSE (BUILD_SHARED_LIBS)
+ SET_TARGET_PROPERTIES (${wintarget}
+ PROPERTIES
+ COMPILE_FLAGS "${addcompileflags}"
+ LINK_FLAGS "/SUBSYSTEM:CONSOLE ${addlinkflags}"
+ )
+ ENDIF (BUILD_SHARED_LIBS)
+ ENDIF (MSVC)
+ENDMACRO (TARGET_MSVC_PROPERTIES)
+
+#-------------------------------------------------------------------------------
+MACRO (TARGET_FORTRAN_PROPERTIES forttarget addcompileflags addlinkflags)
+ IF (WIN32)
+ TARGET_FORTRAN_WIN_PROPERTIES (${forttarget} "${addcompileflags} ${WIN_COMPILE_FLAGS}" "${addlinkflags} ${WIN_LINK_FLAGS}")
+ ENDIF (WIN32)
+ENDMACRO (TARGET_FORTRAN_PROPERTIES)
+
+#-------------------------------------------------------------------------------
+MACRO (TARGET_FORTRAN_WIN_PROPERTIES forttarget addcompileflags addlinkflags)
+ IF (MSVC)
IF (BUILD_SHARED_LIBS)
SET_TARGET_PROPERTIES (${forttarget}
PROPERTIES
- COMPILE_FLAGS "/dll"
+ COMPILE_FLAGS "/dll ${addcompileflags}"
LINK_FLAGS "/SUBSYSTEM:CONSOLE ${addlinkflags}"
)
ELSE (BUILD_SHARED_LIBS)
SET_TARGET_PROPERTIES (${forttarget}
PROPERTIES
- COMPILE_FLAGS "/MD"
+ COMPILE_FLAGS "${addcompileflags}"
LINK_FLAGS "/SUBSYSTEM:CONSOLE ${addlinkflags}"
)
ENDIF (BUILD_SHARED_LIBS)
- ENDIF (WIN32 AND MSVC)
+ ENDIF (MSVC)
ENDMACRO (TARGET_FORTRAN_WIN_PROPERTIES)
diff --git a/config/cmake/UserMacros/Windows_MT.cmake b/config/cmake/UserMacros/Windows_MT.cmake
new file mode 100644
index 0000000..3bd1607
--- /dev/null
+++ b/config/cmake/UserMacros/Windows_MT.cmake
@@ -0,0 +1,39 @@
+########################################################
+# Include file for user options
+########################################################
+
+# To use this option, copy both the macro and option code
+# into the root UserMacros.cmake file.
+
+#-----------------------------------------------------------------------------
+# 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 (${flag_var} MATCHES "/MD")
+ ENDFOREACH (flag_var)
+ 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 (${flag_var} MATCHES "/libs:dll")
+ ENDFOREACH (flag_var)
+ SET (WIN_COMPILE_FLAGS "/MT")
+ SET (WIN_LINK_FLAGS "/NODEFAULTLIB:MSVCRT")
+ ENDIF (MSVC AND NOT BUILD_SHARED_LIBS)
+ENDMACRO (TARGET_STATIC_CRT_FLAGS)
+
+#-----------------------------------------------------------------------------
+OPTION (BUILD_STATIC_CRT_LIBS "Build With Static CRT Libraries" OFF)
+IF (BUILD_STATIC_CRT_LIBS)
+ TARGET_STATIC_CRT_FLAGS ()
+ENDIF (BUILD_STATIC_CRT_LIBS)
+ \ No newline at end of file