[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37885] trunk/blender: cleanup for cmake msvc build options, reference some libs directly, fix conflicting flags /Ob1 and /Zi for debug

Campbell Barton ideasman42 at gmail.com
Thu Jun 30 17:32:49 CEST 2011


Strange, msvc 2008 and 2010 work ok here, does replacing this line fix it?

717:
set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /STACK:2097152
/INCREMENTAL:NO
/NODEFAULTLIB:msvcrt.lib\;msvcmrt.lib\;msvcurt.lib\;msvcrtd.lib ")

With
set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /STACK:2097152
/INCREMENTAL:NO  /NODEFAULTLIB:\"msvcrt.lib\"
/NODEFAULTLIB:\"msvcmrt.lib\" /NODEFAULTLIB:\"msvcurt.lib\"
/NODEFAULTLIB:\"msvcrtd.lib\" ")

(both 1 line)

Both work ok for me with msvc2010.

On Thu, Jun 30, 2011 at 5:27 AM, Alex K <kuzsasha at gmail.com> wrote:
> Hi.
> This patch causes build error with cmake + vs2010:
> error MSB6001: Invalid command line switch for "CL.exe". The value
> [BUILD_LINKFLAGS="/MACHINE:X64 /OPT:NOREF /SUBSYSTEM:CONSOLE /STACK:2097152
> /INCREMENTAL:NO  /NODEFAULTLIB:msvcrt.lib] contains an odd number of
> double-quote characters. Only even numbers of literal double-quote
> characters are acceptable to command line tools.    C:\Program Files
> (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\Microsoft.Cpp.x64.Targets
> When CMakeLists.txt and macros.cmake reversed to 37884, Blender builds fine.
>
> Alex
>
>
> On Mon, Jun 27, 2011 at 10:49 PM, Campbell Barton <ideasman42 at gmail.com>wrote:
>
>> Revision: 37885
>>
>> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37885
>> Author:   campbellbarton
>> Date:     2011-06-28 02:49:49 +0000 (Tue, 28 Jun 2011)
>> Log Message:
>> -----------
>> cleanup for cmake msvc build options, reference some libs directly, fix
>> conflicting flags /Ob1 and /Zi for debug
>>
>> Modified Paths:
>> --------------
>>    trunk/blender/CMakeLists.txt
>>    trunk/blender/build_files/cmake/macros.cmake
>>    trunk/blender/build_files/scons/config/win32-vc-config.py
>>    trunk/blender/build_files/scons/config/win64-vc-config.py
>>
>> Modified: trunk/blender/CMakeLists.txt
>> ===================================================================
>> --- trunk/blender/CMakeLists.txt        2011-06-28 02:12:31 UTC (rev 37884)
>> +++ trunk/blender/CMakeLists.txt        2011-06-28 02:49:49 UTC (rev 37885)
>> @@ -243,13 +243,26 @@
>>  set(WITH_BINRELOC OFF)
>>
>>  # MAXOSX only, set to avoid uninitialized
>> -set(EXETYPE "")
>> +set(EXETYPE)
>>
>> +# C/C++ flags
>> +set(PLATFORM_CFLAGS)
>> +
>>  # these are added to later on.
>> -set(C_WARNINGS "")
>> -set(CXX_WARNINGS "")
>> +set(C_WARNINGS)
>> +set(CXX_WARNINGS)
>>
>> +# libraries to link the binary with passed to target_link_libraries()
>> +# known as LLIBS to scons
>> +set(PLATFORM_LINKLIBS)
>>
>> +# Added to linker flags in setup_liblinks
>> +# - CMAKE_EXE_LINKER_FLAGS
>> +# - CMAKE_EXE_LINKER_FLAGS_DEBUG
>> +set(PLATFORM_LINKFLAGS)
>> +set(PLATFORM_LINKFLAGS_DEBUG)
>> +
>> +
>>  # disabled for now, not supported
>>  # option(WITH_WEBPLUGIN     "Enable Web Plugin (Unix only)" OFF)
>>
>> @@ -419,24 +432,24 @@
>>        endif()
>>
>>        # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by
>> using --as-needed
>> -       set(LLIBS "-lutil -lc -lm -lpthread -lstdc++")
>> +       set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread -lstdc++")
>>
>>        if(NOT WITH_HEADLESS)
>>                find_package(X11 REQUIRED)
>>                find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h
>> ${X11_INC_SEARCH_PATH})
>>                mark_as_advanced(X11_XF86keysym_INCLUDE_PATH)
>>
>> -               list(APPEND LLIBS ${X11_X11_LIB})
>> +               list(APPEND PLATFORM_LINKLIBS ${X11_X11_LIB})
>>
>>                if(WITH_X11_XINPUT)
>> -                       list(APPEND LLIBS ${X11_Xinput_LIB})
>> +                       list(APPEND PLATFORM_LINKLIBS ${X11_Xinput_LIB})
>>                endif()
>>        endif()
>>
>>        if(CMAKE_SYSTEM_NAME MATCHES "Linux")
>>                if(NOT WITH_PYTHON_MODULE)
>>                        # BSD's dont use libdl.so
>> -                       list(APPEND LLIBS -ldl)
>> +                       list(APPEND PLATFORM_LINKLIBS -ldl)
>>                        # binreloc is linux only
>>                        set(BINRELOC_INCLUDE_DIRS
>> ${CMAKE_SOURCE_DIR}/extern/binreloc/include)
>>                        set(WITH_BINRELOC ON)
>> @@ -547,14 +560,16 @@
>>
>>        if(MSVC)
>>                if(CMAKE_CL_64)
>> -                       set(LLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32
>> comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid)
>> +                       set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32
>> user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid)
>>                else()
>> -                       set(LLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32
>> comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid)
>> +                       set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32
>> user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid)
>>                endif()
>> -
>> -               set(CMAKE_CXX_FLAGS "/D_CRT_NONSTDC_NO_DEPRECATE
>> /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_CONSOLE /D_LIB
>> /nologo /Ob1 /J /W0 /Gd /wd4018 /wd4244 /wd4305 /wd4800 /wd4065 /wd4267
>> /we4013" CACHE STRING "MSVC MT C++ flags " FORCE)
>> -               set(CMAKE_C_FLAGS   "/D_CRT_NONSTDC_NO_DEPRECATE
>> /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_CONSOLE /D_LIB
>> /nologo /Ob1 /J /W0 /Gd /wd4018 /wd4244 /wd4305 /wd4800 /wd4065 /wd4267
>> /we4013 /EHsc" CACHE STRING "MSVC MT C++ flags " FORCE)
>>
>> +               add_definitions(/D_CRT_NONSTDC_NO_DEPRECATE
>> /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_CONSOLE /D_LIB)
>> +
>> +               set(CMAKE_CXX_FLAGS "/nologo /J /W0 /Gd /wd4018 /wd4244
>> /wd4305 /wd4800 /wd4065 /wd4267 /we4013" CACHE STRING "MSVC MT C++ flags "
>> FORCE)
>> +               set(CMAKE_C_FLAGS   "/nologo /J /W0 /Gd /wd4018 /wd4244
>> /wd4305 /wd4800 /wd4065 /wd4267 /we4013 /EHsc" CACHE STRING "MSVC MT C++
>> flags " FORCE)
>> +
>>                if(CMAKE_CL_64)
>>                        set(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /Od /Gm /EHsc
>> /RTC1 /MTd /W3 /nologo /Zi /J" CACHE STRING "MSVC MT flags " FORCE)
>>                else()
>> @@ -590,25 +605,22 @@
>>                endif()
>>                set(JPEG_LIBRARIES libjpeg)
>>
>> -               set(ZLIB ${LIBDIR}/zlib)
>> -               set(ZLIB_INCLUDE_DIRS ${ZLIB}/include)
>> -               set(ZLIB_LIBPATH ${ZLIB}/lib)
>> +               set(ZLIB_INCLUDE_DIRS ${LIBDIR}/zlib/include)
>>                if(CMAKE_CL_64)
>> -                       set(ZLIB_LIBRARIES libz)
>> +                       set(ZLIB_LIBRARIES ${LIBDIR}/zlib/lib/libz.lib)
>>                else()
>> -                       set(ZLIB_LIBRARIES zlib)
>> +                       set(ZLIB_LIBRARIES ${LIBDIR}/zlib/lib/zlib.lib)
>>                endif()
>>
>> -               set(PTHREADS ${LIBDIR}/pthreads)
>> -               set(PTHREADS_INCLUDE_DIRS ${PTHREADS}/include)
>> -               set(PTHREADS_LIBPATH ${PTHREADS}/lib)
>> -               set(PTHREADS_LIBRARIES pthreadVC2)
>> -
>> -               set(FREETYPE ${LIBDIR}/freetype)
>> -               set(FREETYPE_INCLUDE_DIRS ${FREETYPE}/include
>> ${FREETYPE}/include/freetype2)
>> -               set(FREETYPE_LIBPATH ${FREETYPE}/lib)
>> -               set(FREETYPE_LIBRARY freetype2ST)
>> +               set(PTHREADS_INCLUDE_DIRS ${LIBDIR}/pthreads/include)
>> +               set(PTHREADS_LIBRARIES
>> ${LIBDIR}/pthreads/lib/pthreadVC2.lib)
>>
>> +               set(FREETYPE_INCLUDE_DIRS
>> +                       ${FREETYPE}/include
>> +                       ${FREETYPE}/include/freetype2
>> +               )
>> +               set(FREETYPE_LIBRARY
>> ${LIBDIR}/freetype/lib/freetype2ST.lib)
>> +
>>                if(WITH_FFTW3)
>>                        set(FFTW3 ${LIBDIR}/fftw3)
>>                        set(FFTW3_LIBRARIES libfftw)
>> @@ -638,10 +650,17 @@
>>                endif()
>>
>>                if(WITH_CODEC_FFMPEG)
>> -                       set(FFMPEG ${LIBDIR}/ffmpeg)
>> -                       set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include
>> ${FFMPEG}/include/msvc)
>> -                       set(FFMPEG_LIBRARIES avcodec-52 avformat-52
>> avdevice-52 avutil-50 swscale-0)
>> -                       set(FFMPEG_LIBPATH ${FFMPEG}/lib)
>> +                       set(FFMPEG_INCLUDE_DIRS
>> +                               ${LIBDIR}/ffmpeg/include
>> +                               ${LIBDIR}/ffmpeg/include/msvc
>> +                       )
>> +                       set(FFMPEG_LIBRARIES
>> +                               ${LIBDIR}/ffmpeg/lib/avcodec-52.lib
>> +                               ${LIBDIR}/ffmpeg/lib/avformat-52.lib
>> +                               ${LIBDIR}/ffmpeg/lib/avdevice-52.lib
>> +                               ${LIBDIR}/ffmpeg/lib/avutil-50.lib
>> +                               ${LIBDIR}/ffmpeg/lib/swscale-0.lib
>> +                       )
>>                endif()
>>
>>                if(WITH_IMAGE_OPENEXR)
>> @@ -676,17 +695,16 @@
>>                endif()
>>
>>                if(WITH_IMAGE_TIFF)
>> -                       set(TIFF ${LIBDIR}/tiff)
>> -                       set(TIFF_LIBRARY libtiff)
>> -                       set(TIFF_INCLUDE_DIR ${TIFF}/include)
>> -                       set(TIFF_LIBPATH ${TIFF}/lib)
>> +                       set(TIFF_LIBRARY ${LIBDIR}/tiff/lib/libtiff.lib)
>> +                       set(TIFF_INCLUDE_DIR ${LIBDIR}/tiff/include)
>>                endif()
>>
>>                if(WITH_JACK)
>> -                       set(JACK ${LIBDIR}/jack)
>> -                       set(JACK_INCLUDE_DIRS ${JACK}/include/jack
>> ${JACK}/include)
>> -                       set(JACK_LIBRARIES libjack)
>> -                       set(JACK_LIBPATH ${JACK}/lib)
>> +                       set(JACK_INCLUDE_DIRS
>> +                               ${LIBDIR}/jack/include/jack
>> +                               ${LIBDIR}/jack/include
>> +                       )
>> +                       set(JACK_LIBRARIES ${LIBDIR}/jack/lib/libjack.lib)
>>                endif()
>>
>>                if(WITH_PYTHON)
>> @@ -696,23 +714,24 @@
>>                        set(PYTHON_LIBRARIES
>> ${LIBDIR}/python/lib/python32.lib)
>>                endif()
>>
>> +               set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /STACK:2097152
>> /INCREMENTAL:NO
>>  /NODEFAULTLIB:msvcrt.lib\;msvcmrt.lib\;msvcurt.lib\;msvcrtd.lib ")
>> +
>>                # MSVC only, Mingw doesnt need
>>                if(CMAKE_CL_64)
>> -                       set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE
>> /MACHINE:X64 /STACK:2097152 /OPT:NOREF /INCREMENTAL:NO
>> /NODEFAULTLIB:\"msvcrt.lib\" /NODEFAULTLIB:\"msvcmrt.lib\"
>> /NODEFAULTLIB:\"msvcurt.lib\" /NODEFAULTLIB:\"msvcrtd.lib\" ")
>> +                       set(PLATFORM_LINKFLAGS "/MACHINE:X64 /OPT:NOREF
>> ${PLATFORM_LINKFLAGS}")
>>                else()
>> -                       set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE
>> /MACHINE:IX86 /STACK:2097152 /INCREMENTAL:NO /LARGEADDRESSAWARE
>> /NODEFAULTLIB:\"msvcrt.lib\" /NODEFAULTLIB:\"msvcmrt.lib\"
>> /NODEFAULTLIB:\"msvcurt.lib\" /NODEFAULTLIB:\"msvcrtd.lib\" ")
>> +                       set(PLATFORM_LINKFLAGS "/MACHINE:IX86
>> /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}")
>>                endif()
>>
>> -               set(CMAKE_EXE_LINKER_FLAGS_DEBUG
>> "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:libcmt.lib;libc.lib ")
>> +               set(PLATFORM_LINKFLAGS_DEBUG
>> "/NODEFAULTLIB:libcmt.lib\;libc.lib")
>>
>>        else()
>>                # keep GCC spesific stuff here
>>                if(CMAKE_COMPILER_IS_GNUCC)
>> -                       set(LLIBS "-lshell32 -lshfolder -lgdi32 -lmsvcrt
>> -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid")
>> +                       set(PLATFORM_LINKLIBS "-lshell32 -lshfolder -lgdi32
>> -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid")
>>                        set(PLATFORM_CFLAGS "-pipe -funsigned-char
>> -fno-strict-aliasing")
>>
>> -                       set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}
>> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE")
>> -                       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}
>> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE")
>> +                       add_definitions(-D_LARGEFILE_SOURCE
>> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE)
>>                endif()
>>
>>                add_definitions(-DFREE_WINDOWS)
>> @@ -922,7 +941,7 @@
>>                set(SAMPLERATE_LIBPATH ${SAMPLERATE}/lib)
>>        endif()
>>
>> -       set(LLIBS stdc++ SystemStubs)
>> +       set(PLATFORM_LINKLIBS stdc++ SystemStubs)
>>
>>        if(WITH_COCOA)
>>                set(PLATFORM_CFLAGS "-pipe -funsigned-char -DGHOST_COCOA")
>>
>> Modified: trunk/blender/build_files/cmake/macros.cmake
>> ===================================================================
>> --- trunk/blender/build_files/cmake/macros.cmake        2011-06-28 02:12:31
>> UTC (rev 37884)
>> +++ trunk/blender/build_files/cmake/macros.cmake        2011-06-28 02:49:49
>> UTC (rev 37885)
>> @@ -201,15 +201,17 @@
>>
>>  macro(setup_liblinks
>>        target)
>> -       set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}
>> ${PLATFORM_LINKFLAGS} ")
>>
>> +       set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}
>> ${PLATFORM_LINKFLAGS}")
>> +       set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG}
>> ${PLATFORM_LINKFLAGS_DEBUG}")
>> +
>>        target_link_libraries(${target}
>>                        ${OPENGL_gl_LIBRARY}
>>                        ${OPENGL_glu_LIBRARY}
>>                        ${JPEG_LIBRARIES}
>>                        ${PNG_LIBRARIES}
>>                        ${ZLIB_LIBRARIES}
>> -                       ${LLIBS})
>> +                       ${PLATFORM_LINKLIBS})
>>
>>        # since we are using the local libs for python when compiling msvc
>> projects, we need to add _d when compiling debug versions
>>        if(WITH_PYTHON)  # AND NOT WITH_PYTHON_MODULE  # WIN32 needs
>>
>> Modified: trunk/blender/build_files/scons/config/win32-vc-config.py
>> ===================================================================
>> --- trunk/blender/build_files/scons/config/win32-vc-config.py   2011-06-28
>> 02:12:31 UTC (rev 37884)
>> +++ trunk/blender/build_files/scons/config/win32-vc-config.py   2011-06-28
>> 02:49:49 UTC (rev 37885)
>> @@ -181,7 +181,7 @@
>>
>>  LLIBS = ['ws2_32', 'vfw32', 'winmm', 'kernel32', 'user32', 'gdi32',
>> 'comdlg32', 'advapi32', 'shfolder', 'shell32', 'ole32', 'oleaut32', 'uuid']
>>
>> -PLATFORM_LINKFLAGS =
>> ['/SUBSYSTEM:CONSOLE','/MACHINE:IX86','/STACK:2097152','/INCREMENTAL:NO',
>> '/LARGEADDRESSAWARE', '/NODEFAULTLIB:"msvcrt.lib"',
>> '/NODEFAULTLIB:"msvcmrt.lib"', '/NODEFAULTLIB:"msvcurt.lib"',
>> '/NODEFAULTLIB:"msvcrtd.lib"']
>> +PLATFORM_LINKFLAGS =
>> ['/SUBSYSTEM:CONSOLE','/MACHINE:IX86','/STACK:2097152','/INCREMENTAL:NO',
>> '/LARGEADDRESSAWARE',
>> '/NODEFAULTLIB:msvcrt.lib;msvcmrt.lib;msvcurt.lib;msvcrtd.lib']
>>
>>  # # Todo
>>  # BF_PROFILE_CCFLAGS = ['-pg', '-g ']
>>
>> Modified: trunk/blender/build_files/scons/config/win64-vc-config.py
>> ===================================================================
>> --- trunk/blender/build_files/scons/config/win64-vc-config.py   2011-06-28
>> 02:12:31 UTC (rev 37884)
>> +++ trunk/blender/build_files/scons/config/win64-vc-config.py   2011-06-28
>> 02:49:49 UTC (rev 37885)
>> @@ -188,7 +188,7 @@
>>  else:
>>        BF_NUMJOBS=6
>>
>>
>> @@ Diff output truncated at 10240 characters. @@
>> _______________________________________________
>> Bf-blender-cvs mailing list
>> Bf-blender-cvs at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>



-- 
- Campbell


More information about the Bf-committers mailing list