[CMake] FindMPI uses wrong fortran include path

Daniel Wirtz daniel.wirtz at simtech.uni-stuttgart.de
Wed Feb 10 17:01:09 EST 2016


Hey,

at a rough read i think i had the same sort of issue.
For us, the FindMPI detected "MPI_Fortran_INCLUDE_PATH" correctly - 
however, what did matter in our case
was the order those paths have been used in CMake.

as example:
target_include_directories(yourtarget ${MPI_C_INCLUDE_PATH} 
${MPI_Fortran_INCLUDE_PATH})
instead of
target_include_directories(yourtarget ${MPI_Fortran_INCLUDE_PATH} 
${MPI_C_INCLUDE_PATH})
makes all the difference in our case.
so check if there are maybe even dependent libraries that have the C/CXX 
include path set first etc.

maybe this helps :-)


On 11.02.2016 09:19, Jack Stalnaker wrote:
> This seems to be the same issue discussed here:
> https://cmake.org/pipermail/cmake-developers/2014-December/023831.html
>
> which refers to a bug marked fixed here:
> http://www.cmake.org/Bug/view.php?id=15182
> However, I'm still getting the issue in 3.5.0-rc1
>
> On Wed, Feb 10, 2016 at 12:24 PM, Jack Stalnaker <omnijack at gmail.com 
> <mailto:omnijack at gmail.com>> wrote:
>
>     Hi,
>
>     If I call FindMPI, it successfully finds Intel MPI, including all
>     the proper include paths etc. However, when I compile MPI code, I
>     get an error message saying that the mod file (called by "use mpi"
>     in the code) was not compiled by this compiler. The problem
>     appears to be that the Intel compiler suite installed both
>     gfortran and ifort versions of the mod files in different include
>     directories like this:
>
>     INTELROOT/
>         linux/mpi/intel64/include/gfortran/mpi.mod
>         linux/mpi/intel64/include/mpi.mod
>
>     where the first mod is the gfortran mod, and the second is the
>     intel mod. Following the call to FindMPI(), the variable
>     MPI_Fortran_INCLUDE_PATH contains both, with the gfortran
>     directory first. If I do this:
>
>     include_directories(${MPI_Fortran_INCLUDE_PATH})
>
>     I get the failure I mentioned, presumably because the compiler
>     tries to use the gfortran mod first.
>
>     So is there a way to tell the build system to ignore the gfortran
>     mod? I cannot assume that the order or contents of
>     MPI_Fortran_INCLUDE_PATH.
>
>     Thanks
>
>
>
>

-- 
Dr. Daniel Wirtz
Dipl. Math. Dipl. Inf.
SRC SimTech
Pfaffenwaldring 5a, D-70569 Stuttgart
+49 (711) 685-60044

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20160211/7d3f75a1/attachment-0001.html>


More information about the CMake mailing list