if(enable_compile_warnings)
set(warnCFLAGS "-fno-common -Wall -Wunused -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing")
+ if(CMAKE_COMPILER_IS_GNUCC AND (NOT (CMAKE_C_COMPILER_VERSION VERSION_LESS "5.0")))
+ set(warnCFLAGS "${warnCFLAGS} -Wformat-signedness")
+ endif()
if(CMAKE_C_COMPILER_ID MATCHES "Clang|GCC")
set(warnCFLAGS "${warnCFLAGS} -Wno-format-nonliteral")
endif()
set(warnCFLAGS "${warnCFLAGS} -Wclobbered -Wno-error=clobbered -Wno-unused-local-typedefs -Wno-error=attributes")
endif()
- set(warnCXXFLAGS "${warnCFLAGS} -Wall -Wextra -Wunused -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing")
+ set(warnCXXFLAGS "${warnCFLAGS} -Wall -Wextra -Wunused -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing")
+ if(CMAKE_COMPILER_IS_GNUCXX AND (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0")))
+ set(warnCFLAGS "${warnCFLAGS} -Wformat-signedness")
+ endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GCC")
set(warnCXXFLAGS "${warnCXXFLAGS} -Wno-format-nonliteral")
endif()
set(optCFLAGS "${optCFLAGS} -finline-functions ")
endif()
+# Do not leak the current directory into the binaries
+if(CMAKE_COMPILER_IS_GNUCC)
+ set(optCFLAGS "${optCFLAGS} -fdebug-prefix-map=${CMAKE_SOURCE_DIR}=.")
+endif()
+
# Configure LTO
# NOTE, cmake 3.0 has a INTERPROCEDURAL_OPTIMIZATION target
# property for this (http://www.cmake.org/cmake/help/v3.0/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.html)
if(enable_coverage)
find_program(GCOV_PATH gcov)
if(GCOV_PATH)
- set(COVERAGE_COMMAND "${GCOV_PATH} -p" CACHE TYPE FILEPATH FORCE)
+ set(COVERAGE_COMMAND "${GCOV_PATH}" CACHE TYPE FILEPATH FORCE)
+ set(COVERAGE_EXTRA_FLAGS "-l -p")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DCOVERAGE")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
- set(TESH_OPTION --enable-coverage)
add_definitions(-fprofile-arcs -ftest-coverage)
endif()
endif()