diff --git a/bindings/CMakeLists.txt b/bindings/CMakeLists.txt index b169d708860f8c20698b3980e9160624bb40f286..a45f72c708045ba40692655ab6c18b3320216cc9 100644 --- a/bindings/CMakeLists.txt +++ b/bindings/CMakeLists.txt @@ -1,5 +1,3 @@ - - if(ADIOS2_HAVE_Python) add_subdirectory(python) endif() diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt index 515c0b74cd7461da3f33257e72d7d74ad69c2752..2384e16b795bfb838a6e7a016ff12fd1c620505f 100644 --- a/bindings/c/CMakeLists.txt +++ b/bindings/c/CMakeLists.txt @@ -9,7 +9,6 @@ add_library(adios2_c adios2_c.cpp) target_link_libraries(adios2_c PRIVATE adios2) if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) target_compile_definitions(adios2_c PUBLIC ADIOS2_HAVE_MPI_C) target_include_directories(adios2_c PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${MPI_C_INCLUDE_PATH}) target_link_libraries(adios2_c PRIVATE ${MPI_C_LIBRARIES}) @@ -34,4 +33,4 @@ install( install( FILES adios2/adios2_c_enums.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2 -) \ No newline at end of file +) diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt index 90d030a55245ad5ee4e0d691a093d6e160567fa7..a6ced9fc20570ec0b41b0343ea705906cf1b284a 100644 --- a/bindings/python/CMakeLists.txt +++ b/bindings/python/CMakeLists.txt @@ -1,7 +1,3 @@ -set(Python_ADDITIONAL_VERSIONS 3 2.7) -find_package(PythonInterp REQUIRED) -find_package(PythonLibsNew REQUIRED) - pybind11_add_module(adios2py MODULE ADIOSPy.h ADIOSPy.cpp @@ -19,7 +15,6 @@ pybind11_add_module(adios2py MODULE ) target_link_libraries(adios2py PRIVATE adios2) if(ADIOS2_HAVE_MPI) - find_package(PythonModule REQUIRED COMPONENTS mpi4py mpi4py/mpi4py.h) target_link_libraries(adios2py PRIVATE PythonModule::mpi4py) endif() diff --git a/cmake/DetectOptions.cmake b/cmake/DetectOptions.cmake index bc9d2aba3d626565c2858d842089010d96376dfb..990fc3f3cec5a8d171e701737eebf2eaa511e324 100644 --- a/cmake/DetectOptions.cmake +++ b/cmake/DetectOptions.cmake @@ -16,30 +16,30 @@ set(adios2_find_modules) # BZip2 if(ADIOS2_USE_BZip2 STREQUAL AUTO) find_package(BZip2) - if(BZIP2_FOUND) - set(ADIOS2_HAVE_BZip2 TRUE) - endif() elseif(ADIOS2_USE_BZip2) + find_package(BZip2 REQUIRED) +endif() +if(BZIP2_FOUND) set(ADIOS2_HAVE_BZip2 TRUE) endif() # ZFP if(ADIOS2_USE_ZFP STREQUAL AUTO) find_package(ZFP) - if(ZFP_FOUND) - set(ADIOS2_HAVE_ZFP TRUE) - endif() elseif(ADIOS2_USE_ZFP) + find_package(ZFP REQUIRED) +endif() +if(ZFP_FOUND) set(ADIOS2_HAVE_ZFP TRUE) endif() # MPI if(ADIOS2_USE_MPI STREQUAL AUTO) - find_package(MPI COMPONENTS C) - if(MPI_FOUND) - set(ADIOS2_HAVE_MPI TRUE) - endif() + find_package(MPI) elseif(ADIOS2_USE_MPI) + find_package(MPI REQUIRED) +endif() +if(MPI_FOUND) set(ADIOS2_HAVE_MPI TRUE) endif() @@ -49,47 +49,42 @@ if(ADIOS2_USE_C) endif() # DataMan -if(ADIOS2_USE_DataMan STREQUAL AUTO) - if(SHARED_LIBS_SUPPORTED AND NOT MSVC) - set(ADIOS2_HAVE_DataMan TRUE) - endif() -elseif(ADIOS2_USE_DataMan) +if(SHARED_LIBS_SUPPORTED AND NOT MSVC) set(ADIOS2_HAVE_DataMan TRUE) endif() # ZeroMQ if(ADIOS2_USE_ZeroMQ STREQUAL AUTO) find_package(ZeroMQ) - if(ZeroMQ_FOUND) - set(ADIOS2_HAVE_ZeroMQ TRUE) - endif() elseif(ADIOS2_USE_ZeroMQ) + find_package(ZeroMQ REQUIRED) +endif() +if(ZeroMQ_FOUND) set(ADIOS2_HAVE_ZeroMQ TRUE) endif() # HDF5 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) - endif() 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) endif() # ADIOS1 +if(NOT ADIOS2_HAVE_MPI) + set(adios1_find_args COMPONENTS sequential) +endif() 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) - set(ADIOS2_HAVE_ADIOS1 TRUE) - endif() elseif(ADIOS2_USE_ADIOS1) + find_package(ADIOS1 1.12.0 REQUIRED ${adios1_args}) +endif() +if(ADIOS1_FOUND) set(ADIOS2_HAVE_ADIOS1 TRUE) endif() @@ -98,39 +93,35 @@ endif() list(INSERT CMAKE_MODULE_PATH 0 "${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) set(Python_ADDITIONAL_VERSIONS 3 2.7) - find_package(PythonInterp) - find_package(PythonLibsNew) - if(PYTHONLIBS_FOUND) - 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() + list(APPEND python_find_args COMPONENTS Interp Libs numpy) + if(ADIOS2_HAVE_MPI) + list(APPEND python_find_args "mpi4py\\\;mpi4py/mpi4py.h") endif() + find_package(PythonFull ${python_find_args}) endif() -elseif(ADIOS2_USE_Python) - set(ADIOS2_HAVE_Python TRUE) +endif() +if(PythonFull_FOUND) + set(ADIOS2_HAVE_Python ON) endif() #SysV IPC -if(ADIOS2_USE_SysVShMem STREQUAL AUTO) - if(UNIX) - include(CheckSymbolExists) - CHECK_SYMBOL_EXISTS(shmget "sys/ipc.h;sys/shm.h" HAVE_shmget) - if(HAVE_shmget) - set(ADIOS2_HAVE_SysVShMem ON) - else() - set(ADIOS2_HAVE_SysVShMem OFF) - endif() +if(UNIX) + include(CheckSymbolExists) + CHECK_SYMBOL_EXISTS(shmget "sys/ipc.h;sys/shm.h" HAVE_shmget) + if(HAVE_shmget) + set(ADIOS2_HAVE_SysVShMem ON) else() set(ADIOS2_HAVE_SysVShMem OFF) endif() -elseif(ADIOS2_USE_SysVShMem) - set(ADIOS2_HAVE_SysVShMem TRUE) +else() + set(ADIOS2_HAVE_SysVShMem OFF) endif() + +# Multithreading +find_package(Threads REQUIRED) diff --git a/cmake/FindPythonFull.cmake b/cmake/FindPythonFull.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6b70423eaaf0fef9254c22c1a772569267eeef0a --- /dev/null +++ b/cmake/FindPythonFull.cmake @@ -0,0 +1,56 @@ +#------------------------------------------------------------------------------# +# Distributed under the OSI-approved Apache License, Version 2.0. See +# accompanying file Copyright.txt for details. +#------------------------------------------------------------------------------# +# +# PythonFull +# ----------- +# +# Try to find various pieces needed for a full python environment including +# python libs, interpreter, and modules +# +# This module defines the following variables: +# +# PythonFull_FOUND +# PYTHONINTERP_FOUND +# PYTHON_EXECUTABLE +# PYTHONLIBS_FOUND +# PYTHON_LIBRARIES +# PythonModule_${module_NAME}_FOUND +# +# This is intented to be called by specifying components for libraries, +# interpreter, and modules. So, for example, if you needed libraries, the +# interpreter, mpi4py, and numpy then you would call: +# +# find_package(PythonFull COMPONENTS Interp Libs mpi4py numpy) +# + +include(CMakeFindDependencyMacro) +set(_req_vars) +foreach(comp IN LISTS PythonFull_FIND_COMPONENTS) + if(comp STREQUAL Interp) + find_package(PythonInterp) + set(PythonFull_${comp}_FOUND ${PYTHONINTERP_FOUND}) + list(APPEND _req_vars PYTHON_EXECUTABLE) + elseif(comp STREQUAL Libs) + find_package(PythonLibsNew) + set(PythonFull_${comp}_FOUND ${PYTHONLIBS_FOUND}) + list(APPEND _req_vars PYTHON_LIBRARIES) + else() + # Parse off any specified headers and libs for a given module + set(_comp ${comp}) + list(GET _comp 0 _mod) + string(REGEX REPLACE "${_mod}\\\;[^;]*" "${_mod}" + PythonFull_FIND_COMPONENTS "${PythonFull_FIND_COMPONENTS}" + ) + set(PythonFull_FIND_REQUIRED_${_mod} TRUE) + find_package(PythonModule COMPONENTS ${_comp}) + set(PythonFull_${_mod}_FOUND ${PythonModule_${_mod}_FOUND}) + endif() +endforeach() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(PythonFull + REQUIRED_VARS ${_req_vars} + HANDLE_COMPONENTS +) diff --git a/cmake/FindPythonModule.cmake b/cmake/FindPythonModule.cmake index 492d1d28f4205b856903fae195fa9d9a208f042d..c47f71dbc19c6ae8ddcb3ee8618c69b79487802f 100644 --- a/cmake/FindPythonModule.cmake +++ b/cmake/FindPythonModule.cmake @@ -119,8 +119,9 @@ set( PythonModule_${module_NAME}_PATH endif() include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(PythonModule_${module_NAME} DEFAULT_MSG - ${required_vars} + find_package_handle_standard_args(PythonModule_${module_NAME} + FOUND_VAR PythonModule_${module_NAME}_FOUND + REQUIRED_VARS ${required_vars} ) endif() diff --git a/examples/basics/globalArray/CMakeLists.txt b/examples/basics/globalArray/CMakeLists.txt index f9a9b07dd5bbc1c0361f0fe4930f2b0efcf76280..62192593245e554fb315dc3d56c18994d4661905 100644 --- a/examples/basics/globalArray/CMakeLists.txt +++ b/examples/basics/globalArray/CMakeLists.txt @@ -7,7 +7,6 @@ add_executable(globalArray_write globalArray_write.cpp) target_link_libraries(globalArray_write adios2) if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) target_include_directories(globalArray_write PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(globalArray_write ${MPI_C_LIBRARIES}) endif() diff --git a/examples/basics/joinedArray/CMakeLists.txt b/examples/basics/joinedArray/CMakeLists.txt index f8d775e84b3e6d09f3fb8aa2a8f8d67fc82e5c94..a0a7b06413911738666e6b968653cdb831ff9e26 100644 --- a/examples/basics/joinedArray/CMakeLists.txt +++ b/examples/basics/joinedArray/CMakeLists.txt @@ -7,7 +7,6 @@ add_executable(joinedArray_write joinedArray_write.cpp) target_link_libraries(joinedArray_write adios2) if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) target_include_directories(joinedArray_write PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(joinedArray_write ${MPI_C_LIBRARIES}) endif() diff --git a/examples/basics/localArray/CMakeLists.txt b/examples/basics/localArray/CMakeLists.txt index 3f46669a629802cc351bded5f4b4deb5df5d2bed..a42506de02aa74c4f4fef3c99c5c1e50e49ad19a 100644 --- a/examples/basics/localArray/CMakeLists.txt +++ b/examples/basics/localArray/CMakeLists.txt @@ -7,7 +7,6 @@ add_executable(localArray_write localArray_write.cpp) target_link_libraries(localArray_write adios2) if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) target_include_directories(localArray_write PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(localArray_write ${MPI_C_LIBRARIES}) endif() diff --git a/examples/basics/values/CMakeLists.txt b/examples/basics/values/CMakeLists.txt index 619fdc326200801d35c065ab42966996308600d3..79e27ea6077d0e3e04400245a5e3e13409ddb09b 100644 --- a/examples/basics/values/CMakeLists.txt +++ b/examples/basics/values/CMakeLists.txt @@ -7,7 +7,6 @@ add_executable(values_write values_write.cpp) target_link_libraries(values_write adios2) if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) target_include_directories(values_write PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(values_write ${MPI_C_LIBRARIES}) endif() diff --git a/examples/experimental/multistep/CMakeLists.txt b/examples/experimental/multistep/CMakeLists.txt index b5f75bb22f3288c69952fbe19fdb49be2f1ef53e..546074f51d6dc87c55e5ba822778e792953ae093 100644 --- a/examples/experimental/multistep/CMakeLists.txt +++ b/examples/experimental/multistep/CMakeLists.txt @@ -6,19 +6,12 @@ add_executable(writer_multistep writer_multistep.cpp) add_executable(reader_stepping reader_stepping.cpp) add_executable(reader_allsteps reader_allsteps.cpp) -target_link_libraries(writer_multistep adios2) -target_link_libraries(reader_stepping adios2) -target_link_libraries(reader_allsteps adios2) -if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) +foreach(tgt IN ITEMS writer_multistep reader_stepping reader_allsteps) + target_link_libraries(${tgt} adios2) - target_include_directories(writer_multistep PRIVATE ${MPI_C_INCLUDE_PATH}) - target_link_libraries(writer_multistep ${MPI_C_LIBRARIES}) - - target_include_directories(reader_stepping PRIVATE ${MPI_C_INCLUDE_PATH}) - target_link_libraries(reader_stepping ${MPI_C_LIBRARIES}) - - target_include_directories(reader_allsteps PRIVATE ${MPI_C_INCLUDE_PATH}) - target_link_libraries(reader_allsteps ${MPI_C_LIBRARIES}) -endif() + if(ADIOS2_HAVE_MPI) + target_include_directories(${tgt} PRIVATE ${MPI_C_INCLUDE_PATH}) + target_link_libraries(${tgt} ${MPI_C_LIBRARIES}) + endif() +endforeach() diff --git a/examples/experimental/runtimeconfig/hello/CMakeLists.txt b/examples/experimental/runtimeconfig/hello/CMakeLists.txt index 28adedce753ea338bbb3d6bea81987ab84f2de09..9770b299c4d377fdf6f0e8177c776db8dee817c5 100644 --- a/examples/experimental/runtimeconfig/hello/CMakeLists.txt +++ b/examples/experimental/runtimeconfig/hello/CMakeLists.txt @@ -1,6 +1,4 @@ if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(helloBPWriterXML helloBPWriterXML.cpp) target_include_directories(helloBPWriterXML PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(helloBPWriterXML ${MPI_C_LIBRARIES}) diff --git a/examples/heatTransfer/read/CMakeLists.txt b/examples/heatTransfer/read/CMakeLists.txt index d1b7e2853fe0dee152b0773f4ede495d359538e4..30797b43a01f63f8af4808f25d97ab50cfbeb772 100644 --- a/examples/heatTransfer/read/CMakeLists.txt +++ b/examples/heatTransfer/read/CMakeLists.txt @@ -4,20 +4,13 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_MPI) + add_executable(heatTransfer_read_adios2 heatRead_adios2.cpp PrintData.h) + target_include_directories(heatTransfer_read_adios2 + PRIVATE ${MPI_C_INCLUDE_PATH} + ) + target_link_libraries(heatTransfer_read_adios2 adios2 ${MPI_C_LIBRARIES}) if(ADIOS2_HAVE_ADIOS1) - - find_package(MPI COMPONENTS C REQUIRED) - find_package(ADIOS1 REQUIRED) - - add_executable(heatTransfer_read_adios2 heatRead_adios2.cpp PrintData.h) - target_include_directories(heatTransfer_read_adios2 - PRIVATE ${MPI_C_INCLUDE_PATH} - ) - target_link_libraries(heatTransfer_read_adios2 - adios2 ${MPI_C_LIBRARIES} - ) - add_executable(heatTransfer_read_adios1 heatRead_adios1.cpp PrintData.h) target_include_directories(heatTransfer_read_adios1 PRIVATE ${MPI_C_INCLUDE_PATH} @@ -26,5 +19,4 @@ if(ADIOS2_HAVE_MPI) adios1::adios ${MPI_C_LIBRARIES} ) endif() - -endif() \ No newline at end of file +endif() diff --git a/examples/heatTransfer/write/CMakeLists.txt b/examples/heatTransfer/write/CMakeLists.txt index a40186bb05e6d8225d73d5d58fea4fc380de47b6..a6c459bca092e6f0c706f982e7b17a36f04caeab 100644 --- a/examples/heatTransfer/write/CMakeLists.txt +++ b/examples/heatTransfer/write/CMakeLists.txt @@ -4,9 +4,6 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - find_package(Threads REQUIRED) - add_executable(heatTransfer_write_adios2 main.cpp HeatTransfer.cpp @@ -16,15 +13,14 @@ if(ADIOS2_HAVE_MPI) target_include_directories(heatTransfer_write_adios2 PRIVATE ${MPI_C_INCLUDE_PATH} ) - target_link_libraries(heatTransfer_write_adios2 adios2 ${MPI_C_LIBRARIES} - ${CMAKE_THREAD_LIBS_INIT}) + target_link_libraries(heatTransfer_write_adios2 + adios2 ${MPI_C_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} + ) target_compile_definitions(heatTransfer_write_adios2 PRIVATE - -DDEFAULT_CONFIG=${CMAKE_CURRENT_SOURCE_DIR}/config.xml) + -DDEFAULT_CONFIG=${CMAKE_CURRENT_SOURCE_DIR}/config.xml + ) if(ADIOS2_HAVE_ADIOS1) - find_package(ADIOS1 REQUIRED) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(heatTransfer_write_adios1 main.cpp HeatTransfer.cpp @@ -40,9 +36,6 @@ if(ADIOS2_HAVE_MPI) endif() if(ADIOS2_HAVE_HDF5) - find_package(HDF5 REQUIRED) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(heatTransfer_write_hdf5 main.cpp HeatTransfer.cpp @@ -53,14 +46,8 @@ if(ADIOS2_HAVE_MPI) PRIVATE ${MPI_C_INCLUDE_PATH} ${HDF5_C_INCLUDE_DIRS} ) target_link_libraries(heatTransfer_write_hdf5 - ${MPI_C_LIBRARIES} ${HDF5_C_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} + ${HDF5_C_LIBRARIES} ${MPI_C_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) - endif() - - - if(ADIOS2_HAVE_HDF5) - find_package(HDF5 REQUIRED) - find_package(MPI COMPONENTS C REQUIRED) add_executable(heatTransfer_write_ph5 main.cpp @@ -72,15 +59,10 @@ if(ADIOS2_HAVE_MPI) PRIVATE ${MPI_C_INCLUDE_PATH} ${HDF5_C_INCLUDE_DIRS} ) target_link_libraries(heatTransfer_write_ph5 - ${MPI_C_LIBRARIES} ${HDF5_C_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} + ${HDF5_C_LIBRARIES} ${MPI_C_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) - endif() - - - if(ADIOS2_HAVE_HDF5) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(heatTransfer_write_a2h5 + add_executable(heatTransfer_write_a2h5 main.cpp HeatTransfer.cpp Settings.cpp @@ -90,12 +72,8 @@ if(ADIOS2_HAVE_MPI) target_include_directories(heatTransfer_write_a2h5 PRIVATE ${MPI_C_INCLUDE_PATH} ) - #target_link_libraries(heatTransfer_write_a2h5 - # ${MPI_C_LIBRARIES} - #) - target_link_libraries(heatTransfer_write_a2h5 PUBLIC adios2 - ${CMAKE_THREAD_LIBS_INIT}) - + target_link_libraries(heatTransfer_write_a2h5 + adios2 ${MPI_C_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} + ) endif() - endif() diff --git a/examples/hello/adios1Writer/CMakeLists.txt b/examples/hello/adios1Writer/CMakeLists.txt index f8e52ae9d22e385cf061ed92d8352f301e1815e0..3b5c016b66047fb21944652f17969120c67420c4 100644 --- a/examples/hello/adios1Writer/CMakeLists.txt +++ b/examples/hello/adios1Writer/CMakeLists.txt @@ -4,8 +4,6 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(hello_adios1Writer helloADIOS1Writer.cpp) target_include_directories(hello_adios1Writer PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(hello_adios1Writer ${MPI_C_LIBRARIES}) diff --git a/examples/hello/bpBZip2Wrapper/CMakeLists.txt b/examples/hello/bpBZip2Wrapper/CMakeLists.txt index 3803a998a7103673cdee602633c71a03a049da24..702d5aaeb3383508227210f076aec4f43b7b117b 100644 --- a/examples/hello/bpBZip2Wrapper/CMakeLists.txt +++ b/examples/hello/bpBZip2Wrapper/CMakeLists.txt @@ -4,15 +4,11 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(hello_bpBZip2Wrapper helloBPBZip2Wrapper.cpp) target_include_directories(hello_bpBZip2Wrapper PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(hello_bpBZip2Wrapper ${MPI_C_LIBRARIES}) - else() add_executable(hello_bpBZip2Wrapper helloBPBZip2Wrapper_nompi.cpp) - endif() target_link_libraries(hello_bpBZip2Wrapper adios2) diff --git a/examples/hello/bpFlushWriter/CMakeLists.txt b/examples/hello/bpFlushWriter/CMakeLists.txt index ed554a4b4b9abfe17688da507e286371b10535b0..777704ef21ea820ac6d928dedb869fd323ea495c 100644 --- a/examples/hello/bpFlushWriter/CMakeLists.txt +++ b/examples/hello/bpFlushWriter/CMakeLists.txt @@ -4,8 +4,6 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(hello_bpFlushWriter helloBPFlushWriter.cpp) target_include_directories(hello_bpFlushWriter PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(hello_bpFlushWriter ${MPI_C_LIBRARIES}) diff --git a/examples/hello/bpTimeWriter/CMakeLists.txt b/examples/hello/bpTimeWriter/CMakeLists.txt index 30551c498bc783e88054ed85c1e90ef5acd51e19..68834e2887d52954186e6f5e6b9d20b70ed38ec9 100644 --- a/examples/hello/bpTimeWriter/CMakeLists.txt +++ b/examples/hello/bpTimeWriter/CMakeLists.txt @@ -4,8 +4,6 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(hello_bpTimeWriter helloBPTimeWriter.cpp) target_include_directories(hello_bpTimeWriter PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(hello_bpTimeWriter ${MPI_C_LIBRARIES}) diff --git a/examples/hello/bpWriter/CMakeLists.txt b/examples/hello/bpWriter/CMakeLists.txt index ba4172948b1a8ebf3ba28c831d1fe0fecc0ae275..2bd5b288146e09aec540ff4ada3dbad874d22783 100644 --- a/examples/hello/bpWriter/CMakeLists.txt +++ b/examples/hello/bpWriter/CMakeLists.txt @@ -4,8 +4,6 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(hello_bpWriter helloBPWriter.cpp) target_include_directories(hello_bpWriter PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(hello_bpWriter ${MPI_C_LIBRARIES}) @@ -18,15 +16,14 @@ if(ADIOS2_HAVE_MPI) else() add_executable(hello_bpWriter helloBPWriter_nompi.cpp) - + if(ADIOS2_HAVE_C) add_executable(hello_bpWriter_c helloBPWriter_nompi.c) endif() - endif() target_link_libraries(hello_bpWriter adios2) if(ADIOS2_HAVE_C) target_link_libraries(hello_bpWriter_c adios2_c adios2) -endif() \ No newline at end of file +endif() diff --git a/examples/hello/bpZfpWrapper/CMakeLists.txt b/examples/hello/bpZfpWrapper/CMakeLists.txt index c5cb52b74f20dc3bdced1ea0e63a5a5373a33329..c6802384e091d450d900ddb90599ab707dde5a9c 100644 --- a/examples/hello/bpZfpWrapper/CMakeLists.txt +++ b/examples/hello/bpZfpWrapper/CMakeLists.txt @@ -4,15 +4,12 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(hello_bpZfpWrapper helloBPZfpWrapper.cpp) target_include_directories(hello_bpZfpWrapper PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(hello_bpZfpWrapper ${MPI_C_LIBRARIES}) else() add_executable(hello_bpZfpWrapper helloBPZfpWrapper_nompi.cpp) - endif() target_link_libraries(hello_bpZfpWrapper adios2) diff --git a/examples/hello/datamanReader/CMakeLists.txt b/examples/hello/datamanReader/CMakeLists.txt index f180c9062b4c74d2b9a3cd21098c539cf1d3293f..1c1baa846fe64e3357d0a82b90354cca50cccde7 100644 --- a/examples/hello/datamanReader/CMakeLists.txt +++ b/examples/hello/datamanReader/CMakeLists.txt @@ -4,8 +4,6 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(hello_datamanReader helloDataManReader.cpp) target_include_directories(hello_datamanReader PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(hello_datamanReader ${MPI_C_LIBRARIES}) diff --git a/examples/hello/datamanWriter/CMakeLists.txt b/examples/hello/datamanWriter/CMakeLists.txt index 3e5c955837a67d596a6c515577ec52a6af466154..4a41f3e730d4032f05c09dffe7c381cf6d7cc917 100644 --- a/examples/hello/datamanWriter/CMakeLists.txt +++ b/examples/hello/datamanWriter/CMakeLists.txt @@ -4,8 +4,6 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(hello_datamanWriter helloDataManWriter.cpp) target_include_directories(hello_datamanWriter PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(hello_datamanWriter ${MPI_C_LIBRARIES}) diff --git a/examples/hello/hdf5Writer/CMakeLists.txt b/examples/hello/hdf5Writer/CMakeLists.txt index a2f7e6abd8d2bb83c1eca0f4e0bc9219e9b99dc2..d5d4311250ddd6cd76a2909f88d53ea17da3eb81 100644 --- a/examples/hello/hdf5Writer/CMakeLists.txt +++ b/examples/hello/hdf5Writer/CMakeLists.txt @@ -4,8 +4,6 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) - add_executable(hello_hdf5Writer helloHDF5Writer.cpp) target_include_directories(hello_hdf5Writer PRIVATE ${MPI_C_INCLUDE_PATH}) target_link_libraries(hello_hdf5Writer ${MPI_C_LIBRARIES}) diff --git a/source/adios2/CMakeLists.txt b/source/adios2/CMakeLists.txt index 374bacb349b5bea89ffd9b114ac3daf79dd1d20a..5cca920095ce3fcb6c74e737182a4590a58d50b9 100644 --- a/source/adios2/CMakeLists.txt +++ b/source/adios2/CMakeLists.txt @@ -56,8 +56,6 @@ target_include_directories(adios2 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> ) target_link_libraries(adios2 PRIVATE adios2sys pugixml) - -find_package(Threads REQUIRED) target_link_libraries(adios2 PUBLIC ${CMAKE_THREAD_LIBS_INIT}) if(UNIX) @@ -77,19 +75,16 @@ if(ADIOS2_HAVE_DataMan) endif() if(ADIOS2_HAVE_BZip2) - find_package(BZip2 REQUIRED) target_sources(adios2 PRIVATE transform/compress/CompressBZip2.cpp) target_link_libraries(adios2 PRIVATE BZip2::BZip2) endif() if(ADIOS2_HAVE_ZFP) - find_package(ZFP REQUIRED) target_sources(adios2 PRIVATE transform/compress/CompressZfp.cpp) target_link_libraries(adios2 PRIVATE zfp::zfp) endif() if(ADIOS2_HAVE_MPI) - find_package(MPI COMPONENTS C REQUIRED) target_include_directories(adios2 PUBLIC ${MPI_C_INCLUDE_PATH}) target_link_libraries(adios2 PUBLIC ${MPI_C_LIBRARIES}) else() @@ -97,12 +92,6 @@ else() endif() if(ADIOS2_HAVE_ADIOS1) - if(ADIOS2_HAVE_MPI) - find_package(ADIOS1 1.12.0 REQUIRED) - else() - find_package(ADIOS1 1.12.0 COMPONENTS sequential REQUIRED) - endif() - target_sources(adios2 PRIVATE engine/adios1/ADIOS1Reader.cpp engine/adios1/ADIOS1Writer.cpp @@ -114,18 +103,6 @@ if(ADIOS2_HAVE_ADIOS1) endif() if(ADIOS2_HAVE_HDF5) - find_package(HDF5 REQUIRED) - if(ADIOS2_HAVE_MPI AND (NOT HDF5_IS_PARALLEL)) - message(FATAL_ERROR - "A sequential version of HDF5 was detected but the parallel version " - "of ADIOS is being built, which requires a parallel HDF5." - ) - elseif((NOT ADIOS2_HAVE_MPI) AND HDF5_IS_PARALLEL) - message(FATAL_ERROR - "A parallel version of HDF5 was detected but the sequential version " - "of ADIOS is being built, which requires a sequential HDF5." - ) - endif() if(HDF5_C_INCLUDE_DIRS) target_include_directories(adios2 PRIVATE ${HDF5_C_INCLUDE_DIRS}) else() diff --git a/source/dataman/CMakeLists.txt b/source/dataman/CMakeLists.txt index acd59dde91950ab570f1741a64b034ea7067ea55..11e4823c7da126aee5a4d635182d0c2f161cc28d 100644 --- a/source/dataman/CMakeLists.txt +++ b/source/dataman/CMakeLists.txt @@ -48,8 +48,6 @@ target_link_libraries(temporalman PRIVATE dataman) list(APPEND dataman_modules temporalman) if(ADIOS2_HAVE_ZeroMQ) - find_package(ZeroMQ REQUIRED) - add_library(zmqman MODULE StreamMan.h StreamMan.cpp ZmqMan.h ZmqMan.cpp @@ -66,8 +64,6 @@ if(ADIOS2_HAVE_ZeroMQ) endif() if(ADIOS2_HAVE_ZFP) - find_package(ZFP REQUIRED) - add_library(zfpman MODULE ZfpMan.h ZfpMan.cpp) target_link_libraries(zfpman PRIVATE dataman zfp::zfp) diff --git a/testing/adios2/engine/adios1/CMakeLists.txt b/testing/adios2/engine/adios1/CMakeLists.txt index c31059b077e7d11a421775027e9dbabad540a4eb..ace06e557d1705e87449bc73972562005a035a1c 100644 --- a/testing/adios2/engine/adios1/CMakeLists.txt +++ b/testing/adios2/engine/adios1/CMakeLists.txt @@ -3,20 +3,15 @@ # accompanying file Copyright.txt for details. #------------------------------------------------------------------------------# -if(NOT ADIOS2_HAVE_MPI) - find_package(ADIOS1 COMPONENTS sequential REQUIRED) -else() - find_package(ADIOS1 REQUIRED) -endif() - add_executable(TestADIOS1WriteRead TestADIOS1WriteRead.cpp) target_link_libraries(TestADIOS1WriteRead adios2 gtest adios1::adios) - -if(NOT ADIOS2_HAVE_MPI) - gtest_add_tests(TARGET TestADIOS1WriteRead) -else() - # MPI versions of the test - gtest_add_tests(TARGET TestADIOS1WriteRead EXEC_WRAPPER ${MPIEXEC} - ${MPIEXEC_NUMPROC_FLAG} - ${MPIEXEC_MAX_NUMPROCS}) +if(ADIOS2_HAVE_MPI) + target_include_directories(TestADIOS1WriteRead PRIVATE ${MPI_C_INCLUDE_PATH}) + target_link_libraries(TestADIOS1WriteRead ${MPI_C_LIBRARIES}) + set(extra_test_args + EXEC_WRAPPER + ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} + ) endif() + +gtest_add_tests(TARGET TestADIOS1WriteRead ${extra_test_args}) diff --git a/testing/adios2/engine/bp/CMakeLists.txt b/testing/adios2/engine/bp/CMakeLists.txt index 3153fd2ab8e638c45a2c10bf63ae5aaafcb21dc9..2d6c49e5be76f4a27757e3fe5c178ddfad5c453c 100644 --- a/testing/adios2/engine/bp/CMakeLists.txt +++ b/testing/adios2/engine/bp/CMakeLists.txt @@ -7,8 +7,6 @@ if(NOT ADIOS2_HAVE_MPI) if(ADIOS2_HAVE_ADIOS1) - find_package(ADIOS1 COMPONENTS sequential REQUIRED) - add_executable(TestBPWriteRead TestBPWriteRead.cpp) target_link_libraries(TestBPWriteRead adios2 gtest adios1::adios) @@ -21,11 +19,12 @@ if(NOT ADIOS2_HAVE_MPI) gtest_add_tests(TARGET TestBPWriteRead) gtest_add_tests(TARGET TestBPWriteReadstdio) gtest_add_tests(TARGET TestBPWriteReadfstream) - endif() add_executable(TestBPWriteProfilingJSON TestBPWriteProfilingJSON.cpp) - target_link_libraries(TestBPWriteProfilingJSON adios2 gtest gtest_main NLohmannJson) + target_link_libraries(TestBPWriteProfilingJSON + adios2 gtest gtest_main NLohmannJson + ) gtest_add_tests(TARGET TestBPWriteProfilingJSON) endif() diff --git a/testing/adios2/engine/hdf5/CMakeLists.txt b/testing/adios2/engine/hdf5/CMakeLists.txt index 9847eaee6b081946ccf2c98db47a23b587daa223..e13c17fb6760fe5169e6554696e403cd03a4de87 100644 --- a/testing/adios2/engine/hdf5/CMakeLists.txt +++ b/testing/adios2/engine/hdf5/CMakeLists.txt @@ -3,10 +3,14 @@ # accompanying file Copyright.txt for details. #------------------------------------------------------------------------------# -find_package(HDF5 REQUIRED) - add_executable(TestHDF5WriteRead TestHDF5WriteRead.cpp) -target_include_directories(TestHDF5WriteRead PRIVATE ${HDF5_C_INCLUDE_DIRS}) + +# Workaround for multiple versions of FindHDF5 +if(HDF5_C_INCLUDE_DIRS) + target_include_directories(TestHDF5WriteRead PRIVATE ${HDF5_C_INCLUDE_DIRS}) +else() + target_include_directories(TestHDF5WriteRead PRIVATE ${HDF5_INCLUDE_DIRS}) +endif() target_link_libraries(TestHDF5WriteRead adios2 gtest ${HDF5_C_LIBRARIES}) gtest_add_tests(TARGET TestHDF5WriteRead)