Restrict errors to gcc 4.8 and above.
This commit is contained in:
@@ -12,24 +12,6 @@
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
set(CMAKE_C_STANDARD_REQUIRED TRUE)
|
||||
|
||||
macro (ADD_H5_FLAGS h5_flag_var infile)
|
||||
file (STRINGS ${infile} TEST_FLAG_STREAM)
|
||||
#message (STATUS "TEST_FLAG_STREAM=${TEST_FLAG_STREAM}")
|
||||
list (LENGTH TEST_FLAG_STREAM len_flag)
|
||||
if (len_flag GREATER 0)
|
||||
math (EXPR _FP_LEN "${len_flag} - 1")
|
||||
foreach (line RANGE 0 ${_FP_LEN})
|
||||
list (GET TEST_FLAG_STREAM ${line} str_flag)
|
||||
string (REGEX REPLACE "^#.*" "" str_flag "${str_flag}")
|
||||
#message (STATUS "str_flag=${str_flag}")
|
||||
if (str_flag)
|
||||
list (APPEND ${h5_flag_var} "${str_flag}")
|
||||
endif ()
|
||||
endforeach ()
|
||||
endif ()
|
||||
#message (STATUS "h5_flag_var=${${h5_flag_var}}")
|
||||
endmacro ()
|
||||
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C99_STANDARD_COMPILE_OPTION} ${CMAKE_C_FLAGS}")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_SANITIZER_FLAGS} ${CMAKE_C_FLAGS}")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_SANITIZER_FLAGS} ${CMAKE_CXX_FLAGS}")
|
||||
@@ -111,9 +93,11 @@ if (NOT MSVC)
|
||||
list (APPEND H5_CFLAGS0 "-Wsign-compare -Wtrigraphs -Wwrite-strings")
|
||||
endif()
|
||||
elseif (CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
# Add general CFlags except for older versions that are no longer supported
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.2)
|
||||
# Add general CFlags for GCC versions 4.2 and above
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.2)
|
||||
ADD_H5_FLAGS (HDF5_CMAKE_C_FLAGS "${HDF5_SOURCE_DIR}/config/gnu-warnings/general")
|
||||
endif ()
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.8)
|
||||
ADD_H5_FLAGS (H5_CFLAGS0 "${HDF5_SOURCE_DIR}/config/gnu-warnings/error-general")
|
||||
endif ()
|
||||
# gcc automatically inlines based on the optimization level
|
||||
@@ -154,14 +138,24 @@ if (NOT MSVC)
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
# Technically, variable-length arrays are part of the C99 standard, but
|
||||
# we should approach them a bit cautiously... Only needed for gcc 4.X
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0 AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.2)
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0 AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.2)
|
||||
ADD_H5_FLAGS (H5_CFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.2-4.last")
|
||||
endif ()
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.3 AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.2)
|
||||
ADD_H5_FLAGS (H5_CFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.3")
|
||||
|
||||
# Append warning flags for gcc 4.2-4.3
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_LESS_EQUAL 4.3 AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.2)
|
||||
ADD_H5_FLAGS (H5_CFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.2-4.3")
|
||||
endif ()
|
||||
|
||||
# Append warning flags for gcc 4.2-4.4
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_LESS_EQUAL 4.4 AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.2)
|
||||
ADD_H5_FLAGS (H5_CFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.2-4.4")
|
||||
endif ()
|
||||
|
||||
# Append warning flags that only gcc 4.3+ knows about
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.3)
|
||||
ADD_H5_FLAGS (H5_CFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.3")
|
||||
endif ()
|
||||
|
||||
# Append more extra warning flags that only gcc 4.4+ know about
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4)
|
||||
@@ -179,7 +173,7 @@ if (NOT MSVC)
|
||||
endif ()
|
||||
|
||||
# Append more extra warning flags that only gcc 4.6 and less know about
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7 AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.2)
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.7 AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.2)
|
||||
ADD_H5_FLAGS (H5_CFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.2-4.6")
|
||||
endif ()
|
||||
|
||||
@@ -223,7 +217,7 @@ if (NOT MSVC)
|
||||
ADD_H5_FLAGS (H5_CFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/4.9")
|
||||
endif ()
|
||||
|
||||
# Append more extra warning flags that only gcc 5.1+ know about
|
||||
# Append more extra warning flags that only gcc 5.x+ know about
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0)
|
||||
ADD_H5_FLAGS (H5_CFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/5")
|
||||
ADD_H5_FLAGS (H5_CFLAGS1 "${HDF5_SOURCE_DIR}/config/gnu-warnings/error-5")
|
||||
@@ -247,6 +241,7 @@ if (NOT MSVC)
|
||||
# Append more extra warning flags that only gcc 8.x+ know about
|
||||
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 8.0)
|
||||
ADD_H5_FLAGS (H5_CFLAGS3 "${HDF5_SOURCE_DIR}/config/gnu-warnings/8")
|
||||
ADD_H5_FLAGS (H5_CFLAGS3 "${HDF5_SOURCE_DIR}/config/gnu-warnings/error-8")
|
||||
if (HDF5_ENABLE_DEV_WARNINGS)
|
||||
ADD_H5_FLAGS (H5_CFLAGS3 "${HDF5_SOURCE_DIR}/config/gnu-warnings/developer-8")
|
||||
else ()
|
||||
|
||||
Reference in New Issue
Block a user