From 32e970e529bbe5924d111ce23eb2f567b53d81d7 Mon Sep 17 00:00:00 2001 From: Chuck Atkins <chuck.atkins@kitware.com> Date: Fri, 8 Sep 2017 10:41:37 -0400 Subject: [PATCH] Fortran: disable auto-detection of fortran bindings Auto-detection of language available doesn't correctly work in CMake so just explicitly default to OFF here and error out if set to AUTO. --- CMakeLists.txt | 2 +- cmake/DetectOptions.cmake | 29 ++++++++++++++++++----------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bb5ca762c..c8f4f2f2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,7 +90,7 @@ adios_option(ZeroMQ "Enable support for ZeroMQ" AUTO) adios_option(HDF5 "Enable support for the HDF5 engine" AUTO) adios_option(ADIOS1 "Enable support for the ADIOS 1.x engine" AUTO) adios_option(Python "Enable support for Python bindings" AUTO) -adios_option(Fortran "Enable support for Fortran bindings" AUTO) +adios_option(Fortran "Enable support for Fortran bindings" OFF) adios_option(SysVShMem "Enable support for SysV Shared Memory IPC on *NIX" AUTO) include(${ADIOS2_SOURCE_DIR}/cmake/DetectOptions.cmake) diff --git a/cmake/DetectOptions.cmake b/cmake/DetectOptions.cmake index 750475410..2562e77a2 100644 --- a/cmake/DetectOptions.cmake +++ b/cmake/DetectOptions.cmake @@ -33,25 +33,32 @@ if(ZFP_FOUND) set(ADIOS2_HAVE_ZFP TRUE) endif() +set(mpi_find_components C) + +# Fortran +if(ADIOS2_USE_Fortran STREQUAL AUTO) + # Currently auto-detection for language support does not work in CMake. See + # documentation for the "enable_language" command + message(WARN "Auto-detection of Fortran is not currently supported; Disabling") + #enable_language(Fortran OPTIONAL) +elseif(ADIOS2_USE_Fortran) + enable_language(Fortran) +endif() +if(CMAKE_Fortran_COMPILER_LOADED) + set(ADIOS2_HAVE_Fortran TRUE) + list(APPEND mpi_find_components Fortran) +endif() + # MPI if(ADIOS2_USE_MPI STREQUAL AUTO) - find_package(MPI) + find_package(MPI COMPONENTS ${mpi_find_components}) elseif(ADIOS2_USE_MPI) - find_package(MPI REQUIRED) + find_package(MPI COMPONENTS ${mpi_find_components} REQUIRED) endif() if(MPI_FOUND) set(ADIOS2_HAVE_MPI TRUE) endif() -# Fortran -if(ADIOS2_USE_Fortran) - set(ADIOS2_HAVE_Fortran TRUE) - enable_language(Fortran) - if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS Fortran REQUIRED) - endif() -endif() - # DataMan if(SHARED_LIBS_SUPPORTED AND NOT MSVC) set(ADIOS2_HAVE_DataMan TRUE) -- GitLab