forked from bartvdbraak/blender
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.
This commit is contained in:
parent
9296060082
commit
b69c1e8f1a
@ -55,33 +55,19 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/build_files/cmake/Modules/")
|
|||||||
# quiet output for Makefiles, 'make -s' helps too
|
# quiet output for Makefiles, 'make -s' helps too
|
||||||
# set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
|
# set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
|
||||||
|
|
||||||
# ignore system set flag, use our own
|
#-----------------------------------------------------------------------------
|
||||||
# must be before project(...)
|
# Load some macros.
|
||||||
# if the user wants to add their own its ok after first run.
|
include(build_files/cmake/macros.cmake)
|
||||||
if(DEFINED CMAKE_C_STANDARD_LIBRARIES)
|
|
||||||
set(_reset_standard_libraries OFF)
|
|
||||||
else()
|
|
||||||
set(_reset_standard_libraries ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
# Initialize project.
|
||||||
|
|
||||||
|
blender_project_hack_pre()
|
||||||
|
|
||||||
project(Blender)
|
project(Blender)
|
||||||
|
|
||||||
|
blender_project_hack_post()
|
||||||
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)
|
|
||||||
|
|
||||||
|
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
|
||||||
@ -91,10 +77,6 @@ enable_testing()
|
|||||||
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE )
|
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE )
|
||||||
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE )
|
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE )
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
|
||||||
# Load some macros.
|
|
||||||
include(build_files/cmake/macros.cmake)
|
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Set default config options
|
# Set default config options
|
||||||
|
|
||||||
@ -984,6 +966,12 @@ endif()
|
|||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Common.
|
# 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(WITH_RAYOPTIMIZATION)
|
||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
if(CMAKE_COMPILER_IS_GNUCC)
|
||||||
if(SUPPORT_SSE_BUILD)
|
if(SUPPORT_SSE_BUILD)
|
||||||
|
@ -388,3 +388,71 @@ macro(get_blender_version)
|
|||||||
|
|
||||||
# message(STATUS "Version (Internal): ${BLENDER_VERSION}.${BLENDER_SUBVERSION}, Version (external): ${BLENDER_VERSION}${BLENDER_VERSION_CHAR}-${BLENDER_VERSION_CYCLE}")
|
# message(STATUS "Version (Internal): ${BLENDER_VERSION}.${BLENDER_SUBVERSION}, Version (external): ${BLENDER_VERSION}${BLENDER_VERSION_CHAR}-${BLENDER_VERSION_CYCLE}")
|
||||||
endmacro()
|
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()
|
||||||
|
Loading…
Reference in New Issue
Block a user