diff --git a/CMakeLists.txt b/CMakeLists.txt index bb5ca762c980145be0b3315764ebd8623a637170..c8f4f2f2f68c0e3e92e2b9b218d616dec97d5e5f 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 75047541003b27673f3d6118776f5f3c32332445..2562e77a2b94180e0d3e5d2b397bdb3c326050c0 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)