diff options
Diffstat (limited to 'build_files/cmake/macros.cmake')
-rw-r--r-- | build_files/cmake/macros.cmake | 102 |
1 files changed, 76 insertions, 26 deletions
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 08a571cceaf..afd5f302314 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -1,30 +1,45 @@ -MACRO(BLENDERLIB_NOLIST - name - sources - includes) - # Gather all headers - FILE(GLOB_RECURSE INC_ALL *.h) - - INCLUDE_DIRECTORIES(${includes}) - ADD_LIBRARY(${name} ${INC_ALL} ${sources}) - - # Group by location on disk - SOURCE_GROUP(Files FILES CMakeLists.txt) - SET(ALL_FILES ${sources} ${INC_ALL}) - FOREACH(SRC ${ALL_FILES}) - STRING(REGEX REPLACE ${CMAKE_CURRENT_SOURCE_DIR} "Files" REL_DIR "${SRC}") - STRING(REGEX REPLACE "[\\\\/][^\\\\/]*$" "" REL_DIR "${REL_DIR}") - STRING(REGEX REPLACE "^[\\\\/]" "" REL_DIR "${REL_DIR}") - IF(REL_DIR) - SOURCE_GROUP(${REL_DIR} FILES ${SRC}) - ELSE(REL_DIR) - SOURCE_GROUP(Files FILES ${SRC}) - ENDIF(REL_DIR) - ENDFOREACH(SRC) - - MESSAGE(STATUS "Configuring library ${name}") -ENDMACRO(BLENDERLIB_NOLIST) +IF(MSVC) + # only MSVC uses SOURCE_GROUP + MACRO(BLENDERLIB_NOLIST + name + sources + includes) + + MESSAGE(STATUS "Configuring library ${name}") + + # Gather all headers + FILE(GLOB_RECURSE INC_ALL *.h) + + INCLUDE_DIRECTORIES(${includes}) + ADD_LIBRARY(${name} ${INC_ALL} ${sources}) + + # Group by location on disk + SOURCE_GROUP(Files FILES CMakeLists.txt) + SET(ALL_FILES ${sources} ${INC_ALL}) + FOREACH(SRC ${ALL_FILES}) + STRING(REGEX REPLACE ${CMAKE_CURRENT_SOURCE_DIR} "Files" REL_DIR "${SRC}") + STRING(REGEX REPLACE "[\\\\/][^\\\\/]*$" "" REL_DIR "${REL_DIR}") + STRING(REGEX REPLACE "^[\\\\/]" "" REL_DIR "${REL_DIR}") + IF(REL_DIR) + SOURCE_GROUP(${REL_DIR} FILES ${SRC}) + ELSE(REL_DIR) + SOURCE_GROUP(Files FILES ${SRC}) + ENDIF(REL_DIR) + ENDFOREACH(SRC) + ENDMACRO(BLENDERLIB_NOLIST) +ELSE(MSVC) + + MACRO(BLENDERLIB_NOLIST + name + sources + includes) + + MESSAGE(STATUS "Configuring library ${name}") + INCLUDE_DIRECTORIES(${includes}) + ADD_LIBRARY(${name} ${sources}) + ENDMACRO(BLENDERLIB_NOLIST) +ENDIF(MSVC) MACRO(BLENDERLIB name @@ -223,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) |