I am having problems with Fortran linking that doesn't work when building static libraries, only when building shared libraries. I am using cmake from Ubuntu 10.04 (2.8.0-5ubuntu1).
I use CMake to build a project, including project-internal shared libraries. All executables are Fortran, but one of the internal libraries contain minimal sprinklings of C and C++. All works well when building shared libraries, but when I switch to building static libraries, CMake decides to try to link all Fortran executables as if they were C++. Unfortunately, this means that the main function is not properly located, and linking fails. I tried forcing Fortran linkage on libraries only (hoping this would propagate into the executables that link to them), using SET_TARGET_PROPERTIES(<libname> PROPERTIES LINKER_LANGUAGE Fortran) and when building the libraries, output shows that they are indeed treated as Fortran static libraries. But the executables (typically conisting of a single .f90 file, and linked to one or more of the internal libraries) are still treated as C++. Only when I force the LINKER_LANGUAGE by using SET_TARGET_PROPERTIES on both libraries and executables does things build properly. But that seems needlessly redundant and noisy and redundant. Is there some easier way I can convince CMake to link the executables correctly? Is this a bug? -- Erlend Pedersen Holberg Research AS _______________________________________________ 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
