[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36837] trunk/blender: CMake changes

Mitchell Stokes mogurijin at gmail.com
Sun Jun 26 07:30:01 CEST 2011


This commit seems to break setups where the lib directories are
reached with a symlink. My blender/../lib is a symlink to the
directory where I actually keep my libs so I can avoid multiple lib
checkouts, but still organize my working copies the way I want. If I
comment out the check, things build just fine, so the symlink is
working properly. I just don't know if IS_DIRECTORY can correctly
follow it.

Operating System: Windows 7 Pro 64bit
Compiler: MSVC 2010

Cheers,
Mitchell

On Mon, May 23, 2011 at 7:56 AM, Campbell Barton <ideasman42 at gmail.com> wrote:
> 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()
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>


More information about the Bf-committers mailing list