[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36837] trunk/blender: CMake changes
Campbell Barton
ideasman42 at gmail.com
Mon May 23 16:56:14 CEST 2011
Revision: 36837
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36837
Author: campbellbarton
Date: 2011-05-23 14:56:14 +0000 (Mon, 23 May 2011)
Log Message:
-----------
CMake changes
- don't allow building if the LIBDIR is not found on mac/windows.
- by default use -O2 rather then -O3 for GCC release flags, was crashing some GCC versions and blender releases are supposed to use -O2.
Modified Paths:
--------------
trunk/blender/CMakeLists.txt
trunk/blender/build_files/cmake/macros.cmake
Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt 2011-05-23 14:51:31 UTC (rev 36836)
+++ trunk/blender/CMakeLists.txt 2011-05-23 14:56:14 UTC (rev 36837)
@@ -55,33 +55,19 @@
# quiet output for Makefiles, 'make -s' helps too
# set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
-# ignore system set flag, use our own
-# must be before project(...)
-# if the user wants to add their own its ok after first run.
-if(DEFINED CMAKE_C_STANDARD_LIBRARIES)
- set(_reset_standard_libraries OFF)
-else()
- set(_reset_standard_libraries ON)
-endif()
+#-----------------------------------------------------------------------------
+# Load some macros.
+include(build_files/cmake/macros.cmake)
-project(Blender)
+#-----------------------------------------------------------------------------
+# Initialize project.
+blender_project_hack_pre()
-if (_reset_standard_libraries)
- # Must come after project(...)
- #
- # MINGW workaround for -ladvapi32 being included which surprisingly causes
- # string formatting of floats, eg: printf("%.*f", 3, value). to crash blender
- # with a meaningless stack trace. by overriding this flag we ensure we only
- # have libs we define and that cmake & scons builds match.
- set(CMAKE_C_STANDARD_LIBRARIES "" CACHE STRING "" FORCE)
- set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "" FORCE)
- mark_as_advanced(CMAKE_C_STANDARD_LIBRARIES)
- mark_as_advanced(CMAKE_CXX_STANDARD_LIBRARIES)
-endif()
-unset(_reset_standard_libraries)
+project(Blender)
+blender_project_hack_post()
enable_testing()
@@ -92,10 +78,6 @@
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE )
#-----------------------------------------------------------------------------
-# Load some macros.
-include(build_files/cmake/macros.cmake)
-
-#-----------------------------------------------------------------------------
# Set default config options
get_blender_version()
@@ -984,6 +966,12 @@
#-----------------------------------------------------------------------------
# Common.
+if(APPLE OR WIN32)
+ if(NOT IS_DIRECTORY "${LIBDIR}")
+ message(FATAL_ERROR "Apple and Windows require pre-compiled libs at: '${LIBDIR}'")
+ endif()
+endif()
+
if(WITH_RAYOPTIMIZATION)
if(CMAKE_COMPILER_IS_GNUCC)
if(SUPPORT_SSE_BUILD)
Modified: trunk/blender/build_files/cmake/macros.cmake
===================================================================
--- trunk/blender/build_files/cmake/macros.cmake 2011-05-23 14:51:31 UTC (rev 36836)
+++ trunk/blender/build_files/cmake/macros.cmake 2011-05-23 14:56:14 UTC (rev 36837)
@@ -388,3 +388,71 @@
# message(STATUS "Version (Internal): ${BLENDER_VERSION}.${BLENDER_SUBVERSION}, Version (external): ${BLENDER_VERSION}${BLENDER_VERSION_CHAR}-${BLENDER_VERSION_CYCLE}")
endmacro()
+
+
+# hacks to override initial project settings
+# these macros must be called directly before/after project(Blender)
+macro(blender_project_hack_pre)
+ # ----------------
+ # MINGW HACK START
+ # ignore system set flag, use our own
+ # must be before project(...)
+ # if the user wants to add their own its ok after first run.
+ if(DEFINED CMAKE_C_STANDARD_LIBRARIES)
+ set(_reset_standard_libraries OFF)
+ else()
+ set(_reset_standard_libraries ON)
+ endif()
+
+ # ------------------
+ # GCC -O3 HACK START
+ # needed because O3 can cause problems but
+ # allow the builder to set O3 manually after.
+ if(DEFINED CMAKE_C_FLAGS_RELEASE)
+ set(_reset_standard_cflags_rel OFF)
+ else()
+ set(_reset_standard_cflags_rel ON)
+ endif()
+ if(DEFINED CMAKE_CXX_FLAGS_RELEASE)
+ set(_reset_standard_cxxflags_rel OFF)
+ else()
+ set(_reset_standard_cxxflags_rel ON)
+ endif()
+endmacro()
+
+
+macro(blender_project_hack_post)
+ # --------------
+ # MINGW HACK END
+ if (_reset_standard_libraries)
+ # Must come after project(...)
+ #
+ # MINGW workaround for -ladvapi32 being included which surprisingly causes
+ # string formatting of floats, eg: printf("%.*f", 3, value). to crash blender
+ # with a meaningless stack trace. by overriding this flag we ensure we only
+ # have libs we define and that cmake & scons builds match.
+ set(CMAKE_C_STANDARD_LIBRARIES "" CACHE STRING "" FORCE)
+ set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "" FORCE)
+ mark_as_advanced(CMAKE_C_STANDARD_LIBRARIES)
+ mark_as_advanced(CMAKE_CXX_STANDARD_LIBRARIES)
+ endif()
+ unset(_reset_standard_libraries)
+
+
+ # ----------------
+ # GCC -O3 HACK END
+ if(_reset_standard_cflags_rel)
+ string(REGEX REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "" FORCE)
+ mark_as_advanced(CMAKE_C_FLAGS_RELEASE)
+ endif()
+
+ if(_reset_standard_cxxflags_rel)
+ string(REGEX REPLACE "-O3" "-O2" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "" FORCE)
+ mark_as_advanced(CMAKE_CXX_FLAGS_RELEASE)
+ endif()
+
+ unset(_reset_standard_cflags_rel)
+ unset(_reset_standard_cxxflags_rel)
+endmacro()
More information about the Bf-blender-cvs
mailing list