On 1/15/2010 5:58 PM, Alan W. Irwin wrote:
The PLplot project has been supporting some additional Fortran
> compilers

What compilers?

FYI, the Compiler/* and Platform/* modules have been refactored
a bit in CVS HEAD CMake.  The changes break compiler- and platform-
specific information down with more granularity, making it easier
to add new compilers.  We've added support for PathScale and PGI.

> via files in cmake/modules/Platform in our source tree where we use

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules)

This CMake_MODULE_PATH approach requires that we put a slightly modified
version of CMakeFortranInformation.cmake in cmake/modules that searches
${CMAKE_MODULE_PATH}/Platform locations as well as
${CMAKE_ROOT}/Modules/Platform. That's pretty clumsy but this procedure has
worked fine for CMake-2.6.x.

What change did you make to CMakeFortranInformation.cmake?  We should
be able to modify the CMake-provided version to do this.

However, I am having trouble with the cmake-2.8.0 case. (I am getting
strange errors that use g++ rather than gfortran as the Fortran linker for
the static Fortran library case).

Static libraries don't link, they are archives, so I assume you mean
that linking an executable to a static library is using the C++ linker.

This is a feature of CMake 2.8.  CMake tracks the languages involved
in each target.  If any C++ is involved, either directly or through
a linked library, then it uses the C++ linker.  This is necessary to
initialize the C++ language runtime correctly.  If Fortran is involved
too then it uses the C++ linker and explicitly passes Fortran language
libraries.

> My guess is I need to add additional
Fortran support files in cmake/modules for the CMake-2.8.0 case. But that
is clumsier still and requires that we immediately drop CMake-2.6.x
support.

Create a language module directory for each version of CMake.

Thus, I am wondering if there is a better procedure (or whether such a
procedure could be implemented within CMake) to allow convenient CMake
support for a project like PLplot to support additional Fortran compilers
(or any additional compilers for a CMake-supported language like Fortran)
without requiring our users patch their installed version of CMake.

The above-mentioned modification to CMakeFortranInformation.cmake should
handle this.

Of course, the long-term solution to this problem is to contribute our files
that support additional Fortran compilers to CMake. We would be happy to do
that, but that probably involves considerable delay until they are accepted
into an official CMake release

If you had started that process back when you wrote them for 2.6
then perhaps they would have been in 2.8.

Fortran compilers (or C compilers or C++ compilers) they would like us to
support, we would always need to independently test these files over at
least one PLplot release cycle ourselves before contributing them to CMake.

Why?  CMake's tests exercise just about everything CMake knows
about the compilers.  I think direct contribution to CMake should
be done immediately.

-Brad
_______________________________________________
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

Reply via email to