diff --git a/cmake/modules/AddCompilerFlags.cmake b/cmake/modules/AddCompilerFlags.cmake --- a/cmake/modules/AddCompilerFlags.cmake +++ b/cmake/modules/AddCompilerFlags.cmake @@ -38,6 +38,26 @@ add_cxx_compiler_flags(${ARGN}) endmacro() +function(add_compiler_flag_group_for_language LANGUAGE) + check_compiler_flags(FLAG_GROUP_IS_SUPPORTED ${LANGUAGE} ${ARGN}) + if(${FLAG_GROUP_IS_SUPPORTED}) + add_compile_options("$<$:${ARGN}>") + endif() +endfunction() + +macro(add_c_compiler_flag_group) + add_compiler_flag_group_for_language(C ${ARGN}) +endmacro() + +macro(add_cxx_compiler_flag_group) + add_compiler_flag_group_for_language(CXX ${ARGN}) +endmacro() + +macro(add_compiler_flag_group) + add_c_compiler_flag_group(${ARGN}) + add_cxx_compiler_flag_group(${ARGN}) +endmacro() + macro(remove_compiler_flags_from_var TARGET) foreach(f ${ARGN}) string(REGEX REPLACE "${f}( |$)" "" ${TARGET} "${${TARGET}}") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -187,7 +187,6 @@ -Wextra -Wformat -Wvla - -Wformat-security -Wcast-align -Wunused-parameter -Wmissing-braces @@ -196,6 +195,7 @@ -Wrange-loop-analysis -Wredundant-decls ) +add_compiler_flag_group(-Wformat -Wformat-security) add_cxx_compiler_flags( -Wredundant-move )