Skip to content

Commit

Permalink
Merge in #4816 changes and close #4816
Browse files Browse the repository at this point in the history
  • Loading branch information
byrnHDF committed Oct 18, 2024
1 parent e4eeda7 commit b4ed1e9
Show file tree
Hide file tree
Showing 6 changed files with 82 additions and 6 deletions.
19 changes: 19 additions & 0 deletions config/cmake/HDFCompilerCXXFlags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -141,3 +141,22 @@ if (CMAKE_CXX_COMPILER_LOADED)
list (APPEND HDF5_CMAKE_CXX_FLAGS "${OPTIMIZE_CXXFLAGS}")
endif ()
endif ()

#-----------------------------------------------------------------------------
# The build mode flags are not added to CMAKE_CXX_FLAGS, so create a separate
# variable for them so they can be written out to libhdf5.settings and
# H5build_settings.c
#-----------------------------------------------------------------------------
if ("${HDF_CFG_NAME}" STREQUAL "Debug")
set (HDF5_BUILD_MODE_CXX_FLAGS "${CMAKE_CXX_FLAGS_DEBUG}")
elseif ("${HDF_CFG_NAME}" STREQUAL "Developer")
set (HDF5_BUILD_MODE_CXX_FLAGS "${CMAKE_CXX_FLAGS_DEVELOPER}")
elseif ("${HDF_CFG_NAME}" STREQUAL "Release")
set (HDF5_BUILD_MODE_CXX_FLAGS "${CMAKE_CXX_FLAGS_RELEASE}")
elseif ("${HDF_CFG_NAME}" STREQUAL "MinSizeRel")
set (HDF5_BUILD_MODE_CXX_FLAGS "${CMAKE_CXX_FLAGS_MINSIZEREL}")
elseif ("${HDF_CFG_NAME}" STREQUAL "RelWithDebInfo")
set (HDF5_BUILD_MODE_CXX_FLAGS "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
else ()
set (HDF5_BUILD_MODE_CXX_FLAGS "")
endif ()
20 changes: 20 additions & 0 deletions config/cmake/HDFCompilerFlags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -203,3 +203,23 @@ if (HDF5_ENABLE_OPTIMIZATION)
list (APPEND HDF5_CMAKE_C_FLAGS "${OPTIMIZE_CFLAGS}")
endif ()
MARK_AS_ADVANCED (HDF5_ENABLE_OPTIMIZATION)

#-----------------------------------------------------------------------------
# The build mode flags are not added to CMAKE_C_FLAGS, so create a separate
# variable for them so they can be written out to libhdf5.settings and
# H5build_settings.c
#-----------------------------------------------------------------------------
if ("${HDF_CFG_NAME}" STREQUAL "Debug")
set (HDF5_BUILD_MODE_C_FLAGS "${CMAKE_C_FLAGS_DEBUG}")
elseif ("${HDF_CFG_NAME}" STREQUAL "Developer")
set (HDF5_BUILD_MODE_C_FLAGS "${CMAKE_C_FLAGS_DEVELOPER}")
elseif ("${HDF_CFG_NAME}" STREQUAL "Release")
set (HDF5_BUILD_MODE_C_FLAGS "${CMAKE_C_FLAGS_RELEASE}")
elseif ("${HDF_CFG_NAME}" STREQUAL "MinSizeRel")
set (HDF5_BUILD_MODE_C_FLAGS "${CMAKE_C_FLAGS_MINSIZEREL}")
elseif ("${HDF_CFG_NAME}" STREQUAL "RelWithDebInfo")
set (HDF5_BUILD_MODE_C_FLAGS "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
else ()
set (HDF5_BUILD_MODE_C_FLAGS "")
endif ()

19 changes: 19 additions & 0 deletions config/cmake/HDFCompilerFortranFlags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,22 @@ if (NOT MSVC AND NOT MINGW)
message (VERBOSE "HDF5_CMAKE_Fortran_FLAGS=${HDF5_CMAKE_Fortran_FLAGS}")
endif ()

#-----------------------------------------------------------------------------
# The build mode flags are not added to CMAKE_Fortran_FLAGS, so create a separate
# variable for them so they can be written out to libhdf5.settings and
# H5build_settings.c
#-----------------------------------------------------------------------------
if ("${HDF_CFG_NAME}" STREQUAL "Debug")
set (HDF5_BUILD_MODE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_DEBUG}")
elseif ("${HDF_CFG_NAME}" STREQUAL "Developer")
set (HDF5_BUILD_MODE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_DEVELOPER}")
elseif ("${HDF_CFG_NAME}" STREQUAL "Release")
set (HDF5_BUILD_MODE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_RELEASE}")
elseif ("${HDF_CFG_NAME}" STREQUAL "MinSizeRel")
set (HDF5_BUILD_MODE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_MINSIZEREL}")
elseif ("${HDF_CFG_NAME}" STREQUAL "RelWithDebInfo")
set (HDF5_BUILD_MODE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_RELWITHDEBINFO}")
else ()
set (HDF5_BUILD_MODE_Fortran_FLAGS "")
endif ()

18 changes: 18 additions & 0 deletions release_docs/RELEASE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,24 @@ New Features

Configuration:
-------------
- Added CMake build mode flags to the libhdf5.settings file

Flags from the CMake build mode (e.g., optimization) are not a part of
CMAKE_<language>_FLAGS and were not exported to the libhdf5.settings file. This
has been fixed and the C, Fortran, and C++ build mode flags are now exported to
the file.

This also affects the text output of H5check_version() and the libhdf5.settings
string stored in the library (for those who use strings(1), etc. to get
build info from the binary).

- CMake: Split compiler specific flags into separate files

The compiler specific flags have been split into separate files to make
it easier to maintain and add new compiler flags. The flags for NVHPC,
Intel, GNU and Clang compilers are now in separate files included from
the current compiler flags files; HDFCompiler<language>Flags.cmake.

- Added configuration option for internal threading/concurrency support:

CMake: HDF5_ENABLE_THREADS (ON/OFF) (Default: ON)
Expand Down
6 changes: 3 additions & 3 deletions src/H5build_settings.cmake.c.in
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ const char H5build_settings[]=
" CPPFLAGS: @CPPFLAGS@\n"
" H5_CPPFLAGS: @H5_CPPFLAGS@\n"
" AM_CPPFLAGS: @AM_CPPFLAGS@\n"
" C Flags: @CMAKE_C_FLAGS@\n"
" C Flags: @CMAKE_C_FLAGS@ @HDF5_BUILD_MODE_C_FLAGS@\n"
" H5 C Flags: @HDF5_CMAKE_C_FLAGS@\n"
" AM C Flags: @AM_CFLAGS@\n"
" Shared C Library: @H5_ENABLE_SHARED_LIB@\n"
Expand All @@ -65,7 +65,7 @@ const char H5build_settings[]=
"\n"
" Fortran: @HDF5_BUILD_FORTRAN@\n"
" Fortran Compiler: @CMAKE_Fortran_COMPILER@ @CMAKE_Fortran_COMPILER_VERSION@\n"
" Fortran Flags: @CMAKE_Fortran_FLAGS@\n"
" Fortran Flags: @CMAKE_Fortran_FLAGS@ @HDF5_BUILD_MODE_Fortran_FLAGS@\n"
" H5 Fortran Flags: @HDF5_CMAKE_Fortran_FLAGS@\n"
" AM Fortran Flags: @AM_FCFLAGS@\n"
" Shared Fortran Library: @H5_ENABLE_SHARED_LIB@\n"
Expand All @@ -74,7 +74,7 @@ const char H5build_settings[]=
"\n"
" C++: @HDF5_BUILD_CPP_LIB@\n"
" C++ Compiler: @CMAKE_CXX_COMPILER@ @CMAKE_CXX_COMPILER_VERSION@\n"
" C++ Flags: @CMAKE_CXX_FLAGS@\n"
" C++ Flags: @CMAKE_CXX_FLAGS@ @HDF5_BUILD_MODE_CXX_FLAGS@\n"
" H5 C++ Flags: @HDF5_CMAKE_CXX_FLAGS@\n"
" AM C++ Flags: @AM_CXXFLAGS@\n"
" Shared C++ Library: @H5_ENABLE_SHARED_LIB@\n"
Expand Down
6 changes: 3 additions & 3 deletions src/libhdf5.settings.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ Languages:
CPPFLAGS: @CPPFLAGS@
H5_CPPFLAGS: @H5_CPPFLAGS@
AM_CPPFLAGS: @AM_CPPFLAGS@
CFLAGS: @CMAKE_C_FLAGS@
CFLAGS: @CMAKE_C_FLAGS@ @HDF5_BUILD_MODE_C_FLAGS@
H5_CFLAGS: @HDF5_CMAKE_C_FLAGS@
AM_CFLAGS: @AM_CFLAGS@
Shared C Library: @H5_ENABLE_SHARED_LIB@
Static C Library: @H5_ENABLE_STATIC_LIB@

Fortran: @HDF5_BUILD_FORTRAN@
Fortran Compiler: @CMAKE_Fortran_COMPILER@ @CMAKE_Fortran_COMPILER_VERSION@
Fortran Flags: @CMAKE_Fortran_FLAGS@
Fortran Flags: @CMAKE_Fortran_FLAGS@ @HDF5_BUILD_MODE_Fortran_FLAGS@
H5 Fortran Flags: @HDF5_CMAKE_Fortran_FLAGS@
AM Fortran Flags: @AM_FCFLAGS@
Shared Fortran Library: @H5_ENABLE_SHARED_LIB@
Expand All @@ -55,7 +55,7 @@ Languages:

C++: @HDF5_BUILD_CPP_LIB@
C++ Compiler: @CMAKE_CXX_COMPILER@ @CMAKE_CXX_COMPILER_VERSION@
C++ Flags: @CMAKE_CXX_FLAGS@
C++ Flags: @CMAKE_CXX_FLAGS@ @HDF5_BUILD_MODE_CXX_FLAGS@
H5 C++ Flags: @HDF5_CMAKE_CXX_FLAGS@
AM C++ Flags: @AM_CXXFLAGS@
Shared C++ Library: @H5_ENABLE_SHARED_LIB@
Expand Down

0 comments on commit b4ed1e9

Please sign in to comment.