On 21. Jan, 2009, at 19:05, Roland Krause wrote:

Greetings,
I'm working on CMake support for a very large Fortran code. We are linking nearly everything static, especially the Intel Fortran libraries but I can't seem to find the flag to do this in the CMake documentation (looked at CMake-2.6.x online). I've found SET(CMAKE_DL_LIBS "dl") in the Modules/Platform/Linux-ifort.cmake. Is that it?



No, CMAKE_DL_LIBS is for libdl, the dynamic linker (i.e. "plugin" loading). You need to pass the -static-intel flag to the compiler during linking. You can to that either using the LINK_FLAGS target property (but then make very sure that you're really using an intel compiler in you CMakeLists.txt) or set the CMAKE_XXX_LINKER_FLAGS in the cache (where XXX is one of EXE, SHARED or MODULE).

This worked for me:

project(test Fortran)

add_executable( test test.f90 )

# test whether this is an intel compiler, then use -static-intel when linking
if( CMAKE_Fortran_COMPILER_ID STREQUAL Intel )
  set_target_properties( test PROPERTIES LINK_FLAGS -static-intel )
endif( CMAKE_Fortran_COMPILER_ID STREQUAL Intel )



Thanks for any pointers.

Roland

HTH

Michael
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to