[CMake] FindMPI and setting C/C++ compiler
Marcel Loose
loose at astron.nl
Wed May 26 12:15:38 EDT 2010
True, but that raises (at least) two questions:
1) What's the use of the variable MPI_COMPILER if it cannot be used to
set the C/C++ compiler.
2) I know how to handle MPI_COMPILE_FLAGS - use add_definitions();
MPI_INCLUDE_PATH - use include_directories(); MPI_LIBRARIES - use
target_link_libraries(). But how do I handle MPI_LINK_FLAGS?
Regards,
Marcel Loose.
On Wed, 2010-05-26 at 17:38 +0200, Michael Wild wrote:
> On 26. May, 2010, at 17:20 , Marcel Loose wrote:
>
> > Hi all,
> >
> > I was wondering how one should use find_package(MPI) to properly set
the
> > C/C++ compiler(s). Normally, you call find_package() after the
project()
> > command. However, by that time the CMAKE_<LANG>_COMPILER cache
variables
> > have already been set. Should one FORCE these cache variables to the
> > value of MPI_COMPILER?
> >
> > I vaguely remember that setting CMAKE_<LANG>_COMPILER after the
> > project() statement was a definite no-no, because all kinds of
tests,
> > executed by the project() command, are done with the default C/C++
> > compilers.
> >
> > Best regards,
> > Marcel Loose.
>
>
> Usually mpiCC and cohorts are just wrapper scripts which add
appropriate include directories and libraries to the command line. If I
remember correctly, FindMPI.cmake detects those and provides them via
MPI_COMPILE_FLAGS, MPI_INCLUDE_PATH, MPI_LINK_FLAGS and MPI_LIBRARIES.
So, you actually don't need to set the compiler to one of the MPI
compiler wrappers.
>
> Michael
More information about the CMake
mailing list