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

Only build a serial or parallel version of the library, but not both

parent fb66e23c
No related branches found
No related tags found
1 merge request!64Creat single adios target
......@@ -72,6 +72,7 @@ if(ADIOS_USE_MPI)
endif()
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_HDF5 "Enable support for the HDF5 engine" OFF)
# DataMan is not a user-settable option. It will always be enabled if the
# platform supports it.
......@@ -137,5 +138,5 @@ message(" MPI: ${ADIOS_USE_MPI}")
message(" BZip2: ${ADIOS_USE_BZip2}")
message(" ADIOS1: ${ADIOS_USE_ADIOS1}")
message(" DataMan: ${ADIOS_USE_DataMan}")
message(" HDF5: ${ADIOS_USE_PHDF5}")
message(" HDF5: ${ADIOS_USE_HDF5}")
message("")
......@@ -244,20 +244,20 @@ endif()
# handles the REQUIRED, QUIET and version-related arguments for find_package
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ADIOS1
REQUIRED_VARS ADIOS1_LIBRARY_PATH ADIOS1_DEPENDENCY_LIBRARIES ADIOS1_INCLUDE_DIRS
VERSION_VAR ADIOS1_VERSION
REQUIRED_VARS
ADIOS1_LIBRARY_PATH ADIOS1_DEPENDENCY_LIBRARIES ADIOS1_INCLUDE_DIRS
VERSION_VAR
ADIOS1_VERSION
)
##########################################################################
# Add target and dependencies to ADIOS2
##########################################################################
#message(STATUS "ADIOS1 Find ended with ${ADIOS1_FOUND}")
if(ADIOS1_FOUND AND NOT TARGET adios1::adios)
message(STATUS "Add library ADIOS1 to the build")
add_library(adios1::adios UNKNOWN IMPORTED)
set_target_properties(adios1::adios PROPERTIES
IMPORTED_LOCATION "${ADIOS1_LIBRARY_PATH}"
INTERFACE_LINK_LIBRARIES "${ADIOS1_DEPENDENCY_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${ADIOS1_INCLUDE_DIRS}"
)
endif()
if(ADIOS1_FOUND AND NOT TARGET adios1::adios)
add_library(adios1::adios UNKNOWN IMPORTED)
set_target_properties(adios1::adios PROPERTIES
IMPORTED_LOCATION "${ADIOS1_LIBRARY_PATH}"
INTERFACE_LINK_LIBRARIES "${ADIOS1_DEPENDENCY_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${ADIOS1_INCLUDE_DIRS}"
)
endif()
......@@ -3,107 +3,102 @@
# 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.tcc
#ADIOS_C.cpp
add_library(adios2
ADIOS.cpp ADIOS.tcc
#ADIOS_C.cpp
capsule/heap/STLVector.cpp
capsule/shmem/ShmSystemV.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
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
engine/bp/BPFileReader.cpp
engine/bp/BPFileWriter.cpp
utilities/format/bp1/BP1Base.cpp
utilities/format/bp1/BP1Aggregator.cpp
utilities/format/bp1/BP1Writer.cpp
utilities/format/bp1/BP1Base.cpp
utilities/format/bp1/BP1Aggregator.cpp
utilities/format/bp1/BP1Writer.cpp
utilities/profiling/iochrono/Timer.cpp
functions/adiosFunctions.cpp
utilities/profiling/iochrono/Timer.cpp
functions/adiosFunctions.cpp
transport/file/FStream.cpp
transport/file/FileDescriptor.cpp
transport/file/FilePointer.cpp
transport/file/FStream.cpp
transport/file/FileDescriptor.cpp
transport/file/FilePointer.cpp
utilities/format/bp1/BP1Base.cpp
utilities/format/bp1/BP1Aggregator.cpp
utilities/format/bp1/BP1Writer.cpp
utilities/format/bp1/BP1Writer.tcc
utilities/format/bp1/BP1Base.cpp
utilities/format/bp1/BP1Aggregator.cpp
utilities/format/bp1/BP1Writer.cpp
utilities/format/bp1/BP1Writer.tcc
utilities/profiling/iochrono/Timer.cpp
)
target_include_directories(${adios2_target}
PUBLIC ${ADIOS_SOURCE_DIR}/include
)
utilities/profiling/iochrono/Timer.cpp
)
target_include_directories(adios2
PUBLIC ${ADIOS_SOURCE_DIR}/include
)
if(ADIOS_USE_DataMan)
target_sources(${adios2_target} PRIVATE
engine/dataman/DataManReader.cpp
engine/dataman/DataManWriter.cpp
transport/wan/MdtmMan.cpp
utilities/realtime/dataman/DataManBase.cpp
utilities/realtime/dataman/DataMan.cpp
)
target_compile_definitions(${adios2_target} PRIVATE ADIOS_HAVE_DATAMAN)
target_link_libraries(${adios2_target} PRIVATE ${CMAKE_DL_LIBS})
endif()
if(ADIOS_USE_DataMan)
target_sources(adios2 PRIVATE
engine/dataman/DataManReader.cpp
engine/dataman/DataManWriter.cpp
transport/wan/MdtmMan.cpp
utilities/realtime/dataman/DataManBase.cpp
utilities/realtime/dataman/DataMan.cpp
)
target_compile_definitions(adios2 PRIVATE ADIOS_HAVE_DATAMAN)
target_link_libraries(adios2 PRIVATE ${CMAKE_DL_LIBS})
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()
target_sources(adios2_nompi PRIVATE mpidummy.cpp)
if(CMAKE_CXX_COMPILER_WRAPPER STREQUAL CrayPrgEnv)
target_compile_options(adios2_nompi PRIVATE --cray-bypass-pkgconfig)
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()
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)
if(ADIOS_USE_ADIOS1)
if(ADIOS_HAVE_MPI)
find_package(ADIOS1 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 adios1::adios)
else()
find_package(ADIOS1 COMPONENTS sequential REQUIRED)
endif()
if(ADIOS_USE_PHDF5)
find_package(HDF5 REQUIRED)
message(" HDF5 ROOT: ${HDF5_ROOT}")
message(" HDF5 include: ${HDF5_INCLUDE_DIRS} is paralle? ${HDF5_IS_PARALLEL}")
target_include_directories(adios2 PRIVATE ${HDF5_INCLUDE_DIRS})
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 adios1::adios)
endif()
target_sources(adios2 PRIVATE
engine/hdf5/HDF5ReaderP.cpp
engine/hdf5/HDF5WriterP.cpp
)
target_compile_definitions(adios2 PRIVATE ADIOS_HAVE_PHDF5)
target_link_libraries(adios2 PRIVATE ${HDF5_C_LIBRARIES})
if(ADIOS_USE_HDF5)
find_package(HDF5 REQUIRED)
if(ADIOS_USE_MPI AND NOT HDF5_IS_PARALLEL)
message(FATAL_ERROR "A sequential version of HDF5 was detected but the parallel version of ADIOS requires a parallel HDF5.")
endif()
target_include_directories(adios2 PRIVATE ${HDF5_INCLUDE_DIRS})
target_sources(adios2 PRIVATE
engine/hdf5/HDF5ReaderP.cpp
engine/hdf5/HDF5WriterP.cpp
)
target_compile_definitions(adios2 PRIVATE ADIOS_HAVE_HDF5)
target_link_libraries(adios2 PRIVATE ${HDF5_C_LIBRARIES})
endif()
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