[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