Added CMake macro REMOVE_STRICT_FLAGS(), this means developers can build with -Werror in their CMAKE_C_FLAGS_DEBUG (so all warnings give errors).

but external libs which we don't maintain & generated code will have -Werror removed.

This is GCC only, MSVC can be added easily.
This commit is contained in:
Campbell Barton
2010-10-24 03:57:07 +00:00
parent ea5670f4b5
commit c7ff23cc34
5 changed files with 40 additions and 5 deletions

View File

@@ -238,6 +238,41 @@ MACRO(TEST_SSE_SUPPORT)
ENDMACRO(TEST_SSE_SUPPORT)
# when we have warnings as errors applied globally this
# needs to be removed for some external libs which we dont maintain.
# utility macro
MACRO(_REMOVE_STRICT_FLAGS
flag)
STRING(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
STRING(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
STRING(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
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_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
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_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
ENDMACRO(_REMOVE_STRICT_FLAGS)
MACRO(REMOVE_STRICT_FLAGS)
IF(CMAKE_COMPILER_IS_GNUCC)
_REMOVE_STRICT_FLAGS("-Wunused-parameter")
_REMOVE_STRICT_FLAGS("-Werror=[^ ]+")
_REMOVE_STRICT_FLAGS("-Werror")
ENDIF(CMAKE_COMPILER_IS_GNUCC)
IF(MSVC)
# TODO
ENDIF(MSVC)
ENDMACRO(REMOVE_STRICT_FLAGS)
MACRO(GET_BLENDER_VERSION)
FILE(READ ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender.h CONTENT)

View File

@@ -25,7 +25,7 @@
# ***** END GPL LICENSE BLOCK *****
# Otherwise we get warnings here that we cant fix in external projects
STRING(REGEX REPLACE "-Wunused-parameter" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
REMOVE_STRICT_FLAGS()
IF(WITH_BULLET)
ADD_SUBDIRECTORY(bullet2)

View File

@@ -24,8 +24,8 @@
#
# ***** END GPL LICENSE BLOCK *****
# this warning on generated files gets annoying
STRING(REGEX REPLACE "-Wunused-parameter" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
# Generated code has some unused vars we can ignore.
REMOVE_STRICT_FLAGS()
FILE(GLOB DEFSRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.c")
FILE(GLOB APISRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*_api.c")

View File

@@ -25,7 +25,7 @@
# ***** END GPL LICENSE BLOCK *****
# remove warning until render branch merged.
STRING(REGEX REPLACE "-Wunused-parameter" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
REMOVE_STRICT_FLAGS()
SET(INC
intern/include

View File

@@ -25,7 +25,7 @@
# ***** END GPL LICENSE BLOCK *****
# this warning on generated files gets annoying
STRING(REGEX REPLACE "-Wunused-parameter" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
REMOVE_STRICT_FLAGS()
SET(INC
.