For minimal disruption to the release-2021 infrastructure,
let the `gmxapi` CMake target (libgmxapi) use
`${MPI_COMPILE_FLAGS}` and `${MPI_C_LIBRARIES}`
instead of the `MPI::MPI_*` target(s).
Note: This will conflict with the resolution to #3672.
Conflicts arising in a merge from `release-2021` to `master`
should defer to `master`.
Fixes #3896
#
# This file is part of the GROMACS molecular simulation package.
#
#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2018,2019,2020, by the GROMACS development team, led by
+# Copyright (c) 2018,2019,2020,2021, by the GROMACS development team, led by
# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
# and including many others, as listed in the AUTHORS file in the
# top-level source directory and at http://www.gromacs.org.
# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
# and including many others, as listed in the AUTHORS file in the
# top-level source directory and at http://www.gromacs.org.
if (GMX_LIB_MPI)
# GROMACS is built against an MPI library.
if (GMX_LIB_MPI)
# GROMACS is built against an MPI library.
- # Clarification should be possible with resolution of #3672.
set(_gmx_mpi_type "library")
set(_gmx_mpi_type "library")
- # Ref https://cmake.org/cmake/help/v3.13/module/FindMPI.html#variables-for-using-mpi
- find_package(MPI COMPONENTS C)
- if (MPI_C_FOUND)
- target_link_libraries(gmxapi PRIVATE MPI::MPI_C)
- else()
- message(FATAL_ERROR "Building gmxapi for MPI-enabled GROMACS, but no MPI toolchain found.")
- endif ()
+ # TODO: Normative solution with #3672.
+ # Do not target_link_options(gmxapi PRIVATE ${MPI_LINKER_FLAGS})
+ # because the root CMakeLists.txt sets CMAKE_SHARED_LINKER_FLAGS.
+ target_compile_options(gmxapi PUBLIC ${MPI_COMPILE_FLAGS})
+ target_link_libraries(gmxapi PUBLIC ${MPI_C_LIBRARIES})
elseif(GMX_THREAD_MPI)
# GROMACS is built with its internal thread-MPI implementation.
set(_gmx_mpi_type "tmpi")
elseif(GMX_THREAD_MPI)
# GROMACS is built with its internal thread-MPI implementation.
set(_gmx_mpi_type "tmpi")