All,

There is a new implementation of the FindMPI module in next.  There are a 
number of changes in this version, and it did not quite make it into 2.8.4 
because it needs more testing.  If you are interested in this and can kick the 
tires, please try it out and send feedback to me.

There motivation for the new version was that the existing FindMPI does not 
support multiple languages properly.  It assumes you want either C++ or C, and 
it doesn't care which you get.  There is also no good way to do MPI for fortran 
-- the compilers are not detected.

The new interface replaces these variables:
        MPI_FOUND
        MPI_COMPILER
        MPI_LIBRARY
        MPI_COMPILE_FLAGS
        MPI_INCLUDE_PATH
        MPI_EXTRA_LIBRARY
        MPI_LINK_FLAGS
        MPI_LIBRARIES

With these:
        MPI_<lang>_FOUND           TRUE if FindMPI found MPI flags for <lang>
        MPI_<lang>_COMPILER        MPI Compiler wrapper for <lang>
        MPI_<lang>_COMPILE_FLAGS   Compilation flags for MPI programs
        MPI_<lang>_INCLUDE_PATH    Include path(s) for MPI header
        MPI_<lang>_LINK_FLAGS      Linking flags for MPI programs
        MPI_<lang>_LIBRARIES       All libraries to link MPI programs against
        
for each <lang> in (CXX, C, Fortran).

The old variables will continue to work; they are set to the MPI_CXX_ 
equivalent if it is available, and the MPI_C_ version if it is not.

However, there are some backward compatibility concerns.  In particular, you 
need to set either MPI_<lang>_COMPILER or MPI_<lang>_INCLUDE_PATH and 
MPI_<lang>_LIBRARIES to override autodetection.  In the old FindMPI, you would 
have set either MPI_COMPILER,  MPI_INCLUDE_PATH, MPI_LIBRARY, and possibly 
MPI_EXTRA_LIBRARY to do the same.  Right now, the old variables don't serve as 
hints to the new detection mechanism, so you may need to reconfigure your -D 
arguments to CMake for new projects.

Again, the old variables continue to be *set* in the new version, but they are 
no longer used as input to the module.

Finally, there are a few other improvements.  This FindMPI will search for more 
compiler names, and it will attempt to match the MPI compiler to the ID of the 
CXX, C, or Fortran compiler.  This version also searches a few more paths for 
Windows, and should properly detect MPICH2 on Windows.

Please test this as much as possible so that hopefully this or some improved 
version can go into 2.8.5 in April.  You can either try the version in CMake 
next, or the attached FindMPI.cmake. 

-Todd



Attachment: FindMPI.cmake
Description: Binary data

_______________________________________________
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