[cmake-developers] [CMake 0013843]: FindMPI doesn't set MPI_C_LINK_FLAGS or MPI_C_COMPILE_FLAGS (and same for CXX)
Mantis Bug Tracker
mantis at public.kitware.com
Thu Jan 10 07:01:21 EST 2013
The following issue has been SUBMITTED.
======================================================================
http://public.kitware.com/Bug/view.php?id=13843
======================================================================
Reported By: jgu
Assigned To:
======================================================================
Project: CMake
Issue ID: 13843
Category: Modules
Reproducibility: always
Severity: minor
Priority: normal
Status: new
======================================================================
Date Submitted: 2013-01-10 07:01 EST
Last Modified: 2013-01-10 07:01 EST
======================================================================
Summary: FindMPI doesn't set MPI_C_LINK_FLAGS or
MPI_C_COMPILE_FLAGS (and same for CXX)
Description:
I have a project which does a find_package(MPI). I use the following snippet to
print out all variables:
get_cmake_property(_variableNames VARIABLES)
foreach (_variableName ${_variableNames})
message(STATUS "${_variableName}=${${_variableName}}")
endforeach()
which produces for the MPI relevant variables:
-- MPIEXEC=/usr/lib64/openmpi/bin/mpiexec
-- MPIEXEC_MAX_NUMPROCS=2
-- MPIEXEC_NUMPROC_FLAG=-np
-- MPIEXEC_POSTFLAGS=
-- MPIEXEC_PREFLAGS=
-- MPI_COMPILER=/usr/lib64/openmpi/bin/mpicxx
-- MPI_COMPILER_IS_EXECUTABLE=0
-- MPI_CXX_COMPILER=/usr/lib64/openmpi/bin/mpicxx
-- MPI_CXX_COMPILE_FLAGS=
-- MPI_CXX_FOUND=TRUE
-- MPI_CXX_INCLUDE_PATH=/usr/include/openmpi-x86_64
--
MPI_CXX_LIBRARIES=/usr/lib64/openmpi/lib/libmpi_cxx.so;/usr/lib64/openmpi/lib/libmpi.so;/usr/lib64/libdl.so
-- MPI_CXX_LINK_FLAGS=
-- MPI_C_COMPILER=/usr/lib64/openmpi/bin/mpicc
-- MPI_C_COMPILE_FLAGS=
-- MPI_C_FOUND=TRUE
-- MPI_C_INCLUDE_PATH=/usr/include/openmpi-x86_64
-- MPI_C_LIBRARIES=/usr/lib64/openmpi/lib/libmpi.so;/usr/lib64/libdl.so
-- MPI_C_LINK_FLAGS=
-- MPI_EXTRA_LIBRARY=/usr/lib64/openmpi/lib/libmpi.so;/usr/lib64/libdl.so
-- MPI_EXTRA_LIBRARY_WORK=/usr/lib64/openmpi/lib/libmpi.so;/usr/lib64/libdl.so
-- MPI_FOUND=TRUE
-- MPI_HEADER_PATH=MPI_HEADER_PATH-NOTFOUND
-- MPI_INCLUDE_PATH=/usr/include/openmpi-x86_64
-- MPI_LIB=MPI_LIB-NOTFOUND
--
MPI_LIBRARIES=/usr/lib64/openmpi/lib/libmpi_cxx.so;/usr/lib64/openmpi/lib/libmpi.so;/usr/lib64/libdl.so
-- MPI_LIBRARY=/usr/lib64/openmpi/lib/libmpi_cxx.so
-- MPI_LIBRARY_WORK=/usr/lib64/openmpi/lib/libmpi_cxx.so
-- MPI_NUMLIBS=3
-- MpiPackageDir=
which shows empty MPI_C_LINK_FLAGS and MPI_C_COMPILE_FLAGS and the same for the
equivalent CXX variables. As a result, even though my project has this:
set_target_properties(myexec PROPERTIES
COMPILE_FLAGS "${MPI_C_COMPILE_FLAGS}"
COMPILE_DEFINITIONS "BUILD_WITH_MPI"
LINK_FLAGS "${MPI_C_LINK_FLAGS}"
)
it fails to link against mpi (-lmpi is missing, for a start).
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2013-01-10 07:01 jgu New Issue
======================================================================
More information about the cmake-developers
mailing list