It looks like replacing:

if(NOT IS_DIRECTORY "${LIBDIR}")

with

if(NOT EXISTS "${LIBDIR}/")

Allows the check to pass if a symlink is used. I'm not sure if this is
really "correct" though.

Cheers,
Mitchell


On Sat, Jun 25, 2011 at 10:30 PM, Mitchell Stokes <[email protected]> wrote:
> 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 <[email protected]> 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
>> [email protected]
>> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>>
>
_______________________________________________
Bf-committers mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to