diff --git a/CMakeLists.txt b/CMakeLists.txt index 0396a1c4620a641fbd26c725875b5a2ca7ab34e4..9e267cc5b85cc4484ccfc515bb039722c71a2548 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,12 +65,12 @@ if(ADIOS_ENABLE_PIC) set(CMAKE_POSITION_INDEPENDENT_CODE ON) endif() -option(ADIOS_USE_MPI "Enable the MPI version of ADIOS" ON) +option(ADIOS_USE_MPI "Enable the MPI version of ADIOS" OFF) if(ADIOS_USE_MPI) # Workaround for OpenMPI forcing the link of C++ bindings add_definitions(-DOMPI_SKIP_MPICXX) endif() -option(ADIOS_USE_BZip2 "Enable support for BZip2 transforms" ON) +option(ADIOS_USE_BZip2 "Enable support for BZip2 transforms" OFF) option(ADIOS_USE_ADIOS1 "Enable support for the ADIOS 1 engine" OFF) option(ADIOS_USE_DataMan "Enable support for the DataMan engine" OFF) diff --git a/examples/hello/bpWriter/CMakeLists.txt b/examples/hello/bpWriter/CMakeLists.txt index 67e193342b05fe0c7d99881038a69e5233706fda..d208c353979cc633ec57c741583831d27be03081 100644 --- a/examples/hello/bpWriter/CMakeLists.txt +++ b/examples/hello/bpWriter/CMakeLists.txt @@ -3,6 +3,13 @@ # accompanying file Copyright.txt for details. #------------------------------------------------------------------------------# +add_executable(hello_bpWriter_nompi helloBPWriter_nompi.cpp) +target_link_libraries(hello_bpWriter_nompi adios2_nompi) + +if(ADIOS_BUILD_TESTING) + add_test( NAME Example::hello::bpWriter_nompi COMMAND hello_bpWriter_nompi) +endif() + if(ADIOS_USE_MPI) find_package(MPI COMPONENTS C REQUIRED) add_executable(hello_bpWriter helloBPWriter.cpp) @@ -12,12 +19,5 @@ if(ADIOS_USE_MPI) if(ADIOS_BUILD_TESTING) add_test( NAME Example::hello::bpWriter COMMAND hello_bpWriter) endif() -else() - add_executable(hello_bpWriter_nompi helloBPWriter_nompi.cpp) - target_link_libraries(hello_bpWriter_nompi adios2) - - if(ADIOS_BUILD_TESTING) - add_test( NAME Example::hello::bpWriter_nompi COMMAND hello_bpWriter_nompi) - endif() endif() diff --git a/examples/hello/datamanReader/CMakeLists.txt b/examples/hello/datamanReader/CMakeLists.txt index 3aa3e264ad829cf697e9cd91a6336d6fcf8b668d..34db8ffb63b807a029daa91ad67f80614170c736 100644 --- a/examples/hello/datamanReader/CMakeLists.txt +++ b/examples/hello/datamanReader/CMakeLists.txt @@ -3,6 +3,16 @@ # accompanying file Copyright.txt for details. #------------------------------------------------------------------------------# +add_executable(hello_datamanReader_nompi helloDataManReader_nompi.cpp) +target_link_libraries(hello_datamanReader_nompi adios2_nompi) + +if(ADIOS_BUILD_TESTING) + add_test( + NAME Example::hello::datamanReader_nompi + COMMAND hello_datamanReader_nompi + ) +endif() + if(ADIOS_USE_MPI) find_package(MPI COMPONENTS C REQUIRED) @@ -14,15 +24,5 @@ if(ADIOS_USE_MPI) if(ADIOS_BUILD_TESTING) add_test(NAME Example::hello::datamanReader COMMAND hello_datamanReader) endif() -else() - add_executable(hello_datamanReader_nompi helloDataManReader_nompi.cpp) - target_link_libraries(hello_datamanReader_nompi adios2) - - if(ADIOS_BUILD_TESTING) - add_test( - NAME Example::hello::datamanReader_nompi - COMMAND hello_datamanReader_nompi - ) - endif() endif() diff --git a/examples/hello/datamanWriter/CMakeLists.txt b/examples/hello/datamanWriter/CMakeLists.txt index 7defd6c40b3bd2eba1802a4e6e99dd41f5de1697..c9268d31c761aac93069bee68adcae9fa2289530 100644 --- a/examples/hello/datamanWriter/CMakeLists.txt +++ b/examples/hello/datamanWriter/CMakeLists.txt @@ -3,6 +3,16 @@ # accompanying file Copyright.txt for details. #------------------------------------------------------------------------------# +add_executable(hello_datamanWriter_nompi helloDataManWriter_nompi.cpp) +target_link_libraries(hello_datamanWriter_nompi adios2_nompi) + +if(ADIOS_BUILD_TESTING) + add_test( + NAME Example::hello::datamanWriter_nompi + COMMAND hello_datamanWriter_nompi + ) +endif() + if(ADIOS_USE_MPI) find_package(MPI COMPONENTS C REQUIRED) @@ -14,15 +24,5 @@ if(ADIOS_USE_MPI) if(ADIOS_BUILD_TESTING) add_test(NAME Example::hello::datamanWriter COMMAND hello_datamanWriter) endif() -else() - add_executable(hello_datamanWriter_nompi helloDataManWriter_nompi.cpp) - target_link_libraries(hello_datamanWriter_nompi adios2) - - if(ADIOS_BUILD_TESTING) - add_test( - NAME Example::hello::datamanWriter_nompi - COMMAND hello_datamanWriter_nompi - ) - endif() endif() diff --git a/examples/hello/timeBP/CMakeLists.txt b/examples/hello/timeBP/CMakeLists.txt index d86828c90625a3a4e34952730fcd6ed9631c2949..949e8145e18683463df84e4b555e065901bc9e03 100644 --- a/examples/hello/timeBP/CMakeLists.txt +++ b/examples/hello/timeBP/CMakeLists.txt @@ -3,6 +3,16 @@ # accompanying file Copyright.txt for details. #------------------------------------------------------------------------------# +add_executable(hello_timeBPWriter_nompi timeBPWriter_nompi.cpp) +target_link_libraries(hello_timeBPWriter_nompi adios2_nompi) + +if(ADIOS_BUILD_TESTING) + add_test( + NAME Example::hello::timeBPWriter_nompi + COMMAND hello_timeBPWriter_nompi + ) +endif() + if(ADIOS_USE_MPI) find_package(MPI COMPONENTS C REQUIRED) add_executable(hello_timeBPWriter timeBPWriter.cpp) @@ -13,14 +23,4 @@ if(ADIOS_USE_MPI) if(ADIOS_BUILD_TESTING) add_test(NAME Example::hello::timeBPWriter COMMAND hello_timeBPWriter) endif() -else() - add_executable(hello_timeBPWriter_nompi timeBPWriter_nompi.cpp) - target_link_libraries(hello_timeBPWriter_nompi adios2) - - if(ADIOS_BUILD_TESTING) - add_test( - NAME Example::hello::timeBPWriter_nompi - COMMAND hello_timeBPWriter_nompi - ) - endif() endif() diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index beb96bfe6edb34ef6ee8cacd34bc11e4c0651204..1b3472a4020d6a4cfea8858aea614bb1a04b24b5 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -2,69 +2,81 @@ # Distributed under the OSI-approved Apache License, Version 2.0. See # accompanying file Copyright.txt for details. #------------------------------------------------------------------------------# + +set(adios2_targets adios2_nompi) +if(ADIOS_USE_MPI) + list(APPEND adios2_targets adios2) +endif() + +foreach(adios2_target IN LISTS adios2_targets) + add_library(${adios2_target} + ADIOS.cpp ADIOS_inst.cpp + #ADIOS_C.cpp + + capsule/heap/STLVector.cpp + capsule/shmem/ShmSystemV.cpp + + core/Capsule.cpp + core/Engine.cpp + core/Method.cpp + core/Support.cpp + core/Transform.cpp + core/Transport.cpp + + engine/bp/BPFileReader.cpp + engine/bp/BPFileWriter.cpp + + format/BP1.cpp + format/BP1Aggregator.cpp + format/BP1Writer.cpp + + functions/adiosFunctions.cpp + + transport/file/FStream.cpp + transport/file/FileDescriptor.cpp + transport/file/FilePointer.cpp + ) + target_include_directories(${adios2_target} + PUBLIC ${ADIOS_SOURCE_DIR}/include + ) + + if(ADIOS_USE_ADIOS1) + find_package(ADIOS REQUIRED) + target_sources(${adios2_target} PRIVATE + engine/adios1/ADIOS1Reader.cpp + engine/adios1/ADIOS1Writer.cpp + ) + target_compile_definitions(${adios2_target} PRIVATE ADIOS_HAVE_ADIOS1) + target_link_libraries(${adios2_target} PRIVATE adios::adios) + endif() + + if(ADIOS_USE_DataMan) + find_package(DataMan REQUIRED) + target_sources(${adios2_target} PRIVATE + engine/dataman/DataManReader.cpp + engine/dataman/DataManWriter.cpp + transport/wan/MdtmMan.cpp + ) + target_compile_definitions(${adios2_target} PRIVATE ADIOS_HAVE_DATAMAN) + target_link_libraries(${adios2_target} PRIVATE DataMan::DataMan) + endif() + + if(ADIOS_USE_BZip2) + find_package(BZip2 REQUIRED) + target_sources(${adios2_target} PRIVATE transform/BZip2.cpp) + target_compile_definitions(${adios2_target} PRIVATE ADIOS_HAVE_BZIP2) + target_link_libraries(${adios2_target} PRIVATE BZip2::BZip2) + endif() +endforeach() -add_library(adios2 - ADIOS.cpp ADIOS_inst.cpp - #ADIOS_C.cpp - - capsule/heap/STLVector.cpp - capsule/shmem/ShmSystemV.cpp - - core/Capsule.cpp - core/Engine.cpp - core/Method.cpp - core/Support.cpp - core/Transform.cpp - core/Transport.cpp - - engine/bp/BPFileReader.cpp - engine/bp/BPFileWriter.cpp - - format/BP1.cpp - format/BP1Aggregator.cpp - format/BP1Writer.cpp - - functions/adiosFunctions.cpp - - transport/file/FStream.cpp - transport/file/FileDescriptor.cpp - transport/file/FilePointer.cpp -) -target_include_directories(adios2 PUBLIC ${ADIOS_SOURCE_DIR}/include) +target_sources(adios2_nompi PRIVATE mpidummy.cpp) +if(CMAKE_CXX_COMPILER_WRAPPER STREQUAL CrayPrgEnv) + target_compile_options(adios2_nompi PRIVATE --cray-bypass-pkgconfig) +endif() if(ADIOS_USE_MPI) find_package(MPI COMPONENTS C REQUIRED) target_include_directories(adios2 PUBLIC ${MPI_C_INCLUDE_PATH}) target_compile_definitions(adios2 PUBLIC ADIOS_HAVE_MPI) target_link_libraries(adios2 PUBLIC ${MPI_C_LIBRARIES}) -else() - target_sources(adios2 PRIVATE mpidummy.cpp) -endif() - -if(ADIOS_USE_ADIOS1) - find_package(ADIOS REQUIRED) - target_sources(adios2 PRIVATE - engine/adios1/ADIOS1Reader.cpp - engine/adios1/ADIOS1Writer.cpp - ) - target_compile_definitions(adios2 PRIVATE ADIOS_HAVE_ADIOS1) - target_link_libraries(adios2 PRIVATE adios::adios) -endif() - -if(ADIOS_USE_DataMan) - find_package(DataMan REQUIRED) - target_sources(adios2 PRIVATE - engine/dataman/DataManReader.cpp - engine/dataman/DataManWriter.cpp - transport/wan/MdtmMan.cpp - ) - target_compile_definitions(adios2 PRIVATE ADIOS_HAVE_DATAMAN) - target_link_libraries(adios2 PRIVATE DataMan::DataMan) -endif() - -if(ADIOS_USE_BZip2) - find_package(BZip2 REQUIRED) - target_sources(adios2 PRIVATE transform/BZip2.cpp) - target_compile_definitions(adios2 PRIVATE ADIOS_HAVE_BZIP2) - target_link_libraries(adios2 PRIVATE BZip2::BZip2) endif()