[CMake] Using xilink

Brad King brad.king at kitware.com
Mon Nov 22 09:44:13 EST 2010


On 11/22/2010 08:34 AM, Michael Wild wrote:
> On 11/22/2010 07:56 AM, ycollette.nospam at free.fr wrote:
>> I have a fortran project and I use the fortran intel compiler under windows XP 64 bits with cmake 2.8.2.
>> I added include(CMakeDetermineFortranCompiler) in my project and the intel fortran compiler is correctly detected.
> 
> Don't include CMakeDetermineFortranCompiler.cmake directly. That is an
> internal file. Ether use ENABLE_LANGUAGE(Fortran) instead, or list
> Fortran as one of the languages in your PROJECT call.

Correct.

>> But the intel linker is not correctly detected. Only the microsoft linker is detected. But to be able tu use the IPO option, using the xilink compiler is a necessity.
>> How can I force my project to use xilink instead of microsoft linker ?

Don't pass "-ipo" directly.  Instead, set the INTERPROCEDURAL_OPTIMIZATION
property on your target:

  http://www.cmake.org/cmake/help/cmake-2-8-docs.html#prop_tgt:INTERPROCEDURAL_OPTIMIZATION

CMake will pass -ipo and use xilink as necessary.

Use code like

  set_property(TARGET myexe PROPERTY INTERPROCEDURAL_OPTIMIZATION 1)

to enable IPO for the "myexe" target or perhaps

  set_property(DIRECTORY PROPERTY INTERPROCEDURAL_OPTIMIZATION 1)

to enable IPO for all targets.

-Brad


More information about the CMake mailing list