[CMake] subsystem questions for win & ifort

Knox, Kent Kent.Knox at amd.com
Wed Mar 18 18:58:44 EDT 2009


Hi all~

I'm having trouble figuring out how to select the appropriate subsystem
for my cmake windows ifort project, with the IDE build environment.

By default, unless otherwise specified, intel's Fortran runtime file are
linked in statically.  Everything works fine statically; no errors.  I
prefer dynamically linked runtimes, and I have defined FFLAGS as so:

set( CMAKE_Fortran_FLAGS_DEBUG "/Zi /Od /traceback /check:bounds
/libs:dll /threads /dbglibs /gen-interfaces /warn:interfaces" )

The appropriate dynamic runtime options being /libs:dll /threads
/dbglibs.  At this point, the compiler fails with the message:
LINK : fatal error LNK1561: entry point must be defined

I've found that this is because /subsystem:console is not being
generated in the IDE project files.  Curiously enough, on an nMake
build, everything links fine.

I'm not sure what the proper way in Cmake is to specify the subsystem.
In the docs, I see a WIN32_PROPERTY, but no corresponding
CONSOLE_PROPERTY.  

I've hacked around this with info I found on this wiki page:
http://www.cmake.org/Wiki/VSConfigSpecificSettings

Which helped me to manually set a LINK FLAGS property.  It doesn't feel
proper though.

Another question:  I would like to see the flags that are being sent to
the ifort compiler/linker.  It appears that cmake/nmake puts all
compiler options into a tmp file, executes the compiler with the
response file, then promptly erases the tmp file.  How do I keep these
tmp files around so I can examine them?

Kent



More information about the CMake mailing list