diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-10-24 07:57:07 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-10-24 07:57:07 +0400 |
commit | c7ff23cc34e67e0c8f292fe19c4af4af05b15f1c (patch) | |
tree | 7d1042471c76dc5ea79c9dad427318d9b6083536 | |
parent | ea5670f4b597828bfb0170f9b659d19ebdb5ab33 (diff) |
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.
-rw-r--r-- | build_files/cmake/macros.cmake | 35 | ||||
-rw-r--r-- | extern/CMakeLists.txt | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/CMakeLists.txt | 4 | ||||
-rw-r--r-- | source/blender/render/CMakeLists.txt | 2 | ||||
-rw-r--r-- | source/blenderplayer/bad_level_call_stubs/CMakeLists.txt | 2 |
5 files changed, 40 insertions, 5 deletions
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 9237f01a950..afd5f302314 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -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) diff --git a/extern/CMakeLists.txt b/extern/CMakeLists.txt index 61acff4cfe4..1dc610cc1b4 100644 --- a/extern/CMakeLists.txt +++ b/extern/CMakeLists.txt @@ -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) diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt index 97e16bba057..5fd7ae1bd8a 100644 --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@ -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") diff --git a/source/blender/render/CMakeLists.txt b/source/blender/render/CMakeLists.txt index f2da8f4d13e..bed48a3fd17 100644 --- a/source/blender/render/CMakeLists.txt +++ b/source/blender/render/CMakeLists.txt @@ -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 diff --git a/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt b/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt index a40c0f19725..a242c8b7551 100644 --- a/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt +++ b/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt @@ -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 . |