[CMake] FindMPI doesn't differentiate between languages

Marcel Loose loose at astron.nl
Mon Dec 20 06:09:31 EST 2010


>>> On 19-12-2010 at 0:04, in message
<A43E19D1-AF96-4935-99FD-705A4CDA7E34 at llnl.gov>, Todd Gamblin
<tgamblin at llnl.gov> wrote: 
> Hey all,
> 
> This has been brought up before (sort of) here:
> 
>
	http://thread.gmane.org/gmane.comp.programming.tools.cmake.user/26533
> 
> FindMPI doesn't currently give you the libraries, includes, etc. for

> different languages. MPI compilers can (and typically do) have
different 
> includes/libraries depending on the language you're using.  It was
noted 
> above that you don't get the fortran libraries for MPI using the
current 
> macro.  Another problem with the current setup is that you're also
likely to 
> inadvertently get the C++ includes with the current FindMPI, unless
you 
> explicitly disable them using things like -DOMPI_SKIP_MPICXX.  This
can get 
> you unwanted C++ symbols in your MPI libraries (because the MPI C++
interface 
> and headers suck, but that's a whole different story).
> 
> I'd be interested in fixing this.  But I would like guidance on how
to do 
> it.  My inclination would be to make a new version that gives you not
just 
> MPI_FOUND, MPI_LIBRARIES, etc.. but MPI_<LANG>_FOUND,
MPI_<LANG>_LIBRARIES, 
> MPI_<LANG>_INCLUDE_PATH, etc.  If you read the thread above, someone
suggested 
> using components for this back in January, but that was left on the
table and 
> seems not to have been implemented.
> 
> What's the best way to implement proper language support in the
FindMPI 
> module?
> 
> -Todd

Hi Todd,

I think this is a good idea. You might consider taking into account
which languages are currently enabled, either explicitly with
enable_language() or implicitly with project().

Best regards,
Marcel Loose.



-- 
Marcel Loose
Senior Software Engineer, Computing Group R&D, Astron, the Netherlands



More information about the CMake mailing list