summaryrefslogtreecommitdiffstats
path: root/HDF5Examples/C/H5FLT/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'HDF5Examples/C/H5FLT/CMakeLists.txt')
-rw-r--r--HDF5Examples/C/H5FLT/CMakeLists.txt285
1 files changed, 285 insertions, 0 deletions
diff --git a/HDF5Examples/C/H5FLT/CMakeLists.txt b/HDF5Examples/C/H5FLT/CMakeLists.txt
new file mode 100644
index 0000000..eb386b4
--- /dev/null
+++ b/HDF5Examples/C/H5FLT/CMakeLists.txt
@@ -0,0 +1,285 @@
+cmake_minimum_required (VERSION 3.12)
+project (HDF5Examples_C_H5FLT)
+
+set (dyn_examples)
+
+option (ENABLE_BLOSC "Enable Library Building for blosc plugin" ON)
+if (ENABLE_BLOSC)
+ if (WIN32)
+ if (NOT CMAKE_C_COMPILER_ID MATCHES "[Cc]lang" AND MSVC_VERSION GREATER 1600)
+ set (BLOSC_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_blosc)
+ else ()
+ set (BLOSC_AVAILABLE 0)
+ endif ()
+ elseif (APPLE)
+ if (NOT CMAKE_C_COMPILER_ID STREQUAL "Intel")
+ set (BLOSC_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_blosc)
+ endif ()
+ else ()
+ set (BLOSC_AVAILABLE 0)
+ endif ()
+else ()
+ set (BLOSC_AVAILABLE 0)
+endif ()
+
+option (ENABLE_BSHUF "Enable Library Building for bshuf plugin" ON)
+if (ENABLE_BSHUF)
+ if (NOT CMAKE_C_COMPILER_ID STREQUAL "Intel")
+ set (BSHUF_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_bshuf)
+ else ()
+ set (BSHUF_AVAILABLE 0)
+ endif ()
+else ()
+ set (BSHUF_AVAILABLE 0)
+endif ()
+
+option (ENABLE_BZIP2 "Enable Library Building for bzip2 plugin" ON)
+if (ENABLE_BZIP2)
+ set (BZIP2_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_bzip2)
+else ()
+ set (BZIP2_AVAILABLE 0)
+endif ()
+
+option (ENABLE_FPZIP "Enable Library Building for fpzip plugin" OFF)
+if (ENABLE_FPZIP)
+ set (FPZIP_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_fpzip)
+else ()
+ set (FPZIP_AVAILABLE 0)
+endif ()
+option (ENABLE_JPEG "Enable Library Building for jpeg plugin" ON)
+if (ENABLE_JPEG)
+ if (NOT WIN32)
+ set (JPEG_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_jpeg)
+ else ()
+ set (JPEG_AVAILABLE 0)
+ endif ()
+else ()
+ set (JPEG_AVAILABLE 0)
+endif ()
+
+option (ENABLE_LZ4 "Enable Library Building for lz4 plugin" ON)
+if (ENABLE_MAFISC)
+ set (LZ4_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_lz4)
+else ()
+ set (LZ4_AVAILABLE 0)
+endif ()
+
+option (ENABLE_LZF "Enable Library Building for lzf plugin" ON)
+if (ENABLE_LZF)
+ set (LZF_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_lzf)
+else ()
+ set (LZF_AVAILABLE 0)
+endif ()
+
+option (ENABLE_MAFISC "Enable Library Building for mafisc plugin" OFF)
+if (ENABLE_MAFISC)
+ set (MAFISC_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_mafisc)
+else ()
+ set (MAFISC_AVAILABLE 0)
+endif ()
+option (ENABLE_SZ "Enable Library Building for sz plugin" OFF)
+if (ENABLE_SZ)
+ if (WIN32 AND MSVC_VERSION GREATER 1900)
+ if (CMAKE_C_COMPILER_ID MATCHES "[Cc]lang" OR CMAKE_C_COMPILER_ID STREQUAL "Intel")
+ set (SZ_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_sz)
+ else ()
+ set (SZ_AVAILABLE 0)
+ endif ()
+ elseif (NOT WIN32)
+ if(CMAKE_C_COMPILER_ID MATCHES "[Cc]lang" AND NOT CMAKE_C_COMPILER_ID MATCHES "Apple[Cc]lang")
+ set (SZ_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_sz)
+ else ()
+ set (SZ_AVAILABLE 0)
+ endif ()
+ else ()
+ set (SZ_AVAILABLE 0)
+ endif ()
+else ()
+ set (SZ_AVAILABLE 0)
+endif ()
+
+option (ENABLE_ZFP "Enable Library Building for zfp plugin" OFF)
+if (ENABLE_ZFP)
+ set (ZFP_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_zfp)
+else ()
+ set (ZFP_AVAILABLE 0)
+endif ()
+
+option (ENABLE_ZSTD "Enable Library Building for zstd plugin" ON)
+if (ENABLE_ZSTD)
+ if (WIN32)
+ if (CMAKE_C_COMPILER_ID MATCHES "[Cc]lang")
+ set (ZSTD_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_zstd)
+ else ()
+ set (ZSTD_AVAILABLE 0)
+ endif ()
+ elseif (APPLE)
+ if (NOT CMAKE_C_COMPILER_ID STREQUAL "Intel")
+ set (ZSTD_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_zstd)
+ else ()
+ set (ZSTD_AVAILABLE 0)
+ endif ()
+ else ()
+ set (ZSTD_AVAILABLE 1)
+ set (dyn_examples ${dyn_examples} h5ex_d_zstd)
+ endif ()
+else ()
+ set (ZSTD_AVAILABLE 0)
+endif ()
+
+#run-time loadable library examples
+foreach (example ${dyn_examples})
+ add_executable (${EXAMPLE_VARNAME}_${example} ${PROJECT_SOURCE_DIR}/${example}.c)
+ TARGET_C_PROPERTIES (${EXAMPLE_VARNAME}_${example} ${LIB_TYPE})
+ target_compile_options(${EXAMPLE_VARNAME}_${example}
+ PRIVATE
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_16_API}>:-DH5_USE_16_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_18_API}>:-DH5_USE_18_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_110_API}>:-DH5_USE_110_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_112_API}>:-DH5_USE_112_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_114_API}>:-DH5_USE_114_API>"
+ "$<$<BOOL:${${EXAMPLE_VARNAME}_USE_116_API}>:-DH5_USE_116_API>"
+ )
+ if (H5_HAVE_PARALLEL)
+ target_include_directories (${EXAMPLE_VARNAME}_${example} PUBLIC ${MPI_C_INCLUDE_DIRS})
+ endif ()
+ target_link_libraries (${EXAMPLE_VARNAME}_${example} PRIVATE ${H5EX_HDF5_LINK_LIBS})
+ if (NOT WIN32)
+ target_link_libraries (${EXAMPLE_VARNAME}_${example} PRIVATE dl)
+ endif ()
+endforeach ()
+
+if (H5EX_BUILD_TESTING)
+ macro (ADD_H5_TEST testname)
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_${testname}-clearall
+ COMMAND ${CMAKE_COMMAND}
+ -E remove
+ ${testname}.out
+ ${testname}.out.err
+ ${testname}.ddl.out
+ ${testname}.ddl.out.err
+ ${testname}.h5
+ )
+ if (NOT "${last_test}" STREQUAL "")
+ set_tests_properties (${EXAMPLE_VARNAME}_${testname}-clearall PROPERTIES DEPENDS ${last_test})
+ endif ()
+ set (last_test "${EXAMPLE_VARNAME}_${testname}-clearall")
+ if (DISABLE_H5PL_ENCODER)
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_${testname}-ERR
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:${EXAMPLE_VARNAME}_${testname}>"
+ -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_EXPECT=1"
+ -D "TEST_MASK_ERROR=true"
+ -D "TEST_OUTPUT=${testname}.out"
+ -D "TEST_REFERENCE=${testname}.tst"
+ -D "TEST_SKIP_COMPARE=1"
+ -D "TEST_ERRREF=1"
+ -D "GREP_ERRREF=Filter present but encoding disabled"
+ -D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
+ -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ )
+ set_tests_properties (${EXAMPLE_VARNAME}_${testname}-ERR PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -E copy_if_different
+ "${PROJECT_SOURCE_DIR}/tfiles/${testname}.h5" "${PROJECT_BINARY_DIR}/${testname}.h5"
+ )
+ set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-ERR)
+ else ()
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:${EXAMPLE_VARNAME}_${testname}>"
+ -D "TEST_ARGS:STRING=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_EXPECT=0"
+ -D "TEST_OUTPUT=${testname}.out"
+ -D "TEST_REFERENCE=${testname}.tst"
+ -D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
+ -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ )
+ set_tests_properties (${EXAMPLE_VARNAME}_${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname}-clearall)
+ endif ()
+ set (last_test "${EXAMPLE_VARNAME}_${testname}")
+ if (HDF5_BUILD_TOOLS)
+ if (NOT "${ARGN}" STREQUAL "FILTERALL")
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_H5DUMP-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=${H5EX_HDF5_DUMP_EXECUTABLE}"
+ -D "TEST_ARGS:STRING=--enable-error-stack;-p;${testname}.h5"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${testname}.ddl.out"
+ -D "TEST_FILTER=PARAMS { ([0-9]) [-]?[0-9]+ ([0-9] [0-9] [0-9] [0-9] [0-9] [0-9]) }\n"
+ -D "TEST_FILTER_REPLACE=PARAMS { \\1 XXXX \\2 }\n"
+ -D "TEST_EXPECT=0"
+ -D "TEST_REFERENCE=${testname}.ddl"
+ -D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
+ -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ )
+ else ()
+ add_test (
+ NAME ${EXAMPLE_VARNAME}_H5DUMP-${testname}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=${H5EX_HDF5_DUMP_EXECUTABLE}"
+ -D "TEST_ARGS:STRING=--enable-error-stack;-p;${testname}.h5"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${testname}.ddl.out"
+ -D "TEST_FILTER:STRING=PARAMS {[ -0-9]*}"
+ -D "TEST_FILTER_REPLACE:STRING=PARAMS { XXXX }"
+ -D "TEST_EXPECT=0"
+ -D "TEST_REFERENCE=${testname}.ddl"
+ -D "TEST_LIBRARY_DIRECTORY=${CMAKE_TEST_LIB_DIRECTORY}"
+ -P "${${EXAMPLE_PACKAGE_NAME}_RESOURCES_DIR}/runTest.cmake"
+ )
+ endif ()
+ set_tests_properties (${EXAMPLE_VARNAME}_H5DUMP-${testname} PROPERTIES DEPENDS ${EXAMPLE_VARNAME}_${testname})
+ set (last_test "${EXAMPLE_VARNAME}_H5DUMP-${testname}")
+ endif ()
+ endmacro ()
+
+ # --------------------------------------------------------------------
+ # Copy all the HDF5 files from the source directory into the test directory
+ # --------------------------------------------------------------------
+ foreach (h5_file ${dyn_examples})
+ HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/tfiles/${h5_file}.tst" "${PROJECT_BINARY_DIR}/${h5_file}.tst" "example_files")
+ if (WIN32 AND MSVC_VERSION LESS 1900 AND ${h5_file} MATCHES "h5ex_d_zfp")
+ HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/tfiles/h5ex_d_zfp.wddl" "${PROJECT_BINARY_DIR}/h5ex_d_zfp.ddl" "example_files")
+ else ()
+ HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/tfiles/${h5_file}.ddl" "${PROJECT_BINARY_DIR}/${h5_file}.ddl" "example_files")
+ endif()
+ endforeach ()
+ foreach (h5_file ${LIST_HDF5_TEST_FILES} ${LIST_OTHER_TEST_FILES})
+ HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/tfiles/${h5_file}" "${PROJECT_BINARY_DIR}/${h5_file}" "example_files")
+ endforeach ()
+ add_custom_target(${EXAMPLE_VARNAME}_example_files ALL COMMENT "Copying files needed by example tests" DEPENDS ${example_files_list})
+
+ foreach (h5_file ${dyn_examples})
+ if (${h5_file} MATCHES "h5ex_d_zfp")
+ ## special filter
+ ADD_H5_TEST (h5ex_d_zfp FILTERALL)
+ else ()
+ ADD_H5_TEST (${h5_file})
+ endif ()
+ endforeach ()
+
+endif ()