mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-21 01:04:10 +08:00
Add option to control gcc 10 warnings diagnostics (#321)
* OESS-98 convert plugin option to FetchContent, add tests * Fixes for pkcfg files because of plugin option * OESS-98 fix tools test for plugins * Keep doxygen comments under 100 chars long - format hint * Whitespace * HDFFV-11144 - Reclassify CMake messages * HDFFV-11099/11100 added help text * Reworked switch statement to compare string instead * Fix typo * Update CDash mode * Correct name of threadsafe * Correct option name * Undo accidental commit * Note LLVM 10 to 11 format default changes * Update format plugin * Undo clang-format version 11 changes * One more correction * Update supported platforms * Revert whitespace changes * Correct whitespace * Changes from PR#3 * HDFFV-11213 added option to control gcc10 warnings diagnostics
This commit is contained in:
parent
aa95b70f6d
commit
bccf5b5c08
@ -30,6 +30,14 @@ if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_LOADED)
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstdarg-opt")
|
||||
endif ()
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10.0)
|
||||
if (HDF5_ENABLE_BUILD_DIAGS)
|
||||
message (STATUS "... default color and URL extended diagnostic messages enabled")
|
||||
else ()
|
||||
message (STATUS "... disable color and URL extended diagnostic messages")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-urls=never -fno-diagnostics-color")
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
|
@ -31,6 +31,20 @@ if (CMAKE_COMPILER_IS_GNUCC)
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0)
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstdarg-opt")
|
||||
endif ()
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 10.0)
|
||||
#-----------------------------------------------------------------------------
|
||||
# Option to allow the user to enable build extended diagnostics
|
||||
#
|
||||
# This should NOT be on by default as it can cause process issues.
|
||||
#-----------------------------------------------------------------------------
|
||||
option (HDF5_ENABLE_BUILD_DIAGS "Enable color and URL extended diagnostic messages" OFF)
|
||||
if (HDF5_ENABLE_BUILD_DIAGS)
|
||||
message (STATUS "... default color and URL extended diagnostic messages enabled")
|
||||
else ()
|
||||
message (STATUS "... disable color and URL extended diagnostic messages")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fdiagnostics-urls=never -fno-diagnostics-color")
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
|
@ -45,6 +45,14 @@ endif ()
|
||||
#-----------------------------------------------------------------------------
|
||||
# HDF5 library compile options
|
||||
#-----------------------------------------------------------------------------
|
||||
if (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 10.0)
|
||||
if (HDF5_ENABLE_BUILD_DIAGS)
|
||||
message (STATUS "... default color and URL extended diagnostic messages enabled")
|
||||
else ()
|
||||
message (STATUS "... disable color and URL extended diagnostic messages")
|
||||
set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdiagnostics-urls=never -fno-diagnostics-color")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# CDash is configured to only allow 3000 warnings, so
|
||||
|
@ -144,6 +144,15 @@ if test "X-g++" = "X-$cxx_vendor"; then
|
||||
DEBUG_CXXFLAGS="-ftrapv -fno-common"
|
||||
fi
|
||||
|
||||
########################
|
||||
# Enhanced Diagnostics #
|
||||
########################
|
||||
|
||||
if test $cc_vers_major -ge 10; then
|
||||
NO_DIAGS_CXXFLAGS="-fdiagnostics-urls=never -fno-diagnostics-color"
|
||||
fi
|
||||
DIAGS_CXXFLAGS=
|
||||
|
||||
###########
|
||||
# Symbols #
|
||||
###########
|
||||
|
@ -105,6 +105,15 @@ if test "X-gfortran" = "X-$f9x_vendor"; then
|
||||
DEBUG_FCFLAGS="-fbounds-check"
|
||||
fi
|
||||
|
||||
########################
|
||||
# Enhanced Diagnostics #
|
||||
########################
|
||||
|
||||
if test $cc_vers_major -ge 10; then
|
||||
NO_DIAGS_FCFLAGS="-fdiagnostics-urls=never -fno-diagnostics-color"
|
||||
fi
|
||||
DIAGS_FCFLAGS=
|
||||
|
||||
###########
|
||||
# Symbols #
|
||||
###########
|
||||
|
@ -158,6 +158,15 @@ if test "X-gcc" = "X-$cc_vendor"; then
|
||||
DEBUG_CFLAGS="-ftrapv -fno-common"
|
||||
fi
|
||||
|
||||
########################
|
||||
# Enhanced Diagnostics #
|
||||
########################
|
||||
|
||||
if test $cc_vers_major -ge 10; then
|
||||
NO_DIAGS_CFLAGS="-fdiagnostics-urls=never -fno-diagnostics-color"
|
||||
fi
|
||||
DIAGS_CFLAGS=
|
||||
|
||||
###########
|
||||
# Symbols #
|
||||
###########
|
||||
|
45
configure.ac
45
configure.ac
@ -2157,6 +2157,51 @@ AC_ARG_ENABLE([production],
|
||||
[AC_MSG_ERROR([--enable-production is no longer supported, use --enable-build-mode=production instead.])])
|
||||
|
||||
|
||||
## ----------------------------------------------------------------------
|
||||
## Check if the compiler should include build diagnostics
|
||||
##
|
||||
AC_MSG_CHECKING([enable build diagnostics])
|
||||
AC_ARG_ENABLE([diags],
|
||||
[AS_HELP_STRING([--enable-diags=(yes|no|<custom>)],
|
||||
[Allow default enhanced diagnostics to the build.
|
||||
This is independent of the build mode and optimization
|
||||
level.
|
||||
[default=no]
|
||||
])],
|
||||
[DIAGS=$enableval])
|
||||
|
||||
## Set default
|
||||
if test "X-$DIAGS" = X- ; then
|
||||
DIAGS=no
|
||||
fi
|
||||
|
||||
## Allow this variable to be substituted in
|
||||
## other files (src/libhdf5.settings.in, etc.)
|
||||
AC_SUBST([DIAGS])
|
||||
|
||||
case "X-$DIAGS" in
|
||||
X-yes)
|
||||
H5_CFLAGS="$H5_CFLAGS $DIAGS_CFLAGS"
|
||||
H5_CXXFLAGS="$H5_CXXFLAGS $DIAGS_CXXFLAGS"
|
||||
H5_FCFLAGS="$H5_FCFLAGS $DIAGS_FCFLAGS"
|
||||
AC_MSG_RESULT([yes])
|
||||
;;
|
||||
X-no)
|
||||
H5_CFLAGS="$H5_CFLAGS $NO_DIAGS_CFLAGS"
|
||||
H5_CXXFLAGS="$H5_CXXFLAGS $NO_DIAGS_CXXFLAGS"
|
||||
H5_FCFLAGS="$H5_FCFLAGS $NO_DIAGS_FCFLAGS"
|
||||
AC_MSG_RESULT([no])
|
||||
;;
|
||||
*)
|
||||
H5_CFLAGS="$H5_CFLAGS $DIAGS"
|
||||
H5_CXXFLAGS="$H5_CXXFLAGS $DIAGS"
|
||||
H5_FCFLAGS="$H5_FCFLAGS $DIAGS"
|
||||
DIAGS="custom ($DIAGS)"
|
||||
AC_MSG_RESULT([$DIAGS])
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
## ----------------------------------------------------------------------
|
||||
## Check if the compiler should include symbols
|
||||
##
|
||||
|
@ -55,6 +55,25 @@ New Features
|
||||
|
||||
(SAM - 2021/02/07, https://github.com/HDFGroup/hdf5/issues/311)
|
||||
|
||||
- Added a configure-time option to control certain compiler warnings
|
||||
diagnostics
|
||||
|
||||
A new configure-time option was added that allows some compiler warnings
|
||||
diagnostics to have the default operation. This is mainly intended for
|
||||
library developers and currently only works for gcc 10 and above. The
|
||||
diagnostics flags apply to C, C++ and Fortran compilers and will appear
|
||||
in "H5 C Flags", H5 C++ Flags" and H5 Fortran Flags, respectively. They
|
||||
will NOT be exported to h5cc, etc.
|
||||
|
||||
The default is OFF, which will disable the warnings URL and color attributes
|
||||
for the warnings output. ON will not add the flags and allow default behavior.
|
||||
|
||||
Autotools: --enable-diags
|
||||
|
||||
CMake: HDF5_ENABLE_BUILD_DIAGS
|
||||
|
||||
(ADB - 2021/02/05, HDFFV-11213)
|
||||
|
||||
- CMake option to build the HDF filter plugins project as an external project
|
||||
|
||||
The HDF filter plugins project is a collection of registered compression
|
||||
|
Loading…
Reference in New Issue
Block a user