CMake: support multiple args to remove_cc_flag

This commit is contained in:
Campbell Barton
2015-06-23 14:25:24 +10:00
parent f1917a2188
commit 4e8092e2e4

View File

@@ -918,19 +918,22 @@ endmacro()
# utility macro # utility macro
macro(remove_cc_flag macro(remove_cc_flag
flag) _flag)
string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") foreach(flag ${ARGV})
string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}") string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}") string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}") string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}")
string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}") string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
endforeach()
unset(flag)
endmacro() endmacro()
@@ -944,28 +947,32 @@ endmacro()
macro(remove_strict_flags) macro(remove_strict_flags)
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
remove_cc_flag("-Wstrict-prototypes") remove_cc_flag(
remove_cc_flag("-Wmissing-prototypes") "-Wstrict-prototypes"
remove_cc_flag("-Wunused-parameter") "-Wmissing-prototypes"
remove_cc_flag("-Wunused-macros") "-Wunused-parameter"
remove_cc_flag("-Wwrite-strings") "-Wunused-macros"
remove_cc_flag("-Wredundant-decls") "-Wwrite-strings"
remove_cc_flag("-Wundef") "-Wredundant-decls"
remove_cc_flag("-Wshadow") "-Wundef"
remove_cc_flag("-Wdouble-promotion") "-Wshadow"
remove_cc_flag("-Wold-style-definition") "-Wdouble-promotion"
remove_cc_flag("-Werror=[^ ]+") "-Wold-style-definition"
remove_cc_flag("-Werror") "-Werror=[^ ]+"
"-Werror"
)
# negate flags implied by '-Wall' # negate flags implied by '-Wall'
add_cc_flag("${CC_REMOVE_STRICT_FLAGS}") add_cc_flag("${CC_REMOVE_STRICT_FLAGS}")
endif() endif()
if(CMAKE_C_COMPILER_ID MATCHES "Clang") if(CMAKE_C_COMPILER_ID MATCHES "Clang")
remove_cc_flag("-Wunused-parameter") remove_cc_flag(
remove_cc_flag("-Wunused-variable") "-Wunused-parameter"
remove_cc_flag("-Werror=[^ ]+") "-Wunused-variable"
remove_cc_flag("-Werror") "-Werror=[^ ]+"
"-Werror"
)
# negate flags implied by '-Wall' # negate flags implied by '-Wall'
add_cc_flag("${CC_REMOVE_STRICT_FLAGS}") add_cc_flag("${CC_REMOVE_STRICT_FLAGS}")
@@ -979,11 +986,15 @@ endmacro()
macro(remove_extra_strict_flags) macro(remove_extra_strict_flags)
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
remove_cc_flag("-Wunused-parameter") remove_cc_flag(
"-Wunused-parameter"
)
endif() endif()
if(CMAKE_C_COMPILER_ID MATCHES "Clang") if(CMAKE_C_COMPILER_ID MATCHES "Clang")
remove_cc_flag("-Wunused-parameter") remove_cc_flag(
"-Wunused-parameter"
)
endif() endif()
if(MSVC) if(MSVC)