Hello Jan,
I tried this code but it doesn't work either (thank you Brad,
CMAKE_COMPILER_IS_MSVC doesn't exist):
# Threads compatibility
IF ( MSVC )
MESSAGE ( STATUS "Setting MSVC MT switches")
SET (
CMAKE_CXX_FLAGS_DEBUG
"/MTd ${CMAKE_CXX_FLAGS_DEBUG}"
CACHE STRING "MSVC MT flags " FORCE
)
SET (
CMAKE_CXX_FLAGS_RELEASE
"/MT ${CMAKE_CXX_FLAGS_RELEASE}"
CACHE STRING "MSVC MT flags " FORCE
)
ENDIF ( MSVC )
What does the cache command really do that the normal way doesn't?
Whatever, it works with the cache command and doesn't without, now I have the
following CMAKE_CXX_FLAGS_RELEASE variable:
/MT /MD /O2 /Ob2 /D NDEBUG
I also tested with:
/MD /O2 /Ob2 /D NDEBUG /MT
I thought VS would choose the first switch, or the last one, but in fact it
seems to choose the default setting when two different switches are provided
for the same setting: the final command line in VS always has the /MD switch.
Is there a way to remove the /MD* switches from the CMAKE_CXX_FLAGS_* variables
and replace it with /MT* switches? I can of course overwrite the whole command
with /MT*, but I will then loose the other switches (/O2 /Ob2 /D NDEBUG) and I
definitely don't want that.
By the way, why does CMake specify the /MD switch as a default?
_______________________________________________
Frédéric Sagnes, A&D AS RD DH K3 Siemens AG Karlsruhe
-----Ursprüngliche Nachricht-----
Von: Jan Woetzel [mailto:[EMAIL PROTECTED]
Gesendet: Donnerstag, 13. Juli 2006 14:41
An: Sagnes, Frederic
Cc: [email protected]
Betreff: Re: [CMake] Selecting runtime library on Visual Studio projects
Sagnes, Frederic wrote:
>How can I switch the default libraries (/MD and MDd switches) to the static
>ones (/MT and /MTd switches).
>
>
(1) The easy way is start CMakeSetup.exe or ccmake
and edit the flags by hand interactively.
(2) Inti the cache one time with different flags. See SET(... CACHE
..FORCE ...) command.
E.g.
SET(CMAKE_CXX_FLAGS_DEBUG
"${CMAKE_CXX_FLAGS_DEBUG} /wd4100 /wd4127 /wd4189 /wd4512 /wd4702"
CACHE STRING "Debug builds CMAKE CXX flags " FORCE )
My suggestion is (1).
Jan.
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake