[CMake] Using xilink
ycollette.nospam at free.fr
ycollette.nospam at free.fr
Mon Nov 22 10:02:22 EST 2010
Hello,
I have added set_property(TARGET Arc3D PROPERTY INTERPROCEDURAL_OPTIMIZATION 1) in my CMakeLists.txt.
I have removed the include(CMakeDetermineFortranCompiler) from my CMakeLists.txt.
Now, the intel fortran compiler is still correctly detected, but it seems that the microsoft visual linker is still used.
I have printed the variable CMAKE_LINKER and it's still set to:
-- CMAKE_LINKER = C:/Program Files (x86)/Microsoft Visual Studio 8/VC/bin/link.exe
YC
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