AW: [CMake] Selecting runtime library on Visual Studio projects

Sagnes, Frederic frederic.sagnes at siemens.com
Tue Jul 18 07:00:42 EDT 2006


Thank you for your answer, this solution looks really nice.

I tried this command to change the MT switch, but it doesn't work:

  SET (
    CMAKE_CXX_FLAGS_RELEASE
      "/RuntimeLibrary:MT ${CMAKE_CXX_FLAGS_RELEASE}"
  )

Do I really need your macro or do I need a development version of CMake to make this work? Do I need to patch and recompile CMake to use this solution? Will these changes be included in future CMake versions?

_______________________________________________

Frédéric Sagnes, A&D AS RD DH K3 Siemens AG Karlsruhe

-----Ursprüngliche Nachricht-----
Von: Sylvain Benner [mailto:benner at virtools.com] 
Gesendet: Dienstag, 18. Juli 2006 12:11
An: Sagnes, Frederic; cmake at cmake.org
Betreff: Re: [CMake] Selecting runtime library on Visual Studio projects

Hi,

I think you can't override a flag in the current version of CMake (release 
or CVS) because the loop that parses the flag string do not provide this.
I changed this function in order to override easily the flags in the low 
level configuration files.

I attached the modified flag table for compiler and the modified function 
that loop on this table
Note that there are imaginery flags that do not exist in VS. With these 
imaginery flags we can set the default options without forcing them in the 
code.
There are also some flags for VS2005 (especially for exception handling).

With this code you can override a flag with this macro :

MACRO(ADD_FLAG where flag)

SET(${where} "${flag} ${${where}}")

ENDMACRO(ADD_FLAG)



// example : override a subsystem flag

ADD_FLAG(CMAKE_EXE_LINKER_FLAGS /SUBSYSTEM:CONSOLE)


More information about the CMake mailing list