summaryrefslogtreecommitdiffstats
path: root/examples/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'examples/CMakeLists.txt')
-rw-r--r--examples/CMakeLists.txt144
1 files changed, 77 insertions, 67 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 56206a5..10c6ede 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -1,10 +1,19 @@
-cmake_minimum_required (VERSION 2.8.6)
-PROJECT (HDF5_EXAMPLES)
+cmake_minimum_required (VERSION 3.18)
+project (HDF5_EXAMPLES C)
#-----------------------------------------------------------------------------
# Define Sources
#-----------------------------------------------------------------------------
-SET (examples
+set (examples
+ h5_crtdat
+ h5_rdwt
+ h5_crtatt
+ h5_crtgrp
+ h5_crtgrpar
+ h5_crtgrpd
+ h5_cmprss
+ h5_extend
+ h5_subset
h5_write
h5_read
h5_extend_write
@@ -14,78 +23,79 @@ SET (examples
h5_select
h5_attribute
h5_mount
- h5_reference
+ h5_ref_extern
+ h5_ref_compat
+ h5_reference_deprec
h5_drivers
- h5_ref2reg
+ h5_ref2reg_deprec
h5_extlink
h5_elink_unix2win
h5_shared_mesg
+ h5_debug_trace
+ h5_vds
+ h5_vds-exc
+ h5_vds-exclim
+ h5_vds-eiger
+ h5_vds-simpleIO
+ h5_vds-percival
+ h5_vds-percival-unlim
+ h5_vds-percival-unlim-maxmin
)
-FOREACH (example ${examples})
- ADD_EXECUTABLE (${example} ${HDF5_EXAMPLES_SOURCE_DIR}/${example}.c)
- TARGET_NAMING (${example} ${LIB_TYPE})
- TARGET_LINK_LIBRARIES (${example} ${HDF5_LIB_TARGET})
- SET_TARGET_PROPERTIES (${example} PROPERTIES FOLDER examples)
-ENDFOREACH (example ${examples})
+if (H5_HAVE_PARALLEL)
+ set (parallel_examples
+ ph5example
+ ph5_filtered_writes
+ ph5_filtered_writes_no_sel
+ )
-IF (H5_HAVE_PARALLEL)
- ADD_EXECUTABLE (ph5example ${HDF5_EXAMPLES_SOURCE_DIR}/ph5example.c)
- TARGET_NAMING (ph5example ${LIB_TYPE})
- TARGET_LINK_LIBRARIES (ph5example ${HDF5_LIB_TARGET})
- SET_TARGET_PROPERTIES (ph5example PROPERTIES FOLDER examples)
-ENDIF (H5_HAVE_PARALLEL)
+ if (HDF5_ENABLE_SUBFILING_VFD)
+ list (APPEND parallel_examples ph5_subfiling)
+ endif ()
+endif ()
-IF (BUILD_TESTING)
- FILE (MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/red ${PROJECT_BINARY_DIR}/blue ${PROJECT_BINARY_DIR}/u2w)
+foreach (example ${examples})
+ add_executable (${example} ${HDF5_EXAMPLES_SOURCE_DIR}/${example}.c)
+ target_include_directories (${example} PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+ if (NOT BUILD_SHARED_LIBS)
+ TARGET_C_PROPERTIES (${example} STATIC)
+ target_link_libraries (${example} PRIVATE ${HDF5_LIB_TARGET})
+ else ()
+ TARGET_C_PROPERTIES (${example} SHARED)
+ target_link_libraries (${example} PRIVATE ${HDF5_LIBSH_TARGET})
+ endif ()
+ set_target_properties (${example} PROPERTIES FOLDER examples)
- # Remove any output file left over from previous test run
- ADD_TEST (
- NAME EXAMPLES-clear-objects
- COMMAND ${CMAKE_COMMAND}
- -E remove
- Attributes.h5
- btrees_file.h5
- default_file.h5
- extlink_prefix_source.h5
- extlink_source.h5
- extlink_target.h5
- group.h5
- hard_link.h5
- mount1.h5
- mount2.h5
- one_index_file.h5
- only_dspaces_and_attrs_file.h5
- only_huge_mesgs_file.h5
- REF_REG.h5
- refere.h5
- SDS.h5
- SDScompound.h5
- SDSextendible.h5
- Select.h5
- separate_indexes_file.h5
- small_lists_file.h5
- soft_link.h5
- unix2win.h5
- )
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (EXAMPLES-clear-objects PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "EXAMPLES-clear-objects")
+ #-----------------------------------------------------------------------------
+ # Add Target to clang-format
+ #-----------------------------------------------------------------------------
+ if (HDF5_ENABLE_FORMATTERS)
+ clang_format (HDF5_EXAMPLES_${example}_FORMAT ${example})
+ endif ()
+endforeach ()
+
+if (H5_HAVE_PARALLEL)
+ foreach (parallel_example ${parallel_examples})
+ add_executable (${parallel_example} ${HDF5_EXAMPLES_SOURCE_DIR}/${parallel_example}.c)
+ target_include_directories (${parallel_example} PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+ if (NOT BUILD_SHARED_LIBS)
+ TARGET_C_PROPERTIES (${parallel_example} STATIC)
+ target_link_libraries (${parallel_example} PRIVATE ${HDF5_LIB_TARGET} MPI::MPI_C)
+ else ()
+ TARGET_C_PROPERTIES (${parallel_example} SHARED)
+ target_link_libraries (${parallel_example} PRIVATE ${HDF5_LIBSH_TARGET} MPI::MPI_C)
+ endif ()
+ set_target_properties (${parallel_example} PROPERTIES FOLDER examples)
- FOREACH (example ${examples})
- ADD_TEST (NAME EXAMPLES-${example} COMMAND $<TARGET_FILE:${example}>)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (EXAMPLES-${example} PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "EXAMPLES-${example}")
- ENDFOREACH (example ${examples})
+ #-----------------------------------------------------------------------------
+ # Add Target to clang-format
+ #-----------------------------------------------------------------------------
+ if (HDF5_ENABLE_FORMATTERS)
+ clang_format (HDF5_EXAMPLES_${parallel_example}_FORMAT ${parallel_example})
+ endif ()
+ endforeach ()
+endif ()
- IF (H5_HAVE_PARALLEL)
- ADD_TEST (NAME EXAMPLES-ph5example COMMAND $<TARGET_FILE:ph5example>)
- IF (NOT "${last_test}" STREQUAL "")
- SET_TESTS_PROPERTIES (EXAMPLES-ph5example PROPERTIES DEPENDS ${last_test})
- ENDIF (NOT "${last_test}" STREQUAL "")
- SET (last_test "EXAMPLES-ph5example")
- ENDIF (H5_HAVE_PARALLEL)
-ENDIF (BUILD_TESTING)
+if (BUILD_TESTING AND HDF5_TEST_EXAMPLES)
+ include (CMakeTests.cmake)
+endif ()