Re: [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
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 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 + (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.txt2011-06-28 02:12:31 UTC (rev 37884) > +++ trunk/blender/CMakeLists.txt2011-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++ fl
Re: [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
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 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 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 + (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 /
Re: [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
I did 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 "/MACHINE:X64 /OPT:NOREF ${PLATFORM_LINKFLAGS}") else() set(PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}") endif() set(PLATFORM_LINKFLAGS_DEBUG "/NODEFAULTLIB:LIBCMT.lib, libc.lib /FORCE:MULTIPLE") Dunno, visual studio tried to link LIBCMT.lib in debug mode also, causing a conflict. /FORCE:MULTIPLE resolved it. Btw, I used cmake 2.8.4 Thanks, Alex ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [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
Ah 'Debug' broke but not Release which is why it worked for me, committed fix 37996 On Thu, Jun 30, 2011 at 6:04 PM, Alex K wrote: > I did > > > 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 "/MACHINE:X64 /OPT:NOREF > ${PLATFORM_LINKFLAGS}") > else() > set(PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE > ${PLATFORM_LINKFLAGS}") > endif() > > set(PLATFORM_LINKFLAGS_DEBUG "/NODEFAULTLIB:LIBCMT.lib, > libc.lib /FORCE:MULTIPLE") > > Dunno, visual studio tried to link LIBCMT.lib in debug mode also, causing a > conflict. /FORCE:MULTIPLE resolved it. > Btw, I used cmake 2.8.4 > > Thanks, > Alex > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers > -- - Campbell ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers