2020-02-22 06:16:06 +08:00
|
|
|
cmake_minimum_required (VERSION 3.12)
|
2018-04-20 23:11:55 +08:00
|
|
|
project (HDF5_CPP_EXAMPLES CXX)
|
2017-01-11 07:09:53 +08:00
|
|
|
|
2010-05-14 00:01:50 +08:00
|
|
|
# --------------------------------------------------------------------
|
|
|
|
# Notes: When creating examples they should be prefixed
|
|
|
|
# with "cpp_ex_". This allows for easier filtering of the examples.
|
|
|
|
# --------------------------------------------------------------------
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
# Define examples
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
2014-03-12 05:14:57 +08:00
|
|
|
set (examples
|
2010-05-14 00:01:50 +08:00
|
|
|
create
|
|
|
|
readdata
|
|
|
|
writedata
|
|
|
|
compound
|
|
|
|
extend_ds
|
|
|
|
chunks
|
|
|
|
h5group
|
|
|
|
)
|
|
|
|
|
2014-03-12 05:14:57 +08:00
|
|
|
set (tutr_examples
|
2013-10-01 01:49:05 +08:00
|
|
|
h5tutr_cmprss
|
|
|
|
h5tutr_crtdat
|
|
|
|
h5tutr_crtatt
|
|
|
|
h5tutr_crtgrpar
|
|
|
|
h5tutr_crtgrp
|
|
|
|
h5tutr_crtgrpd
|
|
|
|
h5tutr_extend
|
|
|
|
h5tutr_rdwt
|
|
|
|
h5tutr_subset
|
|
|
|
)
|
|
|
|
|
2014-03-12 05:14:57 +08:00
|
|
|
foreach (example ${examples})
|
|
|
|
add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
|
2020-09-26 05:43:57 +08:00
|
|
|
target_include_directories (cpp_ex_${example} PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
2019-06-18 20:46:25 +08:00
|
|
|
if (NOT BUILD_SHARED_LIBS)
|
|
|
|
TARGET_C_PROPERTIES (cpp_ex_${example} STATIC)
|
|
|
|
target_link_libraries (cpp_ex_${example} PRIVATE ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
|
|
|
|
else ()
|
|
|
|
TARGET_C_PROPERTIES (cpp_ex_${example} SHARED)
|
|
|
|
target_link_libraries (cpp_ex_${example} PRIVATE ${HDF5_CPP_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
|
2020-10-30 17:44:24 +08:00
|
|
|
if (MINGW AND HDF5_MINGW_STATIC_GCC_LIBS)
|
2019-07-19 05:27:06 +08:00
|
|
|
target_link_options (${HDF5_CPP_LIBSH_TARGET}
|
|
|
|
PRIVATE -static-libgcc -static-libstdc++
|
|
|
|
)
|
|
|
|
endif ()
|
2019-06-18 20:46:25 +08:00
|
|
|
endif ()
|
2014-03-12 05:14:57 +08:00
|
|
|
set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp)
|
2020-09-05 05:36:52 +08:00
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
# Add Target to clang-format
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
if (HDF5_ENABLE_FORMATTERS)
|
|
|
|
clang_format (HDF5_CPP_EXAMPLES_${example}_FORMAT cpp_ex_${example})
|
|
|
|
endif ()
|
2017-01-11 07:09:53 +08:00
|
|
|
endforeach ()
|
2010-09-03 04:58:17 +08:00
|
|
|
|
2014-03-12 05:14:57 +08:00
|
|
|
foreach (example ${tutr_examples})
|
|
|
|
add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
|
2020-09-26 05:43:57 +08:00
|
|
|
target_include_directories (cpp_ex_${example} PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
2019-06-18 20:46:25 +08:00
|
|
|
if (NOT BUILD_SHARED_LIBS)
|
|
|
|
TARGET_C_PROPERTIES (cpp_ex_${example} STATIC)
|
|
|
|
target_link_libraries (cpp_ex_${example} PRIVATE ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
|
|
|
|
else ()
|
|
|
|
TARGET_C_PROPERTIES (cpp_ex_${example} SHARED)
|
|
|
|
target_link_libraries (cpp_ex_${example} PRIVATE ${HDF5_CPP_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
|
2020-10-30 17:44:24 +08:00
|
|
|
if (MINGW AND HDF5_MINGW_STATIC_GCC_LIBS)
|
2019-07-19 05:27:06 +08:00
|
|
|
target_link_options (${HDF5_CPP_LIBSH_TARGET}
|
|
|
|
PRIVATE -static-libgcc -static-libstdc++
|
|
|
|
)
|
|
|
|
endif ()
|
2019-06-18 20:46:25 +08:00
|
|
|
endif ()
|
2014-03-12 05:14:57 +08:00
|
|
|
set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp)
|
2020-09-05 05:36:52 +08:00
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
# Add Target to clang-format
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
if (HDF5_ENABLE_FORMATTERS)
|
|
|
|
clang_format (HDF5_CPP_EXAMPLES_${example}_FORMAT cpp_ex_${example})
|
|
|
|
endif ()
|
2017-01-11 07:09:53 +08:00
|
|
|
endforeach ()
|
2013-10-01 01:49:05 +08:00
|
|
|
|
2020-01-16 02:28:53 +08:00
|
|
|
if (BUILD_TESTING AND HDF5_TEST_CPP AND HDF5_TEST_EXAMPLES AND HDF5_TEST_SERIAL)
|
2014-03-12 05:14:57 +08:00
|
|
|
include (CMakeTests.cmake)
|
2017-01-11 07:09:53 +08:00
|
|
|
endif ()
|