Skip to content
Snippets Groups Projects
Commit 9d1dea9d authored by Atkins, Charles Vernon's avatar Atkins, Charles Vernon
Browse files

CMake: Consolidate dependency search into one place

parent 12bd977f
No related branches found
No related tags found
1 merge request!237Consolidate cmake deps
...@@ -16,30 +16,30 @@ set(adios2_find_modules) ...@@ -16,30 +16,30 @@ set(adios2_find_modules)
# BZip2 # BZip2
if(ADIOS2_USE_BZip2 STREQUAL AUTO) if(ADIOS2_USE_BZip2 STREQUAL AUTO)
find_package(BZip2) find_package(BZip2)
if(BZIP2_FOUND)
set(ADIOS2_HAVE_BZip2 TRUE)
endif()
elseif(ADIOS2_USE_BZip2) elseif(ADIOS2_USE_BZip2)
find_package(BZip2 REQUIRED)
endif()
if(BZIP2_FOUND)
set(ADIOS2_HAVE_BZip2 TRUE) set(ADIOS2_HAVE_BZip2 TRUE)
endif() endif()
# ZFP # ZFP
if(ADIOS2_USE_ZFP STREQUAL AUTO) if(ADIOS2_USE_ZFP STREQUAL AUTO)
find_package(ZFP) find_package(ZFP)
if(ZFP_FOUND)
set(ADIOS2_HAVE_ZFP TRUE)
endif()
elseif(ADIOS2_USE_ZFP) elseif(ADIOS2_USE_ZFP)
find_package(ZFP REQUIRED)
endif()
if(ZFP_FOUND)
set(ADIOS2_HAVE_ZFP TRUE) set(ADIOS2_HAVE_ZFP TRUE)
endif() endif()
# MPI # MPI
if(ADIOS2_USE_MPI STREQUAL AUTO) if(ADIOS2_USE_MPI STREQUAL AUTO)
find_package(MPI COMPONENTS C) find_package(MPI)
if(MPI_FOUND)
set(ADIOS2_HAVE_MPI TRUE)
endif()
elseif(ADIOS2_USE_MPI) elseif(ADIOS2_USE_MPI)
find_package(MPI REQUIRED)
endif()
if(MPI_FOUND)
set(ADIOS2_HAVE_MPI TRUE) set(ADIOS2_HAVE_MPI TRUE)
endif() endif()
...@@ -49,47 +49,42 @@ if(ADIOS2_USE_C) ...@@ -49,47 +49,42 @@ if(ADIOS2_USE_C)
endif() endif()
# DataMan # DataMan
if(ADIOS2_USE_DataMan STREQUAL AUTO) if(SHARED_LIBS_SUPPORTED AND NOT MSVC)
if(SHARED_LIBS_SUPPORTED AND NOT MSVC)
set(ADIOS2_HAVE_DataMan TRUE)
endif()
elseif(ADIOS2_USE_DataMan)
set(ADIOS2_HAVE_DataMan TRUE) set(ADIOS2_HAVE_DataMan TRUE)
endif() endif()
# ZeroMQ # ZeroMQ
if(ADIOS2_USE_ZeroMQ STREQUAL AUTO) if(ADIOS2_USE_ZeroMQ STREQUAL AUTO)
find_package(ZeroMQ) find_package(ZeroMQ)
if(ZeroMQ_FOUND)
set(ADIOS2_HAVE_ZeroMQ TRUE)
endif()
elseif(ADIOS2_USE_ZeroMQ) elseif(ADIOS2_USE_ZeroMQ)
find_package(ZeroMQ REQUIRED)
endif()
if(ZeroMQ_FOUND)
set(ADIOS2_HAVE_ZeroMQ TRUE) set(ADIOS2_HAVE_ZeroMQ TRUE)
endif() endif()
# HDF5 # HDF5
if(ADIOS2_USE_HDF5 STREQUAL AUTO) if(ADIOS2_USE_HDF5 STREQUAL AUTO)
find_package(HDF5 COMPONENTS C) 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)
endif()
elseif(ADIOS2_USE_HDF5) elseif(ADIOS2_USE_HDF5)
find_package(HDF5 REQUIRED COMPONENTS C)
endif()
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) set(ADIOS2_HAVE_HDF5 TRUE)
endif() endif()
# ADIOS1 # ADIOS1
if(NOT ADIOS2_HAVE_MPI)
set(adios1_find_args COMPONENTS sequential)
endif()
if(ADIOS2_USE_ADIOS1 STREQUAL AUTO) 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}) find_package(ADIOS1 1.12.0 ${adios1_args})
unset(adios1_args)
if(ADIOS1_FOUND)
set(ADIOS2_HAVE_ADIOS1 TRUE)
endif()
elseif(ADIOS2_USE_ADIOS1) elseif(ADIOS2_USE_ADIOS1)
find_package(ADIOS1 1.12.0 REQUIRED ${adios1_args})
endif()
if(ADIOS1_FOUND)
set(ADIOS2_HAVE_ADIOS1 TRUE) set(ADIOS2_HAVE_ADIOS1 TRUE)
endif() endif()
...@@ -98,39 +93,35 @@ endif() ...@@ -98,39 +93,35 @@ endif()
list(INSERT CMAKE_MODULE_PATH 0 list(INSERT CMAKE_MODULE_PATH 0
"${ADIOS2_SOURCE_DIR}/thirdparty/pybind11/pybind11/tools" "${ADIOS2_SOURCE_DIR}/thirdparty/pybind11/pybind11/tools"
) )
if(ADIOS2_USE_Python STREQUAL AUTO) if(ADIOS2_USE_Python)
if(NOT (ADIOS2_USE_Python STREQUAL AUTO))
set(python_find_args REQUIRED)
endif()
if(SHARED_LIBS_SUPPORTED AND ADIOS2_ENABLE_PIC) if(SHARED_LIBS_SUPPORTED AND ADIOS2_ENABLE_PIC)
set(Python_ADDITIONAL_VERSIONS 3 2.7) set(Python_ADDITIONAL_VERSIONS 3 2.7)
find_package(PythonInterp) list(APPEND python_find_args COMPONENTS Interp Libs numpy)
find_package(PythonLibsNew) if(ADIOS2_HAVE_MPI)
if(PYTHONLIBS_FOUND) list(APPEND python_find_args "mpi4py\\\;mpi4py/mpi4py.h")
if(ADIOS2_HAVE_MPI)
find_package(PythonModule COMPONENTS mpi4py mpi4py/mpi4py.h)
if(PythonModule_mpi4py_FOUND)
set(ADIOS2_HAVE_Python TRUE)
endif()
else()
set(ADIOS2_HAVE_Python TRUE)
endif()
endif() endif()
find_package(PythonFull ${python_find_args})
endif() endif()
elseif(ADIOS2_USE_Python) endif()
set(ADIOS2_HAVE_Python TRUE) if(PythonFull_FOUND)
set(ADIOS2_HAVE_Python ON)
endif() endif()
#SysV IPC #SysV IPC
if(ADIOS2_USE_SysVShMem STREQUAL AUTO) if(UNIX)
if(UNIX) include(CheckSymbolExists)
include(CheckSymbolExists) CHECK_SYMBOL_EXISTS(shmget "sys/ipc.h;sys/shm.h" HAVE_shmget)
CHECK_SYMBOL_EXISTS(shmget "sys/ipc.h;sys/shm.h" HAVE_shmget) if(HAVE_shmget)
if(HAVE_shmget) set(ADIOS2_HAVE_SysVShMem ON)
set(ADIOS2_HAVE_SysVShMem ON)
else()
set(ADIOS2_HAVE_SysVShMem OFF)
endif()
else() else()
set(ADIOS2_HAVE_SysVShMem OFF) set(ADIOS2_HAVE_SysVShMem OFF)
endif() endif()
elseif(ADIOS2_USE_SysVShMem) else()
set(ADIOS2_HAVE_SysVShMem TRUE) set(ADIOS2_HAVE_SysVShMem OFF)
endif() endif()
# Multithreading
find_package(Threads REQUIRED)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment