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

2011-06-29 Thread Alex K
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

2011-06-30 Thread Campbell Barton
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

2011-06-30 Thread Alex K
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

2011-06-30 Thread Campbell Barton
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