[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

Alex K kuzsasha at gmail.com
Thu Jun 30 07:27:48 CEST 2011


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
>


More information about the Bf-committers mailing list