Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'build_files/cmake/macros.cmake')
-rw-r--r--build_files/cmake/macros.cmake102
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)