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 <[email protected]>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 > [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
