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

Split dataman out of ADIOS

parent d0bcebdc
No related branches found
No related tags found
1 merge request!72Finish reorg
Showing
with 173 additions and 155 deletions
...@@ -80,6 +80,10 @@ set(ADIOS_USE_DataMan ${SHARED_LIBS_SUPPORTED}) ...@@ -80,6 +80,10 @@ set(ADIOS_USE_DataMan ${SHARED_LIBS_SUPPORTED})
include(GenerateADIOSConfig) include(GenerateADIOSConfig)
GenerateADIOSConfig(MPI BZip2 ADIOS1 HDF5 DataMan) GenerateADIOSConfig(MPI BZip2 ADIOS1 HDF5 DataMan)
install(
FILES ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
)
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
# Third party libraries # Third party libraries
......
...@@ -4,63 +4,45 @@ ...@@ -4,63 +4,45 @@
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
function(GenerateADIOSConfig) function(GenerateADIOSConfig)
configure_file(
${ADIOS_SOURCE_DIR}/source/adios2/ADIOSConfig.h.in
${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
)
file(WRITE ${ADIOS_BINARY_DIR}/ADIOSConfig.h
"/*
* Distributed under the OSI-approved Apache License, Version 2.0. See
* accompanying file Copyright.txt for details.
*/
#ifndef ADIOSCONFIG_H_
#define ADIOSCONFIG_H_
/* ADIOS Version Information */
#define ADIOS2_VERSION_MAJOR ${ADIOS_VERSION_MAJOR}
#define ADIOS2_VERSION_MINOR ${ADIOS_VERSION_MINOR}
#define ADIOS2_VERSION_PATCH ${ADIOS_VERSION_PATCH}
#define ADIOS2_VERSION ${ADIOS_VERSION}
" )
file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h "
/*
* ADIOS Build Information:
*
* Compiler:
" )
foreach(L IN ITEMS C CXX Fortran) foreach(L IN ITEMS C CXX Fortran)
if(NOT CMAKE_${L}_COMPILER) if(NOT CMAKE_${L}_COMPILER)
continue() continue()
endif() endif()
file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
" * ${L}: ${CMAKE_${L}_COMPILER}\n" " * ${L}: ${CMAKE_${L}_COMPILER}\n"
) )
if(CMAKE_${L}_COMPILER_WRAPPER) if(CMAKE_${L}_COMPILER_WRAPPER)
file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
" * Wrapper: ${CMAKE_${L}_COMPILER_WRAPPER}\n" " * Wrapper: ${CMAKE_${L}_COMPILER_WRAPPER}\n"
) )
endif() endif()
file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
" * Id: ${CMAKE_${L}_COMPILER_ID} ${CMAKE_${L}_COMPILER_VERSION}\n" " * Id: ${CMAKE_${L}_COMPILER_ID} ${CMAKE_${L}_COMPILER_VERSION}\n"
) )
endforeach() endforeach()
file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h " */\n") file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h " */\n")
foreach(OPT IN LISTS ARGN) foreach(OPT IN LISTS ARGN)
string(TOUPPER ${OPT} OPT_UPPER) string(TOUPPER ${OPT} OPT_UPPER)
file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
"\n/* CMake Option: ADIOS_USE_${OPT}=${ADIOS_USE_${OPT}} */\n" "\n/* CMake Option: ADIOS_USE_${OPT}=${ADIOS_USE_${OPT}} */\n"
) )
if(ADIOS_USE_${OPT}) if(ADIOS_USE_${OPT})
file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
"#define ADIOS2_HAVE_${OPT_UPPER} 1\n" "#define ADIOS2_HAVE_${OPT_UPPER} 1\n"
) )
else() else()
file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
"#undef ADIOS2_HAVE_${OPT_UPPER}\n" "#undef ADIOS2_HAVE_${OPT_UPPER}\n"
) )
endif() endif()
endforeach() endforeach()
file(APPEND ${ADIOS_BINARY_DIR}/ADIOSConfig.h file(APPEND ${ADIOS_BINARY_DIR}/adios2/ADIOSConfig.h
"\n#endif /* ADIOSCONFIG_H_ */\n" "\n#endif /* ADIOSCONFIG_H_ */\n"
) )
endfunction() endfunction()
...@@ -3,135 +3,13 @@ ...@@ -3,135 +3,13 @@
# accompanying file Copyright.txt for details. # accompanying file Copyright.txt for details.
#------------------------------------------------------------------------------# #------------------------------------------------------------------------------#
add_library(adios2
ADIOS.cpp ADIOS.tcc
capsule/heap/STLVector.cpp
capsule/shmem/ShmSystemV.cpp
core/Capsule.cpp
core/Engine.cpp
core/Method.cpp
core/Support.cpp
core/Timer.cpp
core/Transform.cpp
core/Transport.cpp
core/adiosFunctions.cpp
engine/bp/BPFileReader.cpp
engine/bp/BPFileWriter.cpp
utilities/format/bp1/BP1Base.cpp
utilities/format/bp1/BP1Aggregator.cpp
utilities/format/bp1/BP1Writer.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
)
target_include_directories(adios2
PUBLIC
$<BUILD_INTERFACE:${ADIOS_BINARY_DIR}>
$<INSTALL_INTERFACE:include>
PRIVATE ${ADIOS_SOURCE_DIR}/source
)
if(ADIOS_USE_DataMan) if(ADIOS_USE_DataMan)
target_sources(adios2 PRIVATE add_subdirectory(dataman)
engine/dataman/DataManReader.cpp
engine/dataman/DataManWriter.cpp
transport/wan/MdtmMan.cpp
utilities/realtime/dataman/DataManBase.cpp
utilities/realtime/dataman/DataMan.cpp
)
target_link_libraries(adios2 PRIVATE ${CMAKE_DL_LIBS})
endif()
if(ADIOS_USE_BZip2)
find_package(BZip2 REQUIRED)
target_sources(adios2 PRIVATE transform/BZip2.cpp)
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_link_libraries(adios2 PUBLIC ${MPI_C_LIBRARIES})
else()
target_sources(adios2 PRIVATE mpidummy.cpp)
endif()
if(ADIOS_USE_ADIOS1)
if(ADIOS_USE_MPI)
find_package(ADIOS1 REQUIRED)
else()
find_package(ADIOS1 COMPONENTS sequential REQUIRED)
endif()
target_sources(adios2 PRIVATE
engine/adios1/ADIOS1Reader.cpp
engine/adios1/ADIOS1Writer.cpp
)
target_link_libraries(adios2 PRIVATE adios1::adios)
endif()
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 is being built, which requires a parallel HDF5."
)
elseif((NOT ADIOS_USE_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()
target_include_directories(adios2 PRIVATE ${HDF5_INCLUDE_DIRS})
target_sources(adios2 PRIVATE
engine/hdf5/HDF5ReaderP.cpp
engine/hdf5/HDF5WriterP.cpp
)
target_link_libraries(adios2 PRIVATE ${HDF5_C_LIBRARIES})
endif() endif()
# Main header when using the build directory add_subdirectory(adios2)
set(ADIOS_INCLUDE_DIR "${ADIOS_SOURCE_DIR}/source")
set(ADIOS_CONFIG_DIR "${ADIOS_BINARY_DIR}")
configure_file(adios2.h.in ${ADIOS_BINARY_DIR}/adios2.h)
# Header installation
set(ADIOS_INCLUDE_DIR "adios2")
set(ADIOS_CONFIG_DIR "adios2")
configure_file(adios2.h.in ${ADIOS_BINARY_DIR}/adios2.install.h)
install( install(
FILES ${ADIOS_BINARY_DIR}/adios2.install.h FILES adios2.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
RENAME adios2.h
)
install(
FILES
ADIOS.h ADIOS.inl ADIOSMacros.h ADIOS_MPI.h ADIOSTypes.h mpidummy.h
${ADIOS_BINARY_DIR}/ADIOSConfig.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
)
install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/core
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
FILES_MATCHING REGEX "[^/]*\.(h|inl)$"
)
# Library installation
install(
TARGETS adios2 EXPORT adios2
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
) )
...@@ -6,11 +6,11 @@ ...@@ -6,11 +6,11 @@
#ifndef ADIOS2_H_ #ifndef ADIOS2_H_
#define ADIOS2_H_ #define ADIOS2_H_
#include "@ADIOS_CONFIG_DIR@/ADIOSConfig.h" #include "adios2/ADIOSConfig.h"
#include "@ADIOS_INCLUDE_DIR@/ADIOS.h" #include "adios2/ADIOS.h"
#include "@ADIOS_INCLUDE_DIR@/ADIOSTypes.h" #include "adios2/ADIOSTypes.h"
#include "@ADIOS_INCLUDE_DIR@/core/Method.h" #include "adios2/core/Method.h"
#include "@ADIOS_INCLUDE_DIR@/core/Engine.h" #include "adios2/core/Engine.h"
#include "@ADIOS_INCLUDE_DIR@/core/Transform.h" #include "adios2/core/Transform.h"
#endif /* ADIOS2_H_ */ #endif /* ADIOS2_H_ */
File moved
File moved
File moved
File moved
/*
* Distributed under the OSI-approved Apache License, Version 2.0. See
* accompanying file Copyright.txt for details.
*/
#ifndef ADIOSCONFIG_H_
#define ADIOSCONFIG_H_
/* ADIOS Version Information */
#define ADIOS2_VERSION_MAJOR @ADIOS_VERSION_MAJOR@
#define ADIOS2_VERSION_MINOR @ADIOS_VERSION_MINOR@
#define ADIOS2_VERSION_PATCH @ADIOS_VERSION_PATCH@
#define ADIOS2_VERSION @ADIOS_VERSION@
/*
* ADIOS Build Information:
*
* Compiler:
File moved
File moved
File moved
#------------------------------------------------------------------------------#
# Distributed under the OSI-approved Apache License, Version 2.0. See
# accompanying file Copyright.txt for details.
#------------------------------------------------------------------------------#
add_library(adios2
ADIOS.cpp ADIOS.tcc
capsule/heap/STLVector.cpp
capsule/shmem/ShmSystemV.cpp
core/Capsule.cpp
core/Engine.cpp
core/Method.cpp
core/Support.cpp
core/Timer.cpp
core/Transform.cpp
core/Transport.cpp
core/adiosFunctions.cpp
engine/bp/BPFileReader.cpp
engine/bp/BPFileWriter.cpp
utilities/format/bp1/BP1Base.cpp
utilities/format/bp1/BP1Aggregator.cpp
utilities/format/bp1/BP1Writer.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
)
target_include_directories(adios2
PUBLIC
$<BUILD_INTERFACE:${ADIOS_BINARY_DIR}>
$<INSTALL_INTERFACE:include>
PRIVATE ${ADIOS_SOURCE_DIR}/source
)
if(ADIOS_USE_DataMan)
target_sources(adios2 PRIVATE
engine/dataman/DataManReader.cpp
engine/dataman/DataManWriter.cpp
transport/wan/MdtmMan.cpp
)
target_link_libraries(adios2 PRIVATE dataman)
endif()
if(ADIOS_USE_BZip2)
find_package(BZip2 REQUIRED)
target_sources(adios2 PRIVATE transform/BZip2.cpp)
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_link_libraries(adios2 PUBLIC ${MPI_C_LIBRARIES})
else()
target_sources(adios2 PRIVATE mpidummy.cpp)
endif()
if(ADIOS_USE_ADIOS1)
if(ADIOS_USE_MPI)
find_package(ADIOS1 REQUIRED)
else()
find_package(ADIOS1 COMPONENTS sequential REQUIRED)
endif()
target_sources(adios2 PRIVATE
engine/adios1/ADIOS1Reader.cpp
engine/adios1/ADIOS1Writer.cpp
)
target_link_libraries(adios2 PRIVATE adios1::adios)
endif()
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 is being built, which requires a parallel HDF5."
)
elseif((NOT ADIOS_USE_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()
target_include_directories(adios2 PRIVATE ${HDF5_INCLUDE_DIRS})
target_sources(adios2 PRIVATE
engine/hdf5/HDF5ReaderP.cpp
engine/hdf5/HDF5WriterP.cpp
)
target_link_libraries(adios2 PRIVATE ${HDF5_C_LIBRARIES})
endif()
install(
FILES
ADIOS.h ADIOS.inl ADIOSMacros.h ADIOS_MPI.h ADIOSTypes.h mpidummy.h adios2.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
)
install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/core
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
FILES_MATCHING REGEX "[^/]*\.(h|inl)$"
)
# Library installation
install(
TARGETS adios2 EXPORT adios2
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
File moved
File moved
File moved
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