Skip to content
Snippets Groups Projects
DetectOptions.cmake 2.71 KiB
Newer Older
#------------------------------------------------------------------------------#
# Distributed under the OSI-approved Apache License, Version 2.0.  See
# accompanying file Copyright.txt for details.
#------------------------------------------------------------------------------#

# This file contains the option and dependency logic.  The configuration
# options are designed to be tertiary: ON, OFF, or AUTO.  If AUTO, we try to
# determine if dependencies are available and enable the option if we find
# them, otherwise we disable it.  If explicitly ON then a failure to find
# dependencies is an error,

# BZip2
if(ADIOS2_USE_BZip2 STREQUAL AUTO)
  find_package(BZip2)
  if(BZIP2_FOUND)
elseif(ADIOS2_USE_BZip2)
  set(ADIOS2_HAVE_BZip2 TRUE)
if(ADIOS2_USE_ZFP STREQUAL AUTO)
  find_package(ZFP)
  if(ZFP_FOUND)
elseif(ADIOS2_USE_ZFP)
  set(ADIOS2_HAVE_ZFP TRUE)
if(ADIOS2_USE_MPI STREQUAL AUTO)
  find_package(MPI COMPONENTS C)
  if(MPI_FOUND)
elseif(ADIOS2_USE_MPI)
  set(ADIOS2_HAVE_MPI TRUE)
if(ADIOS2_USE_DataMan STREQUAL AUTO)
  if(SHARED_LIBS_SUPPORTED AND NOT MSVC)
elseif(ADIOS2_USE_DataMan)
  set(ADIOS2_HAVE_DataMan TRUE)
if(ADIOS2_USE_ZeroMQ STREQUAL AUTO)
  find_package(ZeroMQ)
  if(ZeroMQ_FOUND)
elseif(ADIOS2_USE_ZeroMQ)
  set(ADIOS2_HAVE_ZeroMQ TRUE)
if(ADIOS2_USE_HDF5 STREQUAL AUTO)
  find_package(HDF5 COMPONENTS C)
  if(HDF5_FOUND AND
     ((ADIOS2_HAVE_MPI AND HDF5_IS_PARALLEL) OR
      NOT (ADIOS2_HAVE_MPI OR HDF5_IS_PARALLEL)))
    set(ADIOS2_HAVE_HDF5 TRUE)
elseif(ADIOS2_USE_HDF5)
  set(ADIOS2_HAVE_HDF5 TRUE)
if(ADIOS2_USE_ADIOS1 STREQUAL AUTO)
  if(NOT ADIOS2_HAVE_MPI)
    set(adios1_args COMPONENTS sequential)
  endif()
  find_package(ADIOS1 1.12.0 ${adios1_args})
  unset(adios1_args)
  if(ADIOS1_FOUND)
elseif(ADIOS2_USE_ADIOS1)
  set(ADIOS2_HAVE_ADIOS1 TRUE)
# Use the FindPythonLibsNew from pybind11
list(INSERT CMAKE_MODULE_PATH 0
  "${ADIOS2_SOURCE_DIR}/thirdparty/pybind11/pybind11/tools"
)
if(ADIOS2_USE_Python STREQUAL AUTO)
    find_package(PythonLibsNew)
        find_package(PythonModule COMPONENTS mpi4py mpi4py/mpi4py.h)
        if(PythonModule_mpi4py_FOUND)
elseif(ADIOS2_USE_Python)
  set(ADIOS2_HAVE_Python TRUE)