Re: [CMake] How to find fortran library

2008-12-04 Thread Javier Gonzalez
Maik Beckmann wrote:
 Am Mittwoch, 3. Dezember 2008 schrieb Javier Gonzalez:
   
 Hi all,

 I have a project that links to another project built with Fortran. My
 own project is a C++ project and I usually need to link against a
 fortran library of some sort to use the first one. I use gcc, so it
 usually is libgfortran or libg2c.

 Now my question is: if I enable Fortran, will there be a variable that
 tells me the location of the library I need to link to?
 

 No.  The compiler frontend (gfortran, g77, ...) makes the decision which 
 system and compiler libraries have to be linked in.  

 If you or cmake link an fortran executable with 
   g77 -o myapp a.o b.o ..
 libg2c will be linked in by g77.  When doing
   g77 -o myapp a.o b.o ..
 libgfortran will be linked in by gfortran.

 The same is true for g++, which links in libstdc++ by default.

   
 What I do at the moment is that I guess which library I need to link to
 based on the Fortran compiler's name and, since I use gcc, try to find
 it in the path given by 'gcc -print-search-dirs'. Is this the right way?
 I would expect that cmake defines a variable with this information
 somewhere.
 

 This is the right way.  Maybe an effort to write cmake module which handles 
 this task is worthy.

 Best,
  -- Maik


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

   
I see.

Later I saw Bill's message about the new release. One of the changes in
2.6.3 RC5 is:
- Add FortranCInterface.cmake module to discover Fortran/C interfaces

I wonder if that is precisely what I was looking for so I will check it out.

thanks,
Javier
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] How to find fortran library

2008-12-04 Thread Bill Hoffman

Javier Gonzalez wrote:

Maik Beckmann wrote:

Am Mittwoch, 3. Dezember 2008 schrieb Javier Gonzalez:
  

Hi all,

I have a project that links to another project built with Fortran. My
own project is a C++ project and I usually need to link against a
fortran library of some sort to use the first one. I use gcc, so it
usually is libgfortran or libg2c.

Now my question is: if I enable Fortran, will there be a variable that
tells me the location of the library I need to link to?

No.  The compiler frontend (gfortran, g77, ...) makes the decision which 
system and compiler libraries have to be linked in.  

If you or cmake link an fortran executable with 
  g77 -o myapp a.o b.o ..

libg2c will be linked in by g77.  When doing
  g77 -o myapp a.o b.o ..
libgfortran will be linked in by gfortran.

The same is true for g++, which links in libstdc++ by default.

  

What I do at the moment is that I guess which library I need to link to
based on the Fortran compiler's name and, since I use gcc, try to find
it in the path given by 'gcc -print-search-dirs'. Is this the right way?
I would expect that cmake defines a variable with this information
somewhere.

This is the right way.  Maybe an effort to write cmake module which handles 
this task is worthy.


Best,
 -- Maik


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

  

I see.

Later I saw Bill's message about the new release. One of the changes in
2.6.3 RC5 is:
- Add FortranCInterface.cmake module to discover Fortran/C interfaces

I wonder if that is precisely what I was looking for so I will check it out.

No not really.  That module figures out the name mangling scheme of the 
fortran compiler.   It does not figure out the run time libraries.


-Bill
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


[CMake] How to find fortran library

2008-12-03 Thread Javier Gonzalez
Hi all,

I have a project that links to another project built with Fortran. My
own project is a C++ project and I usually need to link against a
fortran library of some sort to use the first one. I use gcc, so it
usually is libgfortran or libg2c.

Now my question is: if I enable Fortran, will there be a variable that
tells me the location of the library I need to link to?

What I do at the moment is that I guess which library I need to link to
based on the Fortran compiler's name and, since I use gcc, try to find
it in the path given by 'gcc -print-search-dirs'. Is this the right way?
I would expect that cmake defines a variable with this information
somewhere.

thanks,
Javier
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] How to find fortran library

2008-12-03 Thread Maik Beckmann
Am Mittwoch, 3. Dezember 2008 schrieb Javier Gonzalez:
 Hi all,

 I have a project that links to another project built with Fortran. My
 own project is a C++ project and I usually need to link against a
 fortran library of some sort to use the first one. I use gcc, so it
 usually is libgfortran or libg2c.

 Now my question is: if I enable Fortran, will there be a variable that
 tells me the location of the library I need to link to?

No.  The compiler frontend (gfortran, g77, ...) makes the decision which 
system and compiler libraries have to be linked in.  

If you or cmake link an fortran executable with 
  g77 -o myapp a.o b.o ..
libg2c will be linked in by g77.  When doing
  g77 -o myapp a.o b.o ..
libgfortran will be linked in by gfortran.

The same is true for g++, which links in libstdc++ by default.

 What I do at the moment is that I guess which library I need to link to
 based on the Fortran compiler's name and, since I use gcc, try to find
 it in the path given by 'gcc -print-search-dirs'. Is this the right way?
 I would expect that cmake defines a variable with this information
 somewhere.

This is the right way.  Maybe an effort to write cmake module which handles 
this task is worthy.

Best,
 -- Maik


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