[CMake] Auxiliary fortran link libraries?

John R. Cary cary at txcorp.com
Mon Jul 19 11:46:40 EDT 2010


Thanks for your response.  More below.

On 7/19/2010 9:06 AM, Brad King wrote:
>
>> Can I force the addition of these libraries without referencing
>> them explicitly?
>>      
> One workaround is to list a dummy .F file just to tell CMake that
> Fortran will be involved at link time.  I call it a workaround
> because we are not really giving CMake enough information to
> solve this problem for us.
>
> What provides the lapack and blas libraries you're using?

They come with the system.

>   How
> are we as users supposed to know that they are Fortran-built
> libraries and not something provided by a project like CLAPACK.
> How do we know what Fortran compiler was used to build them
> (to know what mangling it uses)?  If information like this is
> not available through some automatically detectable means then
> any solution will involve manual interference.
>    

So the lapack libraries are actually needed as a dependency of
Trilinos, another C++ library, which does the calling of the
symbols, and it must get those right, because if I add them to
the link line, then all links and runs.

Now I happen to know what those libraries were compiled with,
and I passed the correct fortran, so I also know that what is
here:

   numbersix.cary$ grep IMPLICIT CMakeFiles/CMakeFortranCompiler.cmake
   SET(CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES "gfortran")
   SET(CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES
   "/usr/local/lib/gcc/x86_64-apple-darwin10/4.5.0;/usr/local/lib")

So can I just INCLUDE CMakeFiles/CMakeFortranCompiler.cmake and
then add these libraries to my target in cases where I know they
are correct?

Or perhaps the include is done automatically?

Thanks.....John Cary






More information about the CMake mailing list