Hi Michael,
Well lets see:
>> set (CMAKE_BUILD_TYPE RELEASE FORCE)
Get rid of debug builds on my windows XP VS2003 ifort 8.1 testbox. Didn't do
the trick without FORCE.
>> SET (CMAKE_EXE_LINKER_FLAGS_INIT "" FORCE)
Actually this one fails. I couldn't get rid of it. See bottom.
>> set (CMAKE_C_FLAGS_RELEASE_INIT "")
>> set (CMAKE_CXX_FLAGS_RELEASE_INIT "")
I don't want "/MD" but "/MT" (libcmt.lib instead of msvcrt.dll)
>> set (CMAKE_Fortran_FLAGS_RELEASE_INIT "")
This flag normally specifies "/O1". Our default optimization level is
MDFC_OPT_LVL2 which is "-O2" but some code gets compiled with lvl 3 (-O3 -QaxW)
or lvl 0 ("-Od").
Windows-ifort.cmake:
# compile a C++ file into an object file
#SET(CMAKE_Fortran_COMPILE_OBJECT
# "<CMAKE_Fortran_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}
/fpp /Fo<OBJECT> <DEFINES> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
message (STATUS "FIXME: Removed /fpp from the compile line")
SET(CMAKE_Fortran_COMPILE_OBJECT
"<CMAKE_Fortran_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}
/Fo<OBJECT> <DEFINES> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
message (STATUS "Turned off /INCREMENTAL:YES flag")
#SET (CMAKE_EXE_LINKER_FLAGS_INIT " /INCREMENTAL:YES")
>Could you help me understand the motivations behind this type of code?
>Is it the conflicts between the debug and release C/C++ runtime
>libraries on Visual Studio?
I was ending up with libraries for free on my link lines by cmake, ifort and/or
cl.exe (msvcrtd.dll, msvcrt.dll, libifcore.lib and others.). This actually
caused the link to fail. Cmake is great for setting up a project, but
desperation may set in if you want control over certain parts :P
Regards,
Arjen
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake