From b35cd06e6f4f554115343d41f5e431c7ed792823 Mon Sep 17 00:00:00 2001 From: Stephan Schulz <stephan.schulz-x2q@rub.de> Date: Wed, 27 Jan 2021 15:15:42 +0100 Subject: [PATCH] fix OpenMPI detection in CMake --- CMakeLists.txt | 4 ++-- tests/feature/CMakeLists.txt | 26 +++++++++++++++++--------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b100eef..7e9122c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,9 +57,9 @@ project(ALL set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) if (CM_ALL_FORTRAN) - find_package(MPI REQUIRED COMPONENTS CXX Fortran) + find_package(MPI REQUIRED COMPONENTS C CXX Fortran) else() - find_package(MPI REQUIRED COMPONENTS CXX) + find_package(MPI REQUIRED COMPONENTS C CXX) endif (CM_ALL_FORTRAN) # Prepare the Config.cmake.in diff --git a/tests/feature/CMakeLists.txt b/tests/feature/CMakeLists.txt index acffb26..83c75d1 100644 --- a/tests/feature/CMakeLists.txt +++ b/tests/feature/CMakeLists.txt @@ -11,15 +11,23 @@ set(OUTPUTDIR .) set(KNOWNGOOD ${CMAKE_CURRENT_SOURCE_DIR}/knowngood) # check if openmpi variable in mpi.h is set to find out, if # MPI version is openmpi based -include(CheckCSourceCompiles) - check_c_source_compiles( - "include <mpi.h> - int main(void) { - #ifndef _OPENMPI - #error - #endif - return 0; - }" HAVE_OPENMPI) +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/have_openmpi.c +"#include <mpi.h> +int main(void) { +#ifndef OPEN_MPI +#error +#endif + return 0; +} +") +try_compile(HAVE_OPENMPI + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR}/have_openmpi.c + LINK_LIBRARIES MPI::MPI_C + OUTPUT_VARIABLE _try_out) +if(NOT HAVE_OPENMPI) + message(FATAL_ERROR "DID NOT FIND OPENMPI\n\n${_try_out}") +endif() include(FindUnixCommands) foreach( FEATURE ALL_Staggered -- GitLab