summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/abi-report.yml2
-rw-r--r--.github/workflows/cmake-bintest.yml6
-rw-r--r--.github/workflows/cmake-ctest.yml12
-rw-r--r--.github/workflows/release-files.yml24
-rw-r--r--.github/workflows/scorecard.yml2
-rw-r--r--CMakeLists.txt25
-rw-r--r--HDF5Examples/config/cmake/HDFExampleMacros.cmake26
-rw-r--r--config/cmake/HDF5ExampleCache.cmake4
-rw-r--r--config/cmake/HDF5PluginCache.cmake4
-rw-r--r--config/cmake/LIBAEC/CMakeLists.txt2
-rw-r--r--config/cmake/hdf5-config.cmake.in1
-rw-r--r--config/cmake/mccacheinit.cmake4
-rw-r--r--config/sanitizer/README.md166
-rw-r--r--config/sanitizer/afl-fuzzing.cmake108
-rw-r--r--config/sanitizer/code-coverage.cmake483
-rw-r--r--config/sanitizer/dependency-graph.cmake107
-rw-r--r--config/sanitizer/formatting.cmake68
-rw-r--r--config/sanitizer/sanitizers.cmake180
-rw-r--r--config/sanitizer/tools.cmake195
-rw-r--r--hl/tools/gif2h5/CMakeLists.txt80
-rw-r--r--hl/tools/gif2h5/CMakeTests.cmake10
-rw-r--r--hl/tools/h5watch/CMakeLists.txt34
-rw-r--r--hl/tools/h5watch/CMakeTests.cmake6
-rw-r--r--release_docs/INSTALL_CMake.txt53
-rw-r--r--release_docs/RELEASE.txt8
-rw-r--r--test/API/H5_api_link_test.c362
-rw-r--r--test/API/H5_api_link_test.h15
-rw-r--r--test/h5test.c43
-rw-r--r--test/h5test.h1
-rw-r--r--test/links.c214
-rw-r--r--test/vol.c20
-rw-r--r--tools/libtest/h5tools_test_utils.c2
-rw-r--r--tools/src/h5copy/CMakeLists.txt35
-rw-r--r--tools/src/h5diff/CMakeLists.txt85
-rw-r--r--tools/src/h5dump/CMakeLists.txt62
-rw-r--r--tools/src/h5dump/h5dump.c5
-rw-r--r--tools/src/h5format_convert/CMakeLists.txt34
-rw-r--r--tools/src/h5import/CMakeLists.txt35
-rw-r--r--tools/src/h5jam/CMakeLists.txt64
-rw-r--r--tools/src/h5ls/CMakeLists.txt38
-rw-r--r--tools/src/h5ls/h5ls.c7
-rw-r--r--tools/src/h5perf/CMakeLists.txt6
-rw-r--r--tools/src/h5repack/CMakeLists.txt35
-rw-r--r--tools/src/h5stat/CMakeLists.txt35
-rw-r--r--tools/src/h5stat/h5stat.c5
-rw-r--r--tools/src/misc/CMakeLists.txt156
-rw-r--r--tools/test/h5copy/CMakeTests.cmake40
-rw-r--r--tools/test/h5diff/CMakeTests.cmake12
-rw-r--r--tools/test/h5dump/CMakeTests.cmake40
-rw-r--r--tools/test/h5dump/CMakeTestsPBITS.cmake4
-rw-r--r--tools/test/h5dump/CMakeTestsVDS.cmake12
-rw-r--r--tools/test/h5dump/CMakeTestsXML.cmake4
-rw-r--r--tools/test/h5dump/CMakeVFDTests.cmake2
-rw-r--r--tools/test/h5format_convert/CMakeTests.cmake16
-rw-r--r--tools/test/h5import/CMakeTests.cmake20
-rw-r--r--tools/test/h5jam/CMakeTests.cmake22
-rw-r--r--tools/test/h5ls/CMakeTests.cmake10
-rw-r--r--tools/test/h5ls/CMakeTestsVDS.cmake8
-rw-r--r--tools/test/h5repack/CMakeTests.cmake78
-rw-r--r--tools/test/h5stat/CMakeTests.cmake8
-rw-r--r--tools/test/misc/CMakeTestsClear.cmake28
-rw-r--r--tools/test/misc/CMakeTestsMkgrp.cmake10
-rw-r--r--tools/test/misc/CMakeTestsRepart.cmake8
-rw-r--r--utils/tools/h5dwalk/CMakeLists.txt41
-rw-r--r--utils/tools/test/h5dwalk/CMakeTests.cmake4
65 files changed, 1953 insertions, 1283 deletions
diff --git a/.github/workflows/abi-report.yml b/.github/workflows/abi-report.yml
index 2cfb4bc..e5dded8 100644
--- a/.github/workflows/abi-report.yml
+++ b/.github/workflows/abi-report.yml
@@ -46,7 +46,7 @@ jobs:
- uses: actions/checkout@v4.1.1
- name: Get published binary (Linux)
- uses: actions/download-artifact@f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110 # v4.1.0
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-ubuntu-2204_gcc-binary
path: ${{ github.workspace }}
diff --git a/.github/workflows/cmake-bintest.yml b/.github/workflows/cmake-bintest.yml
index 2dd136c..6c1506f 100644
--- a/.github/workflows/cmake-bintest.yml
+++ b/.github/workflows/cmake-bintest.yml
@@ -35,7 +35,7 @@ jobs:
# Get files created by cmake-ctest script
- name: Get published binary (Windows)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: zip-vs2022_cl-${{ inputs.build_mode }}-binary
path: ${{ github.workspace }}/hdf5
@@ -107,7 +107,7 @@ jobs:
distribution: 'temurin'
- name: Get published binary (Linux)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-ubuntu-2204_gcc-${{ inputs.build_mode }}-binary
path: ${{ github.workspace }}
@@ -165,7 +165,7 @@ jobs:
distribution: 'temurin'
- name: Get published binary (MacOS)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-osx12-${{ inputs.build_mode }}-binary
path: ${{ github.workspace }}
diff --git a/.github/workflows/cmake-ctest.yml b/.github/workflows/cmake-ctest.yml
index dd21ed4..5ad29df 100644
--- a/.github/workflows/cmake-ctest.yml
+++ b/.github/workflows/cmake-ctest.yml
@@ -45,7 +45,7 @@ jobs:
# Get files created by release script
- name: Get zip-tarball (Windows)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: zip-tarball
path: ${{ github.workspace }}
@@ -120,7 +120,7 @@ jobs:
# Get files created by release script
- name: Get tgz-tarball (Linux)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-tarball
path: ${{ github.workspace }}
@@ -237,7 +237,7 @@ jobs:
# Get files created by release script
- name: Get tgz-tarball (MacOS)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-tarball
path: ${{ github.workspace }}
@@ -310,7 +310,7 @@ jobs:
# Get files created by release script
- name: Get tgz-tarball (Linux S3)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-tarball
path: ${{ github.workspace }}
@@ -384,7 +384,7 @@ jobs:
# Get files created by release script
- name: Get zip-tarball (Windows_intel)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: zip-tarball
path: ${{ github.workspace }}
@@ -465,7 +465,7 @@ jobs:
# Get files created by release script
- name: Get tgz-tarball (Linux_intel)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-tarball
path: ${{ github.workspace }}
diff --git a/.github/workflows/release-files.yml b/.github/workflows/release-files.yml
index 058ff12..c4fc11f 100644
--- a/.github/workflows/release-files.yml
+++ b/.github/workflows/release-files.yml
@@ -75,7 +75,7 @@ jobs:
# Get files created by tarball script
- name: Get doxygen (Linux)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: docs-doxygen
path: ${{ github.workspace }}/${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen
@@ -84,68 +84,68 @@ jobs:
run: zip -r ${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen.zip ./${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen
- name: Get tgz-tarball (Linux)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-tarball
path: ${{ github.workspace }}
- name: Get zip-tarball (Windows)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: zip-tarball
path: ${{ github.workspace }}
# Get files created by cmake-ctest script
- name: Get published binary (Windows)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: zip-vs2022_cl-binary
path: ${{ github.workspace }}
- name: Get published binary (MacOS)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-osx12-binary
path: ${{ github.workspace }}
- name: Get published binary (Linux)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-ubuntu-2204_gcc-binary
path: ${{ github.workspace }}
- name: Get published deb binary (Linux)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: deb-ubuntu-2204_gcc-binary
path: ${{ github.workspace }}
- name: Get published rpm binary (Linux)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: rpm-ubuntu-2204_gcc-binary
path: ${{ github.workspace }}
- name: Get published binary (Linux S3)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-ubuntu-2204_gcc_s3-binary
path: ${{ github.workspace }}
- name: Get published binary (Windows_intel)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: zip-vs2022_intel-binary
path: ${{ github.workspace }}
- name: Get published binary (Linux_intel)
- uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: tgz-ubuntu-2204_intel-binary
path: ${{ github.workspace }}
- name: Get published abi reports (Linux)
- uses: actions/download-artifact@f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110 # v4.1.0
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: abi-reports
path: ${{ github.workspace }}
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index ebc86c7..3f072d0 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -67,6 +67,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
- uses: github/codeql-action/upload-sarif@b7bf0a3ed3ecfa44160715d7c442788f65f0f923 # v3.23.2
+ uses: github/codeql-action/upload-sarif@8a470fddafa5cbb6266ee11b37ef4d8aae19c571 # v3.24.6
with:
sarif_file: results.sarif
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 29ce7e9..a2ebfcb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -482,7 +482,9 @@ set (H5_ENABLE_STATIC_LIB NO)
option (BUILD_SHARED_LIBS "Build Shared Libraries" ON)
set (H5_ENABLE_SHARED_LIB NO)
-# only shared libraries is true if user forces static OFF
+option (HDF5_BUILD_STATIC_TOOLS "Build Static Tools NOT Shared Tools" OFF)
+
+# only shared libraries/tools is true if user forces static OFF
if (NOT BUILD_STATIC_LIBS)
set (ONLY_SHARED_LIBS ON CACHE BOOL "Only Build Shared Libraries" FORCE)
endif ()
@@ -492,6 +494,15 @@ if (ONLY_SHARED_LIBS)
set (H5_ENABLE_STATIC_LIB NO)
set (BUILD_SHARED_LIBS ON CACHE BOOL "Build Shared Libraries" FORCE)
set (BUILD_STATIC_LIBS OFF CACHE BOOL "Build Static Libraries" FORCE)
+ if (HDF5_BUILD_STATIC_TOOLS)
+ message (WARNING "Cannot build static tools without static libraries. Building shared tools.")
+ endif ()
+ set (HDF5_BUILD_STATIC_TOOLS OFF CACHE BOOL "Build Static Tools NOT Shared Tools" FORCE)
+endif ()
+
+if (NOT BUILD_SHARED_LIBS AND NOT HDF5_BUILD_STATIC_TOOLS)
+ message (VERBOSE "Cannot build shared tools without shared libraries. Building static tools.")
+ set (HDF5_BUILD_STATIC_TOOLS ON CACHE BOOL "Build Static Tools NOT Shared Tools" FORCE)
endif ()
if (BUILD_STATIC_LIBS)
@@ -503,12 +514,6 @@ endif ()
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
-if (NOT BUILD_SHARED_LIBS)
- set (tgt_file_ext "")
-else ()
- set (tgt_file_ext "-shared")
-endif ()
-
#-----------------------------------------------------------------------------
# perl is used in some optional src and tests, check availability
find_package (Perl)
@@ -1158,7 +1163,11 @@ endif ()
if (EXISTS "${HDF5_SOURCE_DIR}/java" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/java")
option (HDF5_BUILD_JAVA "Build Java HDF5 Library" OFF)
if (HDF5_BUILD_JAVA)
- add_subdirectory (java)
+ if (NOT BUILD_SHARED_LIBS)
+ message (FATAL_ERROR "\nJava requires shared libraries!\n")
+ else ()
+ add_subdirectory (java)
+ endif ()
endif ()
endif ()
diff --git a/HDF5Examples/config/cmake/HDFExampleMacros.cmake b/HDF5Examples/config/cmake/HDFExampleMacros.cmake
index 245003c..5c425db 100644
--- a/HDF5Examples/config/cmake/HDFExampleMacros.cmake
+++ b/HDF5Examples/config/cmake/HDFExampleMacros.cmake
@@ -132,18 +132,6 @@ macro (HDF5_SUPPORT)
message (STATUS "HDF5 Fortran libs: static:${HDF5_static_Fortran_FOUND} and shared:${HDF5_shared_Fortran_FOUND}")
message (STATUS "HDF5 Java libs: ${HDF5_Java_FOUND}")
if (HDF5_FOUND)
- if (USE_SHARED_LIBS)
- if (NOT TARGET ${HDF5_NAMESPACE}h5dump-shared)
- add_executable (${HDF5_NAMESPACE}h5dump-shared IMPORTED)
- endif ()
- set (H5EX_HDF5_DUMP_EXECUTABLE $<TARGET_FILE:${HDF5_NAMESPACE}h5dump-shared>)
- else ()
- if (NOT TARGET ${HDF5_NAMESPACE}h5dump)
- add_executable (${HDF5_NAMESPACE}h5dump IMPORTED)
- endif()
- set (H5EX_HDF5_DUMP_EXECUTABLE $<TARGET_FILE:${HDF5_NAMESPACE}h5dump>)
- endif()
-
if (NOT HDF5_static_C_FOUND AND NOT HDF5_shared_C_FOUND)
#find library from non-dual-binary package
set (FIND_HDF_COMPONENTS C)
@@ -177,11 +165,21 @@ macro (HDF5_SUPPORT)
if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND)
set (H5EX_HDF5_LINK_LIBS ${H5EX_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY})
set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib)
- set_property (TARGET ${HDF5_NAMESPACE}h5dump-shared PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5dump-shared")
else ()
set (H5EX_HDF5_LINK_LIBS ${H5EX_HDF5_LINK_LIBS} ${HDF5_C_STATIC_LIBRARY})
- set_property (TARGET ${HDF5_NAMESPACE}h5dump PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5dump")
endif ()
+ if (HDF5_VERSION VERSION_LESS "1.14.4" AND NOT HDF5_shared_C_FOUND)
+ if (NOT TARGET ${HDF5_NAMESPACE}h5dump-shared)
+ add_executable (${HDF5_NAMESPACE}h5dump-shared IMPORTED)
+ endif ()
+ set (H5EX_HDF5_DUMP_EXECUTABLE $<TARGET_FILE:${HDF5_NAMESPACE}h5dump-shared>)
+ else ()
+ if (NOT TARGET ${HDF5_NAMESPACE}h5dump)
+ add_executable (${HDF5_NAMESPACE}h5dump IMPORTED)
+ endif()
+ set (H5EX_HDF5_DUMP_EXECUTABLE $<TARGET_FILE:${HDF5_NAMESPACE}h5dump>)
+ endif()
+
if (NOT HDF5_static_Fortran_FOUND AND NOT HDF5_shared_Fortran_FOUND)
set (HDF_BUILD_FORTRAN OFF CACHE BOOL "Build FORTRAN support" FORCE)
message (STATUS "HDF5 Fortran libs not found - disable build of Fortran examples")
diff --git a/config/cmake/HDF5ExampleCache.cmake b/config/cmake/HDF5ExampleCache.cmake
index 7c3bf13..9b526ee 100644
--- a/config/cmake/HDF5ExampleCache.cmake
+++ b/config/cmake/HDF5ExampleCache.cmake
@@ -69,6 +69,6 @@ endif ()
message (STATUS "HDF5 Example link libs: ${H5EX_HDF5_LINK_LIBS} Includes: ${H5EX_HDF5_INCLUDE_DIRS}")
set (HDF5_TOOLS_DIR ${CMAKE_TEST_OUTPUT_DIRECTORY} CACHE STRING "HDF5 Directory for all Executables" FORCE)
-set (H5EX_HDF5_DUMP_EXECUTABLE $<TARGET_FILE:h5dump${tgt_file_ext}> CACHE STRING "HDF5 h5dump target" FORCE)
-set (H5EX_HDF5_REPACK_EXECUTABLE $<TARGET_FILE:h5repack${tgt_file_ext}> CACHE STRING "HDF5 h5repack target" FORCE)
+set (H5EX_HDF5_DUMP_EXECUTABLE $<TARGET_FILE:h5dump> CACHE STRING "HDF5 h5dump target" FORCE)
+set (H5EX_HDF5_REPACK_EXECUTABLE $<TARGET_FILE:h5repack> CACHE STRING "HDF5 h5repack target" FORCE)
diff --git a/config/cmake/HDF5PluginCache.cmake b/config/cmake/HDF5PluginCache.cmake
index 7cdaf02..e96c45d 100644
--- a/config/cmake/HDF5PluginCache.cmake
+++ b/config/cmake/HDF5PluginCache.cmake
@@ -15,8 +15,8 @@ set (H5PL_HDF5_LINK_LIBS ${HDF5_LIBSH_TARGET} CACHE STRING "HDF5 target" FORCE)
set (H5PL_HDF5_INCLUDE_DIRS "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR}" CACHE PATH "HDF5 include dirs" FORCE)
set (H5PL_HDF5_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE STRING "HDF5 build folder" FORCE)
-set (H5PL_HDF5_DUMP_EXECUTABLE $<TARGET_FILE:h5dump-shared> CACHE STRING "HDF5 h5dump target" FORCE)
-set (H5PL_HDF5_REPACK_EXECUTABLE $<TARGET_FILE:h5repack-shared> CACHE STRING "HDF5 h5repack target" FORCE)
+set (H5PL_HDF5_DUMP_EXECUTABLE $<TARGET_FILE:h5dump> CACHE STRING "HDF5 h5dump target" FORCE)
+set (H5PL_HDF5_REPACK_EXECUTABLE $<TARGET_FILE:h5repack> CACHE STRING "HDF5 h5repack target" FORCE)
if (NOT DEFINED H5PL_ALLOW_EXTERNAL_SUPPORT)
set (H5PL_ALLOW_EXTERNAL_SUPPORT "${HDF5_ALLOW_EXTERNAL_SUPPORT}" CACHE STRING "Allow External Library Building (NO GIT TGZ)" FORCE)
diff --git a/config/cmake/LIBAEC/CMakeLists.txt b/config/cmake/LIBAEC/CMakeLists.txt
index e118438..379902b 100644
--- a/config/cmake/LIBAEC/CMakeLists.txt
+++ b/config/cmake/LIBAEC/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 3.10)
+cmake_minimum_required (VERSION 3.18)
PROJECT (LIBAEC C)
#-----------------------------------------------------------------------------
diff --git a/config/cmake/hdf5-config.cmake.in b/config/cmake/hdf5-config.cmake.in
index b04b201..9874115 100644
--- a/config/cmake/hdf5-config.cmake.in
+++ b/config/cmake/hdf5-config.cmake.in
@@ -52,6 +52,7 @@ set (${HDF5_PACKAGE_NAME}_BUILD_DIMENSION_SCALES_WITH_NEW_REF @DIMENSION_SCALES_
#-----------------------------------------------------------------------------
set (${HDF5_PACKAGE_NAME}_BUILD_TOOLS @HDF5_BUILD_TOOLS@)
set (${HDF5_PACKAGE_NAME}_BUILD_HL_GIF_TOOLS @HDF5_BUILD_HL_GIF_TOOLS@)
+set (${HDF5_PACKAGE_NAME}_BUILD_STATIC_TOOLS @HDF5_BUILD_STATIC_TOOLS@)
#-----------------------------------------------------------------------------
set (${HDF5_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@)
set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT @HDF5_ENABLE_SZIP_SUPPORT@)
diff --git a/config/cmake/mccacheinit.cmake b/config/cmake/mccacheinit.cmake
index 5b41167..0347f6e 100644
--- a/config/cmake/mccacheinit.cmake
+++ b/config/cmake/mccacheinit.cmake
@@ -33,9 +33,9 @@ set (HDF5_BUILD_EXAMPLES ON CACHE BOOL "Build HDF5 Library Examples" FORCE)
set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE)
-set (HDF5_ENABLE_SZIP_SUPPORT ON CACHE BOOL "Use SZip Filter" FORCE)
+set (HDF5_ENABLE_SZIP_SUPPORT OFF CACHE BOOL "Use SZip Filter" FORCE)
-set (HDF5_ENABLE_SZIP_ENCODING ON CACHE BOOL "Use SZip Encoding" FORCE)
+set (HDF5_ENABLE_SZIP_ENCODING OFF CACHE BOOL "Use SZip Encoding" FORCE)
set (MPIEXEC_MAX_NUMPROCS "4" CACHE STRING "Minimum number of processes for HDF parallel tests" FORCE)
diff --git a/config/sanitizer/README.md b/config/sanitizer/README.md
index e314145..eee157b 100644
--- a/config/sanitizer/README.md
+++ b/config/sanitizer/README.md
@@ -1,11 +1,10 @@
# CMake Scripts <!-- omit in toc -->
-[![pipeline status](https://git.stabletec.com/other/cmake-scripts/badges/master/pipeline.svg)](https://git.stabletec.com/other/cmake-scripts/commits/master)
-[![license](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://git.stabletec.com/other/cmake-scripts/blob/master/LICENSE)
+[![pipeline status](https://git.stabletec.com/other/cmake-scripts/badges/main/pipeline.svg)](https://git.stabletec.com/other/cmake-scripts/commits/main)
+[![license](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://git.stabletec.com/other/cmake-scripts/blob/main/LICENSE)
This is a collection of quite useful scripts that expand the possibilities for building software with CMake, by making some things easier and otherwise adding new build types
-- [C++ Standards `c++-standards.cmake`](#c-standards-c-standardscmake)
- [Sanitizer Builds `sanitizers.cmake`](#sanitizer-builds-sanitizerscmake)
- [Code Coverage `code-coverage.cmake`](#code-coverage-code-coveragecmake)
- [Added Targets](#added-targets)
@@ -15,28 +14,15 @@ This is a collection of quite useful scripts that expand the possibilities for b
- [1b - Via target commands](#1b---via-target-commands)
- [Example 2: Target instrumented, but with regex pattern of files to be excluded from report](#example-2-target-instrumented-but-with-regex-pattern-of-files-to-be-excluded-from-report)
- [Example 3: Target added to the 'ccov' and 'ccov-all' targets](#example-3-target-added-to-the-ccov-and-ccov-all-targets)
-- [Compiler Options `compiler-options.cmake`](#compiler-options-compiler-optionscmake)
+- [AFL Fuzzing Instrumentation `afl-fuzzing.cmake`](#afl-fuzzing-instrumentation-afl-fuzzingcmake)
+ - [Usage](#usage-1)
- [Dependency Graph `dependency-graph.cmake`](#dependency-graph-dependency-graphcmake)
- [Required Arguments](#required-arguments)
- - [OUTPUT_TYPE *STR*](#output_type-str)
+ - [OUTPUT\_TYPE *STR*](#output_type-str)
- [Optional Arguments](#optional-arguments)
- - [ADD_TO_DEP_GRAPH](#add_to_dep_graph)
- - [TARGET_NAME *STR*](#target_name-str)
- - [OUTPUT_DIR *STR*](#output_dir-str)
-- [Doxygen `doxygen.cmake`](#doxygen-doxygencmake)
- - [Optional Arguments](#optional-arguments-1)
- - [ADD_TO_DOC](#add_to_doc)
- - [INSTALLABLE](#installable)
- - [PROCESS_DOXYFILE](#process_doxyfile)
- - [TARGET_NAME *STR*](#target_name-str-1)
- - [OUTPUT_DIR *STR*](#output_dir-str-1)
- - [INSTALL_PATH *STR*](#install_path-str)
- - [DOXYFILE_PATH *STR*](#doxyfile_path-str)
-- [Prepare the Catch Test Framework `prepare_catch.cmake`](#prepare-the-catch-test-framework-prepare_catchcmake)
- - [Optional Arguments](#optional-arguments-2)
- - [COMPILED_CATCH](#compiled_catch)
- - [CATCH1](#catch1)
- - [CLONE](#clone)
+ - [ADD\_TO\_DEP\_GRAPH](#add_to_dep_graph)
+ - [TARGET\_NAME *STR*](#target_name-str)
+ - [OUTPUT\_DIR *STR*](#output_dir-str)
- [Tools `tools.cmake`](#tools-toolscmake)
- [clang-tidy](#clang-tidy)
- [include-what-you-use](#include-what-you-use)
@@ -45,15 +31,9 @@ This is a collection of quite useful scripts that expand the possibilities for b
- [clang-format](#clang-format)
- [cmake-format](#cmake-format)
-## C++ Standards [`c++-standards.cmake`](c++-standards.cmake)
-
-Using the functions `cxx_11()`, `cxx_14()`, `cxx_17()` or `cxx_20()` this adds the appropriate flags for both unix and MSVC compilers, even for those before 3.11 with improper support.
-
-These obviously force the standard to be required, and also disables compiler-specific extensions, ie `--std=gnu++11`. This helps to prevent fragmenting the code base with items not available elsewhere, adhering to the agreed C++ standards only.
-
## Sanitizer Builds [`sanitizers.cmake`](sanitizers.cmake)
-Sanitizers are tools that perform checks during a program's runtime and return issues, and as such, along with unit testing, code coverage and static analysis, are another tool to add to the programmer's toolbox. And, of course, like the previous tools, they are simple to add to any project using CMake, allowing any project and developer to quickly and easily use them.
+Sanitizers are tools that perform checks during a program’s runtime and returns issues, and as such, along with unit testing, code coverage and static analysis, is another tool to add to the programmers toolbox. And of course, like the previous tools, are tragically simple to add into any project using CMake, allowing any project and developer to quickly and easily use.
A quick rundown of the tools available, and what they do:
- [LeakSanitizer](https://clang.llvm.org/docs/LeakSanitizer.html) detects memory leaks, or issues where memory is allocated and never deallocated, causing programs to slowly consume more and more memory, eventually leading to a crash.
@@ -72,20 +52,20 @@ A quick rundown of the tools available, and what they do:
- Division by zero
- Unreachable code
- [MemorySanitizer](https://clang.llvm.org/docs/MemorySanitizer.html) detects uninitialized reads.
+- [Control Flow Integrity](https://clang.llvm.org/docs/ControlFlowIntegrity.html) is designed to detect certain forms of undefined behaviour that can potentially allow attackers to subvert the program's control flow.
-These are used by declaring the `USE_SANITIZER` CMake variable as one of:
+These are used by declaring the `USE_SANITIZER` CMake variable as string containing any of:
- Address
- Memory
- MemoryWithOrigins
- Undefined
- Thread
-- Address;Undefined
-- Undefined;Address
- Leak
+- CFI
-## Code Coverage [`code-coverage.cmake`](code-coverage.cmake)
+Multiple values are allowed, e.g. `-DUSE_SANITIZER=Address,Leak` but some sanitizers cannot be combined together, e.g.`-DUSE_SANITIZER=Address,Memory` will result in configuration error. The delimiter character is not required and `-DUSE_SANITIZER=AddressLeak` would work as well.
-![Code Coverage Examples](img/code-cov.png)
+## Code Coverage [`code-coverage.cmake`](code-coverage.cmake)
> In computer science, test coverage is a measure used to describe the degree to which the source code of a program is executed when a particular test suite runs. A program with high test coverage, measured as a percentage, has had more of its source code executed during testing, which suggests it has a lower chance of containing undetected software bugs compared to a program with low test coverage. Many different metrics can be used to calculate test coverage; some of the most basic are the percentage of program subroutines and the percentage of program statements called during execution of the test suite.
>
@@ -101,7 +81,7 @@ To enable, turn on the `CODE_COVERAGE` variable.
- GCOV/LCOV:
- ccov : Generates HTML code coverage report for every target added with 'AUTO' parameter.
- - ccov-${TARNGET_NAME} : Generates HTML code coverage report for the associated named target.
+ - ccov-${TARGET_NAME} : Generates HTML code coverage report for the associated named target.
- ccov-all : Generates HTML code coverage report, merging every target added with 'ALL' parameter into a single detailed report.
- ccov-all-capture : Generates an all-merged.info file, for use with coverage dashboards (e.g. codecov.io, coveralls).
- LLVM-COV:
@@ -156,7 +136,7 @@ target_code_coverage(theExe) # As an executable target, adds the 'ccov-theExe' t
```
add_executable(theExe main.cpp non_covered.cpp)
-target_code_coverage(theExe EXCLUDE non_covered.cpp) # As an executable target, the reports will exclude the non-covered.cpp file.
+target_code_coverage(theExe EXCLUDE non_covered.cpp) # As an executable target, the reports will exclude the non_covered.cpp file.
```
#### Example 3: Target added to the 'ccov' and 'ccov-all' targets
@@ -168,6 +148,40 @@ add_executable(theExe main.cpp non_covered.cpp)
target_code_coverage(theExe AUTO ALL EXCLUDE non_covered.cpp test/*) # As an executable target, adds to the 'ccov' and ccov-all' targets, and the reports will exclude the non-covered.cpp file, and any files in a test/ folder.
```
+## AFL Fuzzing Instrumentation [`afl-fuzzing.cmake`](afl-fuzzing.cmake)
+
+> American fuzzy lop is a security-oriented fuzzer that employs a novel type of compile-time instrumentation and genetic algorithms to automatically discover clean, interesting test cases that trigger new internal states in the targeted binary. This substantially improves the functional coverage for the fuzzed code. The compact synthesized corpora produced by the tool are also useful for seeding other, more labor- or resource-intensive testing regimes down the road.
+>
+> [american fuzzy lop](https://lcamtuf.coredump.cx/afl/)
+
+NOTE: This actually works based off the still-developed daughter project [AFL++](https://aflplus.plus/).
+
+### Usage
+
+To enable the use of AFL instrumentation, this file needs to be included into the CMake scripts at any point *before* any of the compilers are setup by CMake, typically at/before the first call to project(), or any part before compiler detection/validation occurs. This is since CMake does not support changing the compiler after it has been set:
+
+```
+cmake_minimum_required(VERSION 3.4)
+include(cmake/afl-fuzzing.cmake)
+project(Example C CXX)
+```
+
+Using `-DAFL=ON` will search for and switch to the AFL++ compiler wrappers that will instrument builds, or error if it cannot.
+
+Using `-DAFL_MODE=<MODE>` will attempt to use the specified instrumentation type, see [here](https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/fuzzing_in_depth.md). Options are:
+- LTO
+- LLVM
+- GCC-PLUGIN
+- CLANG
+- GCC
+
+Using `-DAFL_ENV_OPTIONS=<...;...>` allows adding any number of AFL++'s instrumentation enabled via environment variables, and these will be prefixed to the build calls (see `afl-cc -hh`).
+
+As an example, a CMake configuration such as this:
+```cmake .. -DAFL_MODE=LTO -DAFL_ENV_OPTIONS=AFL_LLVM_THREADSAFE_INST=1;AFL_LLVM_LAF_ALL=1```
+would result in build commands such as this:
+```AFL_LLVM_THREADSAFE_INST=1 AFL_LLVM_LAF_ALL=1 afl-clang-lto --afl-lto <...>```
+
## Compiler Options [`compiler-options.cmake`](compiler-options.cmake)
Allows for easy use of some pre-made compiler options for the major compilers.
@@ -205,75 +219,62 @@ The name to give the doc target. (Default: doc-${PROJECT_NAME})
#### OUTPUT_DIR *STR*
The directory to place the generated output
-## Doxygen [`doxygen.cmake`](doxygen.cmake)
-
-Builds doxygen documentation with a default 'Doxyfile.in' or with a specified one, and can make the results installable (under the `doc` install target)
-
-This can only be used once per project, as each target generated is as `doc-${PROJECT_NAME}` unless TARGET_NAME is specified.
-
-### Optional Arguments
-
-#### ADD_TO_DOC
-If specified, adds this generated target to be a dependency of the more general `doc` target.
-
-#### INSTALLABLE
-Adds the generated documentation to the generic `install` target, under the `documentation` installation group.
-
-#### PROCESS_DOXYFILE
-If set, then will process the found Doxyfile through the CMAKE `configure_file` function for macro replacements before using it. (@ONLY)
-
-#### TARGET_NAME *STR*
-The name to give the doc target. (Default: doc-${PROJECT_NAME})
-
-#### OUTPUT_DIR *STR*
-The directory to place the generated output. (Default: ${CMAKE_CURRENT_BINARY_DIR}/doc)
+## Tools [`tools.cmake`](tools.cmake)
-#### INSTALL_PATH *STR*
-The path to install the documenttation under. (if not specified, defaults to 'share/${PROJECT_NAME})
+The three tools in this are used via two provided functions each, for example for clang-tidy:
+```
+add_executable(big_test)
-#### DOXYFILE_PATH *STR*
-The given doxygen file to use/process. (Defaults to'${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile')
+clang_tidy()
-## Prepare the Catch Test Framework [`prepare_catch.cmake`](prepare_catch.cmake)
+# Sources provided here are run with clang-tidy with no options
+add_executable(test2 main2.cpp)
+target_sources(big_test test2.c test2.cpp)
-The included `prepare_catch` function contained within attempts to add the infrastructure necessary for automatically adding C/C++ tests using the Catch2 library, including either an interface or pre-compiled 'catch' target library.
+clang_tidy(-header-filter='${CMAKE_SOURCE_DIR}/*')
-It first attempts to find the header on the local machine, and failing that, clones the single header variant for use. It does make the determination between pre-C++11 and will use Catch1.X rather than Catch2 (when cloned), automatically or forced.. Adds a subdirectory of tests/ if it exists from the macro's calling location.
+# Sources provided here are run with clang-tidy with the header-filter options provided to it from above
+add_execuable(test1 main1.cpp)
+target_sources(big_test test1.c test1.cpp)
-### Optional Arguments
+reset_clang_tidy()
-#### COMPILED_CATCH
-If this option is specified, then generates the 'catch' target as a library with catch already pre-compiled as part of the library. Otherwise acts just an interface library for the header location.
+# Sources provided here are not run with clang-tidy at all
+add_executable(test3 main3.cpp)
+target_sources(big_test test3.c test3.cpp)
-#### CATCH1
-Force the use of Catch1.X, rather than auto-detecting the C++ version in use.
+clang_tidy()
-#### CLONE
-Force cloning of Catch, rather than attempting to use a locally-found variant.
-
-## Tools [`tools.cmake`](tools.cmake)
+# Sources provided here are run with clang-tidy with no options
+add_executable(test4 main4.cpp)
+target_sources(big_test test4.c test4.cpp)
+```
### clang-tidy
> clang-tidy is a clang-based C++ “linter” tool. Its purpose is to provide an extensible framework for diagnosing and fixing typical programming errors, like style violations, interface misuse, or bugs that can be deduced via static analysis. clang-tidy is modular and provides a convenient interface for writing new checks.
>
-> [clang-tidy page](https://clang.llvm.org/extra/clang-tidy/)
-
-When detected, [clang-tidy](https://clang.llvm.org/extra/clang-tidy/) can be enabled by using the option of `-DCLANG_TIDY=ON`, as it is disabled by default.
+> [clang-tidy](https://clang.llvm.org/extra/clang-tidy/)
-To use, add the `clang_tidy()` function, with the arguments being the options to pass to the clang tidy program, such as '-checks=*'.
+To use, add the `clang_tidy()` macro, with the arguments being the options passed to the clang-tidy call in the form of `clang-tidy ${ARGS}`. The settings used with clang-tidy can be changed by calling `clang_tidy()` macro again. It can be turned off by calling the `reset_clang_tidy()` macro.
### include-what-you-use
-This tool helps to organize headers for all files encompass all items being used in that file, without accidentally relying upon headers deep down a chain of other headers. This is disabled by default, and can be enabled via have the program installed and adding `-DIWYU=ON`.
+> "Include what you use" means this: for every symbol (type, function variable, or macro) that you use in foo.cc, either foo.cc or foo.h should #include a .h file that exports the declaration of that symbol. The include-what-you-use tool is a program that can be built with the clang libraries in order to analyze #includes of source files to find include-what-you-use violations, and suggest fixes for them.
+>
+> The main goal of include-what-you-use is to remove superfluous #includes. It does this both by figuring out what #includes are not actually needed for this file (for both .cc and .h files), and replacing #includes with forward-declares when possible.
+>
+> [include-what-you-use](https://include-what-you-use.org/)
-To use, add the `include_what_you_use()` function, with the arguments being the options to pass to the program.
+To use, add the `include_what_you_use()` macro, with the arguments being the options passed to the include_what_you_use call in the form of `include-what-you-use ${ARGS}`. The settings used with include-what-you-use can be changed by calling `include_what_you_use()` macro again. It can be turned off by calling the `reset_include_what_you_use()` macro.
### cppcheck
-This tool is another static analyzer in the vein of clang-tidy, which focuses on having no false positives. This is by default disabled, and can be enabled via have the program installed and adding `-DCPPCHECK=ON`.
+> Cppcheck is a static analysis tool for C/C++ code. It provides unique code analysis to detect bugs and focuses on detecting undefined behaviour and dangerous coding constructs. The goal is to have very few false positives. Cppcheck is designed to be able to analyze your C/C++ code even if it has non-standard syntax (common in embedded projects).
+>
+> [cppcheck](http://cppcheck.net/)
-To use, add the `cppcheck()` function, with the arguments being the options to pass to the program.
+To use, add the `cppcheck()` macro, with the arguments being the options passed to the cppcheck call in the form of `cppcheck ${ARGS}`. The settings used with iwyu can be changed by calling `cppcheck()` macro again. It can be turned off by calling the `reset_cppcheck()` macro.
## Formatting [`formatting.cmake`](formatting.cmake)
@@ -305,4 +306,3 @@ file(GLOB_RECURSE CMAKE_FILES
cmake_format(TARGET_NAME ${CMAKE_FILES})
```
-
diff --git a/config/sanitizer/afl-fuzzing.cmake b/config/sanitizer/afl-fuzzing.cmake
new file mode 100644
index 0000000..67d3f21
--- /dev/null
+++ b/config/sanitizer/afl-fuzzing.cmake
@@ -0,0 +1,108 @@
+#
+# Copyright (C) 2022 by George Cave - gcave@stablecoder.ca
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+# USAGE: To enable the use of AFL instrumentation, this file needs to be
+# included into the CMake scripts at any point *before* any of the compilers are
+# setup by CMake, typically at/before the first call to project(), or any part
+# before compiler detection/validation occurs.
+#
+# This is since CMake does not support changing the compiler after it has been
+# set.
+#
+# For example for CMakeLists.txt:
+# ~~~
+# cmake_minimum_required(VERSION 3.15)
+# include(cmake/afl-fuzzing.cmake)
+# project(FoE-Engine C CXX)
+# ~~~
+# And then configuring CMake with: `cmake .. -DAFL_MODE=LTO
+# -DAFL_ENV_OPTIONS=AFL_LLVM_THREADSAFE_INST=1;AFL_LLVM_LAF_ALL=1`
+#
+# Would setup the AFL compiler to use the LTO mode (afl-clang-lto), and prefix
+# any build calls to have the two given environment settings, ie:
+# `AFL_LLVM_THREADSAFE_INST=1 AFL_LLVM_LAF_ALL=1 afl-clang-lto <...>`
+#
+# NOTE: If using multiple ENV_OPTIONS, delimit via semi-colons and it will be
+# separated correctly.
+
+# Options
+option(AFL "Switch to using an AFL compiler" OFF)
+set(AFL_MODE
+ ""
+ CACHE
+ STRING
+ "Use a specific AFL instrumentation mode: LTO, LLVM, GCC-PLUGIN, CLANG, GCC"
+)
+set(AFL_ENV_OPTIONS
+ ""
+ CACHE STRING
+ "Add environmental settings to build calls (check `afl-cc -hh`)")
+
+# Sets up for AFL fuzzing by detecting finding and using AFL compilers and
+# setting a few flags and environmental build flags as requested.
+if(AFL)
+ find_program(AFL_C_COMPILER afl-cc)
+ find_program(AFL_CXX_COMPILER afl-c++)
+
+ if(AFL_C_COMPILER AND AFL_CXX_COMPILER)
+ if((CMAKE_C_COMPILER AND NOT CMAKE_C_COMPILER STREQUAL AFL_C_COMPILER)
+ OR (CMAKE_CXX_COMPILER AND NOT CMAKE_CXX_COMPILER STREQUAL
+ AFL_CXX_COMPILER))
+ # CMake doesn't support changing compilers after they've been set
+ message(
+ FATAL_ERROR
+ "Cannot change to AFL compilers after they have been previously set. Clear the cache, reconfigure and ensure setup_afl is called before the first C or CXX compiler is set, typically before the first project() call."
+ )
+ else()
+ # Set the AFL compiler
+ message(STATUS "Changed to AFL compiler")
+ set(CMAKE_C_COMPILER ${AFL_C_COMPILER})
+ set(CMAKE_CXX_COMPILER ${AFL_CXX_COMPILER})
+
+ # Set a specific AFL mode for both compile and link stages
+ if(AFL_MODE MATCHES "[Ll][Tt][Oo]")
+ message(STATUS "Set AFL to Clang-LTO mode")
+ add_compile_options(--afl-lto)
+ add_link_options(--afl-lto)
+ elseif(AFL_MODE MATCHES "[Ll][Ll][Vv][Mm]")
+ message(STATUS "Set AFL to Clang-LLVM mode")
+ add_compile_options(--afl-llvm)
+ add_link_options(--afl-llvm)
+ elseif(AFL_MODE MATCHES "[Gg][Cc][Cc][-_][Pp][Ll][Uu][Gg][Ii][Nn]")
+ message(STATUS "Set AFL to GCC-Plugin mode")
+ add_compile_options(--afl-gcc-plugin)
+ add_link_options(--afl-gcc-plugin)
+ elseif(AFL_MODE MATCHES "[Ll][Tt][Oo]")
+ message(STATUS "Set AFL to Clang mode")
+ add_compile_options(--afl-clang)
+ add_link_options(--afl-clang)
+ elseif(AFL_MODE MATCHES "[Ll][Tt][Oo]")
+ message(STATUS "Set AFL to GCC mode")
+ add_compile_options(--afl-gcc)
+ add_link_options(--afl-gcc)
+ endif()
+
+ # Add specified environment options
+ if(AFL_ENV_OPTIONS)
+ set(CMAKE_C_COMPILER_LAUNCHER ${CMAKE_C_COMPILER_LAUNCHER}
+ ${AFL_ENV_OPTIONS})
+ set(CMAKE_CXX_COMPILER_LAUNCHER ${CMAKE_CXX_COMPILER_LAUNCHER}
+ ${AFL_ENV_OPTIONS})
+ endif()
+ endif()
+ else()
+ message(FATAL_ERROR "Usable AFL compiler was not found!")
+ endif()
+endif()
diff --git a/config/sanitizer/code-coverage.cmake b/config/sanitizer/code-coverage.cmake
index 4a927af..54a33de 100644
--- a/config/sanitizer/code-coverage.cmake
+++ b/config/sanitizer/code-coverage.cmake
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2018 by George Cave - gcave@stablecoder.ca
+# Copyright (C) 2018-2020 by George Cave - gcave@stablecoder.ca
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
@@ -80,36 +80,44 @@ option(
OFF)
# Programs
-if(WIN32)
- find_program(LLVM_COV_PATH llvm-cov PATHS ENV VS2019INSTALLDIR PATH_SUFFIXES "VC/Tools/Llvm/x64/bin")
- find_program(LLVM_PROFDATA_PATH llvm-profdata PATHS ENV VS2019INSTALLDIR PATH_SUFFIXES "VC/Tools/Llvm/x64/bin")
- find_program(LCOV_PATH lcov PATHS ENV VS2019INSTALLDIR PATH_SUFFIXES "VC/Tools/Llvm/x64/bin")
- find_program(GENHTML_PATH genhtml PATHS ENV VS2019INSTALLDIR PATH_SUFFIXES "VC/Tools/Llvm/x64/bin")
-else()
- find_program(LLVM_COV_PATH llvm-cov)
- find_program(LLVM_PROFDATA_PATH llvm-profdata)
- find_program(LCOV_PATH lcov)
- find_program(GENHTML_PATH genhtml)
-endif()
+find_program(LLVM_COV_PATH llvm-cov)
+find_program(LLVM_PROFDATA_PATH llvm-profdata)
+find_program(LCOV_PATH lcov)
+find_program(GENHTML_PATH genhtml)
+# Hide behind the 'advanced' mode flag for GUI/ccmake
+mark_as_advanced(FORCE LLVM_COV_PATH LLVM_PROFDATA_PATH LCOV_PATH GENHTML_PATH)
# Variables
set(CMAKE_COVERAGE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/ccov)
+set_property(GLOBAL PROPERTY JOB_POOLS ccov_serial_pool=1)
# Common initialization/checks
if(CODE_COVERAGE AND NOT CODE_COVERAGE_ADDED)
set(CODE_COVERAGE_ADDED ON)
# Common Targets
- add_custom_target(
- ccov-preprocessing
- COMMAND ${CMAKE_COMMAND} -E make_directory
- ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}
- DEPENDS ccov-clean)
+ file(MAKE_DIRECTORY ${CMAKE_COVERAGE_OUTPUT_DIRECTORY})
- if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_C_COMPILER_ID MATCHES "[Cc]lang" OR CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang")
- # Messages
+ if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_C_COMPILER_ID MATCHES "(Apple)?[Cc]lang"
+ OR CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?[Cc]lang")
message(STATUS "Building with llvm Code Coverage Tools")
+ if(CMAKE_C_COMPILER_ID MATCHES "AppleClang" OR CMAKE_CXX_COMPILER_ID
+ MATCHES "AppleClang")
+ # When on macOS and using the Apple-provided toolchain, use the
+ # XCode-provided llvm toolchain via `xcrun`
+ message(
+ STATUS
+ "Building with XCode-provided llvm code coverage tools (via `xcrun`)")
+ set(LLVM_COV_PATH xcrun llvm-cov)
+ set(LLVM_PROFDATA_PATH xcrun llvm-profdata)
+ else()
+ # Use the regular llvm toolchain
+ message(STATUS "Building with llvm code coverage tools")
+ endif()
+
if(NOT LLVM_COV_PATH)
message(FATAL_ERROR "llvm-cov not found! Aborting.")
else()
@@ -128,10 +136,21 @@ if(CODE_COVERAGE AND NOT CODE_COVERAGE_ADDED)
endif()
# Targets
- add_custom_target(
- ccov-clean
- COMMAND rm -f ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list
- COMMAND rm -f ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/profraw.list)
+ if(${CMAKE_VERSION} VERSION_LESS "3.17.0")
+ add_custom_target(
+ ccov-clean
+ COMMAND ${CMAKE_COMMAND} -E remove -f
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list
+ COMMAND ${CMAKE_COMMAND} -E remove -f
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/profraw.list)
+ else()
+ add_custom_target(
+ ccov-clean
+ COMMAND ${CMAKE_COMMAND} -E rm -f
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list
+ COMMAND ${CMAKE_COMMAND} -E rm -f
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/profraw.list)
+ endif()
# Used to get the shared object file list before doing the main all-
# processing
@@ -189,44 +208,74 @@ endif()
# ccov-report : Generates HTML code coverage report for every target added with 'AUTO' parameter.
# ccov-${TARGET_NAME} : Generates HTML code coverage report.
# ccov-report-${TARGET_NAME} : Prints to command line summary per-file coverage information.
+# ccov-export-${TARGET_NAME} : Exports the coverage report to a JSON file.
# ccov-show-${TARGET_NAME} : Prints to command line detailed per-line coverage information.
# ccov-all : Generates HTML code coverage report, merging every target added with 'ALL' parameter into a single detailed report.
# ccov-all-report : Prints summary per-file coverage information for every target added with ALL' parameter to the command line.
+# ccov-all-export : Exports the coverage report to a JSON file.
#
# Required:
# TARGET_NAME - Name of the target to generate code coverage for.
# Optional:
+# PUBLIC - Sets the visibility for added compile options to targets to PUBLIC instead of the default of PRIVATE.
+# INTERFACE - Sets the visibility for added compile options to targets to INTERFACE instead of the default of PRIVATE.
+# PLAIN - Do not set any target visibility (backward compatibility with old cmake projects)
# AUTO - Adds the target to the 'ccov' target so that it can be run in a batch with others easily. Effective on executable targets.
# ALL - Adds the target to the 'ccov-all' and 'ccov-all-report' targets, which merge several executable targets coverage data to a single report. Effective on executable targets.
# EXTERNAL - For GCC's lcov, allows the profiling of 'external' files from the processing directory
-# EXCLUDE <REGEX_PATTERNS> - Excludes files of the patterns provided from coverage. **These do not copy to the 'all' targets.**
+# COVERAGE_TARGET_NAME - For executables ONLY, changes the outgoing target name so instead of `ccov-${TARGET_NAME}` it becomes `ccov-${COVERAGE_TARGET_NAME}`.
+# EXCLUDE <PATTERNS> - Excludes files of the patterns provided from coverage. Note that GCC/lcov excludes by glob pattern, and clang/LLVM excludes via regex! **These do not copy to the 'all' targets.**
# OBJECTS <TARGETS> - For executables ONLY, if the provided targets are shared libraries, adds coverage information to the output
+# PRE_ARGS <ARGUMENTS> - For executables ONLY, prefixes given arguments to the associated ccov-* executable call ($<PRE_ARGS> ccov-*)
+# ARGS <ARGUMENTS> - For executables ONLY, appends the given arguments to the associated ccov-* executable call (ccov-* $<ARGS>)
# ~~~
function(target_code_coverage TARGET_NAME)
# Argument parsing
- set(options AUTO ALL EXTERNAL)
- set(multi_value_keywords EXCLUDE OBJECTS)
- cmake_parse_arguments(target_code_coverage "${options}" ""
- "${multi_value_keywords}" ${ARGN})
+ set(options AUTO ALL EXTERNAL PUBLIC INTERFACE PLAIN)
+ set(single_value_keywords COVERAGE_TARGET_NAME)
+ set(multi_value_keywords EXCLUDE OBJECTS PRE_ARGS ARGS)
+ cmake_parse_arguments(
+ target_code_coverage "${options}" "${single_value_keywords}"
+ "${multi_value_keywords}" ${ARGN})
+
+ # Set the visibility of target functions to PUBLIC, INTERFACE or default to
+ # PRIVATE.
+ if(target_code_coverage_PUBLIC)
+ set(TARGET_VISIBILITY PUBLIC)
+ set(TARGET_LINK_VISIBILITY PUBLIC)
+ elseif(target_code_coverage_INTERFACE)
+ set(TARGET_VISIBILITY INTERFACE)
+ set(TARGET_LINK_VISIBILITY INTERFACE)
+ elseif(target_code_coverage_PLAIN)
+ set(TARGET_VISIBILITY PUBLIC)
+ set(TARGET_LINK_VISIBILITY)
+ else()
+ set(TARGET_VISIBILITY PRIVATE)
+ set(TARGET_LINK_VISIBILITY PRIVATE)
+ endif()
+
+ if(NOT target_code_coverage_COVERAGE_TARGET_NAME)
+ # If a specific name was given, use that instead.
+ set(target_code_coverage_COVERAGE_TARGET_NAME ${TARGET_NAME})
+ endif()
if(CODE_COVERAGE)
# Add code coverage instrumentation to the target's linker command
- if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_C_COMPILER_ID MATCHES "[Cc]lang" OR CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang")
- target_compile_options(${TARGET_NAME} PRIVATE -fprofile-instr-generate
- -fcoverage-mapping --coverage)
- set_property(
- TARGET ${TARGET_NAME}
- APPEND_STRING
- PROPERTY LINK_FLAGS "-fprofile-instr-generate ")
- set_property(
- TARGET ${TARGET_NAME}
- APPEND_STRING
- PROPERTY LINK_FLAGS "-fcoverage-mapping ")
- elseif(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
- target_compile_options(${TARGET_NAME} PRIVATE -fprofile-arcs
- -ftest-coverage --coverage)
- target_link_libraries(${TARGET_NAME} PRIVATE gcov)
+ if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_C_COMPILER_ID MATCHES "(Apple)?[Cc]lang" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?[Cc]lang")
+ target_compile_options(${TARGET_NAME} ${TARGET_VISIBILITY}
+ -fprofile-instr-generate -fcoverage-mapping)
+ target_link_options(${TARGET_NAME} ${TARGET_VISIBILITY}
+ -fprofile-instr-generate -fcoverage-mapping)
+ elseif(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES
+ "GNU")
+ target_compile_options(
+ ${TARGET_NAME} ${TARGET_VISIBILITY} -fprofile-arcs -ftest-coverage
+ $<$<COMPILE_LANGUAGE:CXX>:-fno-elide-constructors> -fno-default-inline)
+ target_link_libraries(${TARGET_NAME} ${TARGET_LINK_VISIBILITY} gcov)
endif()
# Targets
@@ -234,12 +283,16 @@ function(target_code_coverage TARGET_NAME)
# Add shared library to processing for 'all' targets
if(target_type STREQUAL "SHARED_LIBRARY" AND target_code_coverage_ALL)
- if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_C_COMPILER_ID MATCHES "[Cc]lang" OR CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang")
+ if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_C_COMPILER_ID MATCHES "(Apple)?[Cc]lang" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?[Cc]lang")
add_custom_target(
- ccov-run-${TARGET_NAME}
- COMMAND echo "-object=$<TARGET_FILE:${TARGET_NAME}>" >>
- ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list
- DEPENDS ccov-preprocessing ${TARGET_NAME})
+ ccov-run-${target_code_coverage_COVERAGE_TARGET_NAME}
+ COMMAND
+ ${CMAKE_COMMAND} -E echo "-object=$<TARGET_FILE:${TARGET_NAME}>" >>
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list
+ DEPENDS ${TARGET_NAME})
if(NOT TARGET ccov-libs)
message(
@@ -248,13 +301,17 @@ function(target_code_coverage TARGET_NAME)
)
endif()
- add_dependencies(ccov-libs ccov-run-${TARGET_NAME})
+ add_dependencies(ccov-libs
+ ccov-run-${target_code_coverage_COVERAGE_TARGET_NAME})
endif()
endif()
# For executables add targets to run and produce output
if(target_type STREQUAL "EXECUTABLE")
- if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_C_COMPILER_ID MATCHES "[Cc]lang" OR CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?Cc]lang")
+ if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_C_COMPILER_ID MATCHES "(Apple)?[Cc]lang" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?[Cc]lang")
# If there are shared objects to also work with, generate the string to
# add them here
@@ -268,23 +325,34 @@ function(target_code_coverage TARGET_NAME)
endif()
endforeach()
- # Run the executable, generating raw profile data
+ # Run the executable, generating raw profile data Make the run data
+ # available for further processing. Separated to allow Windows to run
+ # this target serially.
add_custom_target(
- ccov-run-${TARGET_NAME}
- COMMAND LLVM_PROFILE_FILE=${TARGET_NAME}.profraw
- $<TARGET_FILE:${TARGET_NAME}>
- COMMAND echo "-object=$<TARGET_FILE:${TARGET_NAME}>" >>
- ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list
- COMMAND echo "${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.profraw " >>
- ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/profraw.list
- DEPENDS ccov-preprocessing ccov-libs ${TARGET_NAME})
+ ccov-run-${target_code_coverage_COVERAGE_TARGET_NAME}
+ COMMAND
+ ${CMAKE_COMMAND} -E env ${CMAKE_CROSSCOMPILING_EMULATOR}
+ ${target_code_coverage_PRE_ARGS}
+ LLVM_PROFILE_FILE=${target_code_coverage_COVERAGE_TARGET_NAME}.profraw
+ $<TARGET_FILE:${TARGET_NAME}> ${target_code_coverage_ARGS}
+ COMMAND
+ ${CMAKE_COMMAND} -E echo "-object=$<TARGET_FILE:${TARGET_NAME}>"
+ ${SO_OBJECTS} >> ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list
+ COMMAND
+ ${CMAKE_COMMAND} -E echo
+ "${CMAKE_CURRENT_BINARY_DIR}/${target_code_coverage_COVERAGE_TARGET_NAME}.profraw"
+ >> ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/profraw.list
+ JOB_POOL ccov_serial_pool
+ DEPENDS ccov-libs ${TARGET_NAME})
# Merge the generated profile data so llvm-cov can process it
add_custom_target(
- ccov-processing-${TARGET_NAME}
- COMMAND ${LLVM_PROFDATA_PATH} merge -sparse ${TARGET_NAME}.profraw -o
- ${TARGET_NAME}.profdata
- DEPENDS ccov-run-${TARGET_NAME})
+ ccov-processing-${target_code_coverage_COVERAGE_TARGET_NAME}
+ COMMAND
+ ${LLVM_PROFDATA_PATH} merge -sparse
+ ${target_code_coverage_COVERAGE_TARGET_NAME}.profraw -o
+ ${target_code_coverage_COVERAGE_TARGET_NAME}.profdata
+ DEPENDS ccov-run-${target_code_coverage_COVERAGE_TARGET_NAME})
# Ignore regex only works on LLVM >= 7
if(LLVM_COV_VERSION VERSION_GREATER_EQUAL "7.0.0")
@@ -296,40 +364,57 @@ function(target_code_coverage TARGET_NAME)
# Print out details of the coverage information to the command line
add_custom_target(
- ccov-show-${TARGET_NAME}
+ ccov-show-${target_code_coverage_COVERAGE_TARGET_NAME}
COMMAND
${LLVM_COV_PATH} show $<TARGET_FILE:${TARGET_NAME}> ${SO_OBJECTS}
- -instr-profile=${TARGET_NAME}.profdata -show-line-counts-or-regions
- ${EXCLUDE_REGEX}
- DEPENDS ccov-processing-${TARGET_NAME})
+ -instr-profile=${target_code_coverage_COVERAGE_TARGET_NAME}.profdata
+ -show-line-counts-or-regions ${EXCLUDE_REGEX}
+ DEPENDS ccov-processing-${target_code_coverage_COVERAGE_TARGET_NAME})
# Print out a summary of the coverage information to the command line
add_custom_target(
- ccov-report-${TARGET_NAME}
- COMMAND ${LLVM_COV_PATH} report $<TARGET_FILE:${TARGET_NAME}>
- ${SO_OBJECTS} -instr-profile=${TARGET_NAME}.profdata
- ${EXCLUDE_REGEX}
- DEPENDS ccov-processing-${TARGET_NAME})
+ ccov-report-${target_code_coverage_COVERAGE_TARGET_NAME}
+ COMMAND
+ ${LLVM_COV_PATH} report $<TARGET_FILE:${TARGET_NAME}> ${SO_OBJECTS}
+ -instr-profile=${target_code_coverage_COVERAGE_TARGET_NAME}.profdata
+ ${EXCLUDE_REGEX}
+ DEPENDS ccov-processing-${target_code_coverage_COVERAGE_TARGET_NAME})
+
+ # Export coverage information so continuous integration tools (e.g.
+ # Jenkins) can consume it
+ add_custom_target(
+ ccov-export-${target_code_coverage_COVERAGE_TARGET_NAME}
+ COMMAND
+ ${LLVM_COV_PATH} export $<TARGET_FILE:${TARGET_NAME}> ${SO_OBJECTS}
+ -instr-profile=${target_code_coverage_COVERAGE_TARGET_NAME}.profdata
+ -format="text" ${EXCLUDE_REGEX} >
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/${target_code_coverage_COVERAGE_TARGET_NAME}.json
+ DEPENDS ccov-processing-${target_code_coverage_COVERAGE_TARGET_NAME})
# Generates HTML output of the coverage information for perusal
add_custom_target(
- ccov-${TARGET_NAME}
+ ccov-${target_code_coverage_COVERAGE_TARGET_NAME}
COMMAND
${LLVM_COV_PATH} show $<TARGET_FILE:${TARGET_NAME}> ${SO_OBJECTS}
- -instr-profile=${TARGET_NAME}.profdata -show-line-counts-or-regions
- -output-dir=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/${TARGET_NAME}
+ -instr-profile=${target_code_coverage_COVERAGE_TARGET_NAME}.profdata
+ -show-line-counts-or-regions
+ -output-dir=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/${target_code_coverage_COVERAGE_TARGET_NAME}
-format="html" ${EXCLUDE_REGEX}
- DEPENDS ccov-processing-${TARGET_NAME})
+ DEPENDS ccov-processing-${target_code_coverage_COVERAGE_TARGET_NAME})
- elseif(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+ elseif(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES
+ "GNU")
set(COVERAGE_INFO
- "${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/${TARGET_NAME}.info")
+ "${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/${target_code_coverage_COVERAGE_TARGET_NAME}.info"
+ )
# Run the executable, generating coverage information
add_custom_target(
- ccov-run-${TARGET_NAME}
- COMMAND $<TARGET_FILE:${TARGET_NAME}>
- DEPENDS ccov-preprocessing ${TARGET_NAME})
+ ccov-run-${target_code_coverage_COVERAGE_TARGET_NAME}
+ COMMAND
+ ${CMAKE_CROSSCOMPILING_EMULATOR} ${target_code_coverage_PRE_ARGS}
+ $<TARGET_FILE:${TARGET_NAME}> ${target_code_coverage_ARGS}
+ DEPENDS ${TARGET_NAME})
# Generate exclusion string for use
foreach(EXCLUDE_ITEM ${target_code_coverage_EXCLUDE})
@@ -349,33 +434,52 @@ function(target_code_coverage TARGET_NAME)
endif()
# Capture coverage data
- add_custom_target(
- ccov-capture-${TARGET_NAME}
- COMMAND ${CMAKE_COMMAND} -E remove ${COVERAGE_INFO}
- COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --zerocounters
- COMMAND $<TARGET_FILE:${TARGET_NAME}>
- COMMAND
- ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --base-directory
- ${CMAKE_SOURCE_DIR} --capture ${EXTERNAL_OPTION} --output-file
- ${COVERAGE_INFO}
- COMMAND ${EXCLUDE_COMMAND}
- DEPENDS ccov-preprocessing ${TARGET_NAME})
+ if(${CMAKE_VERSION} VERSION_LESS "3.17.0")
+ add_custom_target(
+ ccov-capture-${target_code_coverage_COVERAGE_TARGET_NAME}
+ COMMAND ${CMAKE_COMMAND} -E remove -f ${COVERAGE_INFO}
+ COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --zerocounters
+ COMMAND
+ ${CMAKE_CROSSCOMPILING_EMULATOR} ${target_code_coverage_PRE_ARGS}
+ $<TARGET_FILE:${TARGET_NAME}> ${target_code_coverage_ARGS}
+ COMMAND
+ ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --base-directory
+ ${CMAKE_SOURCE_DIR} --capture ${EXTERNAL_OPTION} --output-file
+ ${COVERAGE_INFO}
+ COMMAND ${EXCLUDE_COMMAND}
+ DEPENDS ${TARGET_NAME})
+ else()
+ add_custom_target(
+ ccov-capture-${target_code_coverage_COVERAGE_TARGET_NAME}
+ COMMAND ${CMAKE_COMMAND} -E rm -f ${COVERAGE_INFO}
+ COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --zerocounters
+ COMMAND
+ ${CMAKE_CROSSCOMPILING_EMULATOR} ${target_code_coverage_PRE_ARGS}
+ $<TARGET_FILE:${TARGET_NAME}> ${target_code_coverage_ARGS}
+ COMMAND
+ ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --base-directory
+ ${CMAKE_SOURCE_DIR} --capture ${EXTERNAL_OPTION} --output-file
+ ${COVERAGE_INFO}
+ COMMAND ${EXCLUDE_COMMAND}
+ DEPENDS ${TARGET_NAME})
+ endif()
# Generates HTML output of the coverage information for perusal
add_custom_target(
- ccov-${TARGET_NAME}
- COMMAND ${GENHTML_PATH} -o
- ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/${TARGET_NAME}
- ${COVERAGE_INFO}
- DEPENDS ccov-capture-${TARGET_NAME})
+ ccov-${target_code_coverage_COVERAGE_TARGET_NAME}
+ COMMAND
+ ${GENHTML_PATH} -o
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/${target_code_coverage_COVERAGE_TARGET_NAME}
+ ${COVERAGE_INFO}
+ DEPENDS ccov-capture-${target_code_coverage_COVERAGE_TARGET_NAME})
endif()
add_custom_command(
- TARGET ccov-${TARGET_NAME}
+ TARGET ccov-${target_code_coverage_COVERAGE_TARGET_NAME}
POST_BUILD
COMMAND ;
COMMENT
- "Open ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/${TARGET_NAME}/index.html in your browser to view the coverage report."
+ "Open ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/${target_code_coverage_COVERAGE_TARGET_NAME}/index.html in your browser to view the coverage report."
)
# AUTO
@@ -383,13 +487,16 @@ function(target_code_coverage TARGET_NAME)
if(NOT TARGET ccov)
add_custom_target(ccov)
endif()
- add_dependencies(ccov ccov-${TARGET_NAME})
+ add_dependencies(ccov ccov-${target_code_coverage_COVERAGE_TARGET_NAME})
- if(NOT CMAKE_COMPILER_IS_GNUCXX)
+ if(NOT CMAKE_C_COMPILER_ID MATCHES "GNU" AND NOT CMAKE_CXX_COMPILER_ID
+ MATCHES "GNU")
if(NOT TARGET ccov-report)
add_custom_target(ccov-report)
endif()
- add_dependencies(ccov-report ccov-report-${TARGET_NAME})
+ add_dependencies(
+ ccov-report
+ ccov-report-${target_code_coverage_COVERAGE_TARGET_NAME})
endif()
endif()
@@ -402,7 +509,8 @@ function(target_code_coverage TARGET_NAME)
)
endif()
- add_dependencies(ccov-all-processing ccov-run-${TARGET_NAME})
+ add_dependencies(ccov-all-processing
+ ccov-run-${target_code_coverage_COVERAGE_TARGET_NAME})
endif()
endif()
endif()
@@ -412,12 +520,20 @@ endfunction()
# any subdirectories. To add coverage instrumentation to only specific targets,
# use `target_code_coverage`.
function(add_code_coverage)
- if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_C_COMPILER_ID MATCHES "[Cc]lang" OR CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang")
- add_compile_options(-fprofile-instr-generate -fcoverage-mapping --coverage)
- add_link_options(-fprofile-instr-generate -fcoverage-mapping --coverage)
- elseif(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
- add_compile_options(-fprofile-arcs -ftest-coverage --coverage)
- link_libraries(gcov)
+ if(CODE_COVERAGE)
+ if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_C_COMPILER_ID MATCHES "(Apple)?[Cc]lang" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?[Cc]lang")
+ add_compile_options(-fprofile-instr-generate -fcoverage-mapping)
+ add_link_options(-fprofile-instr-generate -fcoverage-mapping)
+ elseif(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES
+ "GNU")
+ add_compile_options(
+ -fprofile-arcs -ftest-coverage
+ $<$<COMPILE_LANGUAGE:CXX>:-fno-elide-constructors> -fno-default-inline)
+ link_libraries(gcov)
+ endif()
endif()
endfunction()
@@ -428,7 +544,7 @@ endfunction()
# use with coverage dashboards (e.g. codecov.io, coveralls).
# ~~~
# Optional:
-# EXCLUDE <REGEX_PATTERNS> - Excludes files of the regex patterns provided from coverage.
+# EXCLUDE <PATTERNS> - Excludes files of the patterns provided from coverage. Note that GCC/lcov excludes by glob pattern, and clang/LLVM excludes via regex!
# ~~~
function(add_code_coverage_all_targets)
# Argument parsing
@@ -437,15 +553,28 @@ function(add_code_coverage_all_targets)
"${multi_value_keywords}" ${ARGN})
if(CODE_COVERAGE)
- if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_C_COMPILER_ID MATCHES "[Cc]lang" OR CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang")
+ if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" OR
+ CMAKE_C_COMPILER_ID MATCHES "(Apple)?[Cc]lang" OR
+ CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?[Cc]lang")
# Merge the profile data for all of the run executables
- add_custom_target(
- ccov-all-processing
- COMMAND
- ${LLVM_PROFDATA_PATH} merge -o
- ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata -sparse `cat
- ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/profraw.list`)
+ if(WIN32)
+ add_custom_target(
+ ccov-all-processing
+ COMMAND
+ powershell -Command $$FILELIST = Get-Content
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/profraw.list\; llvm-profdata.exe
+ merge -o ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata
+ -sparse $$FILELIST)
+ else()
+ add_custom_target(
+ ccov-all-processing
+ COMMAND
+ ${LLVM_PROFDATA_PATH} merge -o
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata -sparse `cat
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/profraw.list`)
+ endif()
# Regex exclude only available for LLVM >= 7
if(LLVM_COV_VERSION VERSION_GREATER_EQUAL "7.0.0")
@@ -456,38 +585,77 @@ function(add_code_coverage_all_targets)
endif()
# Print summary of the code coverage information to the command line
- add_custom_target(
- ccov-all-report
- COMMAND
- ${LLVM_COV_PATH} report `cat
- ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list`
- -instr-profile=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata
- ${EXCLUDE_REGEX}
- DEPENDS ccov-all-processing)
+ if(WIN32)
+ add_custom_target(
+ ccov-all-report
+ COMMAND
+ powershell -Command $$FILELIST = Get-Content
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list\; llvm-cov.exe
+ report $$FILELIST
+ -instr-profile=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata
+ ${EXCLUDE_REGEX}
+ DEPENDS ccov-all-processing)
+ else()
+ add_custom_target(
+ ccov-all-report
+ COMMAND
+ ${LLVM_COV_PATH} report `cat
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list`
+ -instr-profile=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata
+ ${EXCLUDE_REGEX}
+ DEPENDS ccov-all-processing)
+ endif()
# Export coverage information so continuous integration tools (e.g.
# Jenkins) can consume it
- add_custom_target(
- ccov-all-export
- COMMAND
- ${LLVM_COV_PATH} export `cat
- ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list`
- -instr-profile=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata
- -format="text" ${EXCLUDE_REGEX} >
- ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/coverage.json
- DEPENDS ccov-all-processing)
+ if(WIN32)
+ add_custom_target(
+ ccov-all-export
+ COMMAND
+ powershell -Command $$FILELIST = Get-Content
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list\; llvm-cov.exe
+ export $$FILELIST
+ -instr-profile=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata
+ -format="text" ${EXCLUDE_REGEX} >
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/coverage.json
+ DEPENDS ccov-all-processing)
+ else()
+ add_custom_target(
+ ccov-all-export
+ COMMAND
+ ${LLVM_COV_PATH} export `cat
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list`
+ -instr-profile=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata
+ -format="text" ${EXCLUDE_REGEX} >
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/coverage.json
+ DEPENDS ccov-all-processing)
+ endif()
# Generate HTML output of all added targets for perusal
- add_custom_target(
- ccov-all
- COMMAND
- ${LLVM_COV_PATH} show `cat
- ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list`
- -instr-profile=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata
- -show-line-counts-or-regions
- -output-dir=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged
- -format="html" ${EXCLUDE_REGEX}
- DEPENDS ccov-all-processing)
+ if(WIN32)
+ add_custom_target(
+ ccov-all
+ COMMAND
+ powershell -Command $$FILELIST = Get-Content
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list\; llvm-cov.exe show
+ $$FILELIST
+ -instr-profile=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata
+ -show-line-counts-or-regions
+ -output-dir=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged
+ -format="html" ${EXCLUDE_REGEX}
+ DEPENDS ccov-all-processing)
+ else()
+ add_custom_target(
+ ccov-all
+ COMMAND
+ ${LLVM_COV_PATH} show `cat
+ ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/binaries.list`
+ -instr-profile=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.profdata
+ -show-line-counts-or-regions
+ -output-dir=${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged
+ -format="html" ${EXCLUDE_REGEX}
+ DEPENDS ccov-all-processing)
+ endif()
elseif(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU")
set(COVERAGE_INFO "${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged.info")
@@ -496,6 +664,7 @@ function(add_code_coverage_all_targets)
add_custom_target(ccov-all-processing COMMAND ;)
# Exclusion regex string creation
+ set(EXCLUDE_REGEX)
foreach(EXCLUDE_ITEM ${add_code_coverage_all_targets_EXCLUDE})
set(EXCLUDE_REGEX ${EXCLUDE_REGEX} --remove ${COVERAGE_INFO}
'${EXCLUDE_ITEM}')
@@ -509,19 +678,29 @@ function(add_code_coverage_all_targets)
endif()
# Capture coverage data
- add_custom_target(
- ccov-all-capture
- COMMAND ${CMAKE_COMMAND} -E remove ${COVERAGE_INFO}
- COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --capture
- --output-file ${COVERAGE_INFO}
- COMMAND ${EXCLUDE_COMMAND}
- DEPENDS ccov-all-processing)
+ if(${CMAKE_VERSION} VERSION_LESS "3.17.0")
+ add_custom_target(
+ ccov-all-capture
+ COMMAND ${CMAKE_COMMAND} -E remove -f ${COVERAGE_INFO}
+ COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --capture
+ --output-file ${COVERAGE_INFO}
+ COMMAND ${EXCLUDE_COMMAND}
+ DEPENDS ccov-all-processing)
+ else()
+ add_custom_target(
+ ccov-all-capture
+ COMMAND ${CMAKE_COMMAND} -E rm -f ${COVERAGE_INFO}
+ COMMAND ${LCOV_PATH} --directory ${CMAKE_BINARY_DIR} --capture
+ --output-file ${COVERAGE_INFO}
+ COMMAND ${EXCLUDE_COMMAND}
+ DEPENDS ccov-all-processing)
+ endif()
# Generates HTML output of all targets for perusal
add_custom_target(
ccov-all
COMMAND ${GENHTML_PATH} -o ${CMAKE_COVERAGE_OUTPUT_DIRECTORY}/all-merged
- ${COVERAGE_INFO}
+ ${COVERAGE_INFO} -p ${CMAKE_SOURCE_DIR}
DEPENDS ccov-all-capture)
endif()
diff --git a/config/sanitizer/dependency-graph.cmake b/config/sanitizer/dependency-graph.cmake
new file mode 100644
index 0000000..bc3446d
--- /dev/null
+++ b/config/sanitizer/dependency-graph.cmake
@@ -0,0 +1,107 @@
+#
+# Copyright (C) 2019 by George Cave - gcave@stablecoder.ca
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+find_program(DOT_EXE "dot")
+mark_as_advanced(FORCE DOT_EXE)
+if(DOT_EXE)
+ message(STATUS "dot found: ${DOT_EXE}")
+else()
+ message(STATUS "dot not found!")
+endif()
+
+if(NOT DOT_EXE)
+ option(
+ BUILD_DEP_GRAPH
+ "Builds a visual representation of the dependencies of that included targets"
+ OFF)
+else()
+ option(
+ BUILD_DEP_GRAPH
+ "Builds a visual representation of the dependencies of that included targets"
+ ON)
+endif()
+
+# Builds a dependency graph of the active code targets using the `dot`
+# application
+#
+# This can only be used once per project, as each target generated is as
+# `doc-${PROJECT_NAME}` unless TARGET_NAME is specified.
+# ~~~
+# Required Arguments:
+# OUTPUT_TYPE
+# This is the output type, which doubles as the output file type, such as pdf, png.
+# This can be whatever the `dot` application allows.
+#
+# Options Arguments:
+# ADD_TO_DEP_GRAPH
+# If specified, add this generated target to be a dependency of the more general
+# `dep-graph` target.
+#
+# TARGET_NAME <str>
+# The name to give the doc target. (Default: dep-graph-${PROJECT_NAME})
+#
+# OUTPUT_DIR <str>
+# The directory to place the generated output
+# ~~~
+function(gen_dep_graph OUTPUT_TYPE)
+ set(OPTIONS ADD_TO_DEP_GRAPH)
+ set(SINGLE_VALUE_KEYWORDS TARGET_NAME OUTPUT_DIR)
+ set(MULTI_VALUE_KEYWORDS)
+ cmake_parse_arguments(gen_dep_graph "${OPTIONS}" "${SINGLE_VALUE_KEYWORDS}"
+ "${MULTI_VALUE_KEYWORDS}" ${ARGN})
+
+ if(BUILD_DEP_GRAPH)
+ if(NOT DOT_EXE)
+ message(FATAL_ERROR "`dot` is needed to build the dependency graph.")
+ endif()
+
+ if(gen_dep_graph_TARGET_NAME)
+ set(TARGET_NAME ${gen_dep_graph_TARGET_NAME})
+ else()
+ set(TARGET_NAME dep-graph-${PROJECT_NAME})
+ endif()
+
+ if(gen_dep_graph_OUTPUT_DIR)
+ set(OUT_DIR ${gen_dep_graph_OUTPUT_DIR})
+ else()
+ set(OUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+ endif()
+
+ add_custom_target(
+ ${TARGET_NAME}
+ COMMAND ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR}
+ --graphviz=${CMAKE_CURRENT_BINARY_DIR}/graphviz/${TARGET_NAME}.dot
+ COMMAND
+ ${DOT_EXE} -T${OUTPUT_TYPE}
+ ${CMAKE_CURRENT_BINARY_DIR}/graphviz/${TARGET_NAME}.dot -o
+ ${OUT_DIR}/${TARGET_NAME}.${OUTPUT_TYPE})
+
+ add_custom_command(
+ TARGET ${TARGET_NAME}
+ POST_BUILD
+ COMMAND ;
+ COMMENT
+ "Dependency graph for ${TARGET_NAME} generated and located at ${OUT_DIR}/${TARGET_NAME}.${OUTPUT_TYPE}"
+ )
+
+ if(gen_dep_graph_ADD_TO_DEP_GRAPH)
+ if(NOT TARGET dep-graph)
+ add_custom_target(dep-graph)
+ endif()
+
+ add_dependencies(dep-graph ${TARGET_NAME})
+ endif()
+ endif()
+endfunction()
diff --git a/config/sanitizer/formatting.cmake b/config/sanitizer/formatting.cmake
index 5aaa2a6..181351d 100644
--- a/config/sanitizer/formatting.cmake
+++ b/config/sanitizer/formatting.cmake
@@ -47,10 +47,7 @@ function(clang_format TARGET_NAME)
# If the item is a target, then we'll attempt to grab the associated
# source files from it.
get_target_property(_TARGET_TYPE ${item} TYPE)
- if(NOT
- _TARGET_TYPE
- STREQUAL
- "INTERFACE_LIBRARY")
+ if(NOT _TARGET_TYPE STREQUAL "INTERFACE_LIBRARY")
get_property(
_TEMP
TARGET ${item}
@@ -72,21 +69,68 @@ function(clang_format TARGET_NAME)
# Make the target
if(FORMAT_FILES)
+ add_custom_target(${TARGET_NAME} COMMAND ${CLANG_FORMAT_EXE} -i
+ -style=file ${FORMAT_FILES})
+
+ if(NOT TARGET format)
+ add_custom_target(format)
+ endif()
+
+ add_dependencies(format ${TARGET_NAME})
+ endif()
+
+ endif()
+endfunction()
+
+#
+# cmake-format
+#
+find_program(CMAKE_FORMAT_EXE "cmake-format")
+mark_as_advanced(FORCE CMAKE_FORMAT_EXE)
+if(CMAKE_FORMAT_EXE)
+ message(STATUS "cmake-format found: ${CMAKE_FORMAT_EXE}")
+else()
+ message(STATUS "cmake-format not found!")
+endif()
+
+# When called, this function will call 'cmake-format' program on all listed
+# files (if both the program and the files exist and are found)
+# ~~~
+# Required:
+# TARGET_NAME - The name of the target to create.
+#
+# Optional:
+# ARGN - Any arguments passed in will be considered as 'files' to perform the
+# formatting on. Any items that are not files will be ignored. Both relative and
+# absolute paths are accepted.
+# ~~~
+function(cmake_format TARGET_NAME)
+ if(CMAKE_FORMAT_EXE)
+ set(FORMAT_FILES)
+ # Determine files that exist
+ foreach(iter IN LISTS ARGN)
+ if(EXISTS ${iter})
+ set(FORMAT_FILES ${FORMAT_FILES} ${iter})
+ elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${iter})
+ set(FORMAT_FILES ${FORMAT_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/${iter})
+ endif()
+ endforeach()
+
+ # Generate target
+ if(FORMAT_FILES)
if(TARGET ${TARGET_NAME})
message(
ERROR
- "Cannot create clang-format target '${TARGET_NAME}', already exists.")
+ "Cannot create cmake-format target '${TARGET_NAME}', already exists.")
else()
- add_custom_target(${TARGET_NAME} COMMAND ${CLANG_FORMAT_EXE} -i -style=file ${FORMAT_FILES})
+ add_custom_target(${TARGET_NAME} COMMAND ${CMAKE_FORMAT_EXE} -i
+ ${FORMAT_FILES})
- if(NOT TARGET format)
- add_custom_target(format)
+ if(NOT TARGET cmake-format)
+ add_custom_target(cmake-format)
endif()
-
- add_dependencies(format ${TARGET_NAME})
+ add_dependencies(cmake-format ${TARGET_NAME})
endif()
endif()
-
endif()
endfunction()
-
diff --git a/config/sanitizer/sanitizers.cmake b/config/sanitizer/sanitizers.cmake
index 4ba043b..53591d2 100644
--- a/config/sanitizer/sanitizers.cmake
+++ b/config/sanitizer/sanitizers.cmake
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2018 by George Cave - gcave@stablecoder.ca
+# Copyright (C) 2018-2022 by George Cave - gcave@stablecoder.ca
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
@@ -13,11 +13,13 @@
# License for the specific language governing permissions and limitations under
# the License.
+include(CheckCXXSourceCompiles)
+
set(USE_SANITIZER
""
CACHE
STRING
- "Compile with a sanitizer. Options are: Address, Memory, MemoryWithOrigins, Undefined, Thread, Leak, 'Address;Undefined'"
+ "Compile with a sanitizer. Options are: Address, Memory, MemoryWithOrigins, Undefined, Thread, Leak, 'Address;Undefined', CFI"
)
function(append value)
@@ -28,62 +30,164 @@ function(append value)
endforeach(variable)
endfunction()
-message(STATUS "USE_SANITIZER=${USE_SANITIZER}, CMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID}")
+function(append_quoteless value)
+ foreach(variable ${ARGN})
+ set(${variable}
+ ${${variable}} ${value}
+ PARENT_SCOPE)
+ endforeach(variable)
+endfunction()
+
+function(test_san_flags return_var flags)
+ set(QUIET_BACKUP ${CMAKE_REQUIRED_QUIET})
+ set(CMAKE_REQUIRED_QUIET TRUE)
+ unset(${return_var} CACHE)
+ set(FLAGS_BACKUP ${CMAKE_REQUIRED_FLAGS})
+ set(CMAKE_REQUIRED_FLAGS "${flags}")
+ check_cxx_source_compiles("int main() { return 0; }" ${return_var})
+ set(CMAKE_REQUIRED_FLAGS "${FLAGS_BACKUP}")
+ set(CMAKE_REQUIRED_QUIET "${QUIET_BACKUP}")
+endfunction()
+
if(USE_SANITIZER)
if(CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_C_COMPILER_ID MATCHES "[Cc]lang")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+ unset(SANITIZER_SELECTED_FLAGS)
+
if(UNIX)
- append("-fno-omit-frame-pointer" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
- message(STATUS "Building with sanitize, base flags=${CMAKE_C_SANITIZER_FLAGS}")
+ append("-fno-omit-frame-pointer" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
if(uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG")
- append("-O1" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
+ append("-O1" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
endif()
- if(USE_SANITIZER MATCHES "([Aa]ddress);([Uu]ndefined)"
- OR USE_SANITIZER MATCHES "([Uu]ndefined);([Aa]ddress)")
- message(STATUS "Building with Address, Undefined sanitizers")
- append("-fsanitize=address,undefined" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
- set(MEMCHECK_TYPE AddressSanitizer)
- elseif(USE_SANITIZER MATCHES "([Aa]ddress)")
+ if(USE_SANITIZER MATCHES "([Aa]ddress)")
# Optional: -fno-optimize-sibling-calls -fsanitize-address-use-after-scope
- message(STATUS "Building with Address sanitizer")
- append("-fsanitize=address" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
- set(MEMCHECK_TYPE AddressSanitizer)
- elseif(USE_SANITIZER MATCHES "([Mm]emory([Ww]ith[Oo]rigins)?)")
+ message(STATUS "Testing with Address sanitizer")
+ set(SANITIZER_ADDR_FLAG "-fsanitize=address")
+ test_san_flags(SANITIZER_ADDR_AVAILABLE ${SANITIZER_ADDR_FLAG})
+ if(SANITIZER_ADDR_AVAILABLE)
+ message(STATUS " Building with Address sanitizer")
+ append("${SANITIZER_ADDR_FLAG}" SANITIZER_SELECTED_FLAGS)
+
+ if(AFL)
+ append_quoteless(AFL_USE_ASAN=1 CMAKE_C_COMPILER_LAUNCHER CMAKE_CXX_COMPILER_LAUNCHER)
+ endif()
+ else()
+ message(FATAL_ERROR "Address sanitizer not available for ${CMAKE_CXX_COMPILER}")
+ endif()
+ endif()
+
+ if(USE_SANITIZER MATCHES "([Mm]emory([Ww]ith[Oo]rigins)?)")
# Optional: -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2
- append("-fsanitize=memory" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
+ set(SANITIZER_MEM_FLAG "-fsanitize=memory")
if(USE_SANITIZER MATCHES "([Mm]emory[Ww]ith[Oo]rigins)")
- message(STATUS "Building with MemoryWithOrigins sanitizer")
- append("-fsanitize-memory-track-origins" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
+ message(STATUS "Testing with MemoryWithOrigins sanitizer")
+ append("-fsanitize-memory-track-origins" SANITIZER_MEM_FLAG)
else()
- message(STATUS "Building with Memory sanitizer")
+ message(STATUS "Testing with Memory sanitizer")
endif()
- set(MEMCHECK_TYPE MemorySanitizer)
- elseif(USE_SANITIZER MATCHES "([Uu]ndefined)")
- message(STATUS "Building with Undefined sanitizer")
- append("-fsanitize=undefined" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
+ test_san_flags(SANITIZER_MEM_AVAILABLE ${SANITIZER_MEM_FLAG})
+ if(SANITIZER_MEM_AVAILABLE)
+ if(USE_SANITIZER MATCHES "([Mm]emory[Ww]ith[Oo]rigins)")
+ message(STATUS " Building with MemoryWithOrigins sanitizer")
+ else()
+ message(STATUS " Building with Memory sanitizer")
+ endif()
+ append("${SANITIZER_MEM_FLAG}" SANITIZER_SELECTED_FLAGS)
+
+ if(AFL)
+ append_quoteless(AFL_USE_MSAN=1 CMAKE_C_COMPILER_LAUNCHER CMAKE_CXX_COMPILER_LAUNCHER)
+ endif()
+ else()
+ message(FATAL_ERROR "Memory [With Origins] sanitizer not available for ${CMAKE_CXX_COMPILER}")
+ endif()
+ endif()
+
+ if(USE_SANITIZER MATCHES "([Uu]ndefined)")
+ message(STATUS "Testing with Undefined Behaviour sanitizer")
+ set(SANITIZER_UB_FLAG "-fsanitize=undefined")
if(EXISTS "${BLACKLIST_FILE}")
- append("-fsanitize-blacklist=${BLACKLIST_FILE}" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
+ append("-fsanitize-blacklist=${BLACKLIST_FILE}" SANITIZER_UB_FLAG)
endif()
- set(MEMCHECK_TYPE UndefinedBehaviorSanitizer)
- elseif(USE_SANITIZER MATCHES "([Tt]hread)")
- message(STATUS "Building with Thread sanitizer")
- append("-fsanitize=thread" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
- set(MEMCHECK_TYPE ThreadSanitizer)
- elseif(USE_SANITIZER MATCHES "([Ll]eak)")
- message(STATUS "Building with Leak sanitizer")
- append("-fsanitize=leak" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
- set(MEMCHECK_TYPE LeakSanitizer)
+ test_san_flags(SANITIZER_UB_AVAILABLE ${SANITIZER_UB_FLAG})
+ if(SANITIZER_UB_AVAILABLE)
+ message(STATUS " Building with Undefined Behaviour sanitizer")
+ append("${SANITIZER_UB_FLAG}" SANITIZER_SELECTED_FLAGS)
+
+ if(AFL)
+ append_quoteless(AFL_USE_UBSAN=1 CMAKE_C_COMPILER_LAUNCHER CMAKE_CXX_COMPILER_LAUNCHER)
+ endif()
+ else()
+ message(FATAL_ERROR "Undefined Behaviour sanitizer not available for ${CMAKE_CXX_COMPILER}")
+ endif()
+ endif()
+
+ if(USE_SANITIZER MATCHES "([Tt]hread)")
+ message(STATUS "Testing with Thread sanitizer")
+ set(SANITIZER_THREAD_FLAG "-fsanitize=thread")
+ test_san_flags(SANITIZER_THREAD_AVAILABLE ${SANITIZER_THREAD_FLAG})
+ if(SANITIZER_THREAD_AVAILABLE)
+ message(STATUS " Building with Thread sanitizer")
+ append("${SANITIZER_THREAD_FLAG}" SANITIZER_SELECTED_FLAGS)
+
+ if(AFL)
+ append_quoteless(AFL_USE_TSAN=1 CMAKE_C_COMPILER_LAUNCHER CMAKE_CXX_COMPILER_LAUNCHER)
+ endif()
+ else()
+ message(FATAL_ERROR "Thread sanitizer not available for ${CMAKE_CXX_COMPILER}")
+ endif()
+ endif()
+
+ if(USE_SANITIZER MATCHES "([Ll]eak)")
+ message(STATUS "Testing with Leak sanitizer")
+ set(SANITIZER_LEAK_FLAG "-fsanitize=leak")
+ test_san_flags(SANITIZER_LEAK_AVAILABLE ${SANITIZER_LEAK_FLAG})
+ if(SANITIZER_LEAK_AVAILABLE)
+ message(STATUS " Building with Leak sanitizer")
+ append("${SANITIZER_LEAK_FLAG}" SANITIZER_SELECTED_FLAGS)
+
+ if(AFL)
+ append_quoteless(AFL_USE_LSAN=1 CMAKE_C_COMPILER_LAUNCHER CMAKE_CXX_COMPILER_LAUNCHER)
+ endif()
+ else()
+ message(FATAL_ERROR "Thread sanitizer not available for ${CMAKE_CXX_COMPILER}")
+ endif()
+ endif()
+
+ if(USE_SANITIZER MATCHES "([Cc][Ff][Ii])")
+ message(STATUS "Testing with Control Flow Integrity(CFI) sanitizer")
+ set(SANITIZER_CFI_FLAG "-fsanitize=cfi")
+ test_san_flags(SANITIZER_CFI_AVAILABLE ${SANITIZER_CFI_FLAG})
+ if(SANITIZER_CFI_AVAILABLE)
+ message(STATUS " Building with Control Flow Integrity(CFI) sanitizer")
+ append("${SANITIZER_LEAK_FLAG}" SANITIZER_SELECTED_FLAGS)
+
+ if(AFL)
+ append_quoteless(AFL_USE_CFISAN=1 CMAKE_C_COMPILER_LAUNCHER CMAKE_CXX_COMPILER_LAUNCHER)
+ endif()
+ else()
+ message(FATAL_ERROR "Control Flow Integrity(CFI) sanitizer not available for ${CMAKE_CXX_COMPILER}")
+ endif()
+ endif()
+
+ message(STATUS "Sanitizer flags: ${SANITIZER_SELECTED_FLAGS}")
+ test_san_flags(SANITIZER_SELECTED_COMPATIBLE ${SANITIZER_SELECTED_FLAGS})
+ if(SANITIZER_SELECTED_COMPATIBLE)
+ message(STATUS " Building with ${SANITIZER_SELECTED_FLAGS}")
+ append("${SANITIZER_SELECTED_FLAGS}" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
else()
- message(
- FATAL_ERROR "Unsupported value of USE_SANITIZER: ${USE_SANITIZER}")
+ message(FATAL_ERROR " Sanitizer flags ${SANITIZER_SELECTED_FLAGS} are not compatible.")
endif()
elseif(MSVC)
if(USE_SANITIZER MATCHES "([Aa]ddress)")
message(STATUS "Building with Address sanitizer")
- append("-fsanitize=address" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
+ append("-fsanitize=address" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
+
+ if(AFL)
+ append_quoteless(AFL_USE_ASAN=1 CMAKE_C_COMPILER_LAUNCHER CMAKE_CXX_COMPILER_LAUNCHER)
+ endif()
else()
message(FATAL_ERROR "This sanitizer not yet supported in the MSVC environment: ${USE_SANITIZER}")
endif()
@@ -93,7 +197,7 @@ if(USE_SANITIZER)
elseif(MSVC)
if(USE_SANITIZER MATCHES "([Aa]ddress)")
message(STATUS "Building with Address sanitizer")
- append("/fsanitize=address" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS)
+ append("/fsanitize=address" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
else()
message(FATAL_ERROR "This sanitizer not yet supported in the MSVC environment: ${USE_SANITIZER}")
endif()
diff --git a/config/sanitizer/tools.cmake b/config/sanitizer/tools.cmake
index 88d3baf..106f9c5 100644
--- a/config/sanitizer/tools.cmake
+++ b/config/sanitizer/tools.cmake
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2018-2020 by George Cave - gcave@stablecoder.ca
+# Copyright (C) 2018-2023 by George Cave - gcave@stablecoder.ca
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
@@ -13,91 +13,148 @@
# License for the specific language governing permissions and limitations under
# the License.
-option(CLANG_TIDY "Turns on clang-tidy processing if it is found." OFF)
-if(CLANG_TIDY)
- find_program(CLANG_TIDY_EXE NAMES "clang-tidy")
- mark_as_advanced(FORCE CLANG_TIDY_EXE)
+# CLANG-TIDY
+find_program(CLANG_TIDY_EXE NAMES "clang-tidy")
+set(CLANG_TIDY_MESSAGE_OUTPUT # Control output messages to occur only once
+ FALSE
+ CACHE INTERNAL FALSE)
+mark_as_advanced(FORCE CLANG_TIDY_EXE CMAKE_C_CLANG_TIDY CMAKE_CXX_CLANG_TIDY)
+
+# Adds clang-tidy to code compiled after this macro. All arguments are added to
+# the clang-tidy application call in the form of `clang-tidy ${ARGN}`.
+#
+# If the clang-tidy application is not found, the macro will cause CMake to
+# produce an error and not generate.
+#
+# Options provided can be changed by calling the macro again with the new
+# arguments.
+macro(clang_tidy)
+ # Only want to output whether clang-tidy was found once
+ if(NOT CLANG_TIDY_MESSAGE_OUTPUT)
+ set(CLANG_TIDY_MESSAGE_OUTPUT TRUE)
+ if(CLANG_TIDY_EXE)
+ message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
+ else()
+ message(SEND_ERROR "clang-tidy not found!")
+ endif()
+ endif()
+
+ # Only pass the options if the tool was found
if(CLANG_TIDY_EXE)
- message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
- set(CMAKE_C_CLANG_TIDY ${CLANG_TIDY_EXE} --checks=-*,clang-analyzer-*)#${ARGN})
- set(CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY_EXE} --checks=-*,clang-analyzer-*)#${ARGN})
- else()
- message(STATUS "clang-tidy not found!")
- set(CMAKE_C_CLANG_TIDY "" CACHE STRING "" FORCE) # delete it
- set(CMAKE_CXX_CLANG_TIDY "" CACHE STRING "" FORCE) # delete it
+ set(CMAKE_C_CLANG_TIDY
+ ${CLANG_TIDY_EXE} ${ARGN}
+ CACHE STRING "" FORCE)
+ set(CMAKE_CXX_CLANG_TIDY
+ ${CLANG_TIDY_EXE} ${ARGN}
+ CACHE STRING "" FORCE)
endif()
-else()
- #message(STATUS "clang-tidy not enabled!")
+endmacro()
+
+# Clears clang-tidy so it is not called on any following defined code
+# compilation. clang-tidy can be re-enabled by another call to `clang_tidy()`.
+macro(reset_clang_tidy)
set(CMAKE_C_CLANG_TIDY
""
- CACHE STRING "" FORCE) # delete it
+ CACHE STRING "" FORCE)
set(CMAKE_CXX_CLANG_TIDY
""
- CACHE STRING "" FORCE) # delete it
-endif()
+ CACHE STRING "" FORCE)
+endmacro()
-# Adds clang-tidy checks to the compilation, with the given arguments being used
-# as the options set.
-macro(clang_tidy)
- if(CLANG_TIDY AND CLANG_TIDY_EXE)
- set(CMAKE_C_CLANG_TIDY ${CLANG_TIDY_EXE} ${ARGN})
- set(CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY_EXE} ${ARGN})
+# INCLUDE-WHAT-YOU-USE
+find_program(IWYU_EXE NAMES "include-what-you-use")
+set(IWYU_MESSAGE_OUTPUT # Control output messages to occur only once
+ FALSE
+ CACHE INTERNAL FALSE)
+mark_as_advanced(FORCE IWYU_EXE CMAKE_C_INCLUDE_WHAT_YOU_USE
+ CMAKE_CXX_INCLUDE_WHAT_YOU_USE)
+
+# Adds include-what-you-use to code compiled after this macro. All arguments are
+# added to the include-what-you-use application call in the form of
+# `include-what-you-use ${ARGN}`.
+#
+# If the include-what-you-use application is not found, the macro will cause
+# CMake to produce an error and not generate.
+#
+# Options provided can be changed by calling the macro again with the new
+# arguments.
+macro(include_what_you_use)
+ # Only want to output whether clang-tidy was found once
+ if(NOT IWYU_MESSAGE_OUTPUT)
+ set(IWYU_MESSAGE_OUTPUT TRUE)
+ if(IWYU_EXE)
+ message(STATUS "include-what-you-use found: ${IWYU_EXE}")
+ else()
+ message(SEND_ERROR "include-what-you-use not found!")
+ endif()
endif()
-endmacro()
-option(IWYU "Turns on include-what-you-use processing if it is found." OFF)
-if(IWYU)
- find_program(IWYU_EXE NAMES "include-what-you-use")
- mark_as_advanced(FORCE IWYU_EXE)
+ # Only pass the options if the tool was found
if(IWYU_EXE)
- message(STATUS "include-what-you-use found: ${IWYU_EXE}")
- else()
- message(SEND_ERROR "Cannot enable include-what-you-use, as executable not found!")
- set(CMAKE_C_INCLUDE_WHAT_YOU_USE "" CACHE STRING "" FORCE) # delete it
- set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "" CACHE STRING "" FORCE) # delete it
+ set(CMAKE_C_INCLUDE_WHAT_YOU_USE
+ ${IWYU_EXE} ${ARGN}
+ CACHE STRING "" FORCE)
+ set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE
+ ${IWYU_EXE} ${ARGN}
+ CACHE STRING "" FORCE)
endif()
-else()
- #message(STATUS "include-what-you-use NOT ENABLED via 'IWYU' variable!")
- set(CMAKE_C_INCLUDE_WHAT_YOU_USE "" CACHE STRING "" FORCE) # delete it
- set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "" CACHE STRING "" FORCE) # delete it
-endif()
+endmacro()
-# Adds include_what_you_use to the compilation, with the given arguments being
-# used as the options set.
-macro(include_what_you_use)
- if(IWYU AND IWYU_EXE)
- set(CMAKE_C_INCLUDE_WHAT_YOU_USE ${IWYU_EXE} ${ARGN})
- set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE ${IWYU_EXE} ${ARGN})
- endif()
+# Clears include-what-you-use so it is not called on any following defined code
+# compilation. It can be re-enabled by another call to `include_what_you_use()`.
+macro(reset_include_what_you_use)
+ set(CMAKE_C_INCLUDE_WHAT_YOU_USE
+ ""
+ CACHE STRING "" FORCE)
+ set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE
+ ""
+ CACHE STRING "" FORCE)
endmacro()
-option(CPPCHECK "Turns on cppcheck processing if it is found." OFF)
-if(CPPCHECK)
+# CPPCHECK
+find_program(CPPCHECK_EXE NAMES "cppcheck")
+set(CPPCHECK_MESSAGE_OUTPUT # Control output messages to occur only once
+ FALSE
+ CACHE INTERNAL FALSE)
+mark_as_advanced(FORCE CPPCHECK_EXE CMAKE_C_CPPCHECK CMAKE_CXX_CPPCHECK)
+
+# Adds cppcheck to code compiled after this macro. All arguments are added to
+# the cppcheck application call in the form of `cppcheck ${ARGN}`.
+#
+# If the include-what-you-use application is not found, the macro will cause
+# CMake to produce an error and not generate.
+#
+# Options provided can be changed by calling the macro again with the new
+# arguments.
+macro(cppcheck)
+ # Only want to output whether clang-tidy was found once
+ if(NOT CPPCHECK_MESSAGE_OUTPUT)
+ set(CPPCHECK_MESSAGE_OUTPUT TRUE)
+ if(CPPCHECK_EXE)
+ message(STATUS "cppcheck found: ${CPPCHECK_EXE}")
+ else()
+ message(SEND_ERROR "cppcheck not found!")
+ endif()
+ endif()
+
+ # Only pass the options if the tool was found
if(CPPCHECK_EXE)
- message(STATUS "cppcheck found: ${CPPCHECK_EXE}")
set(CMAKE_C_CPPCHECK
- "${CPPCHECK_EXE};--enable=warning,performance,portability,missingInclude;--template=\"[{severity}][{id}] {message} {callstack} \(On {file}:{line}\)\";--suppress=missingIncludeSystem;--quiet;--verbose;--force"
- )
+ ${CPPCHECK_EXE} ${ARGN}
+ CACHE STRING "" FORCE)
set(CMAKE_CXX_CPPCHECK
- "${CPPCHECK_EXE};--enable=warning,performance,portability,missingInclude;--template=\"[{severity}][{id}] {message} {callstack} \(On {file}:{line}\)\";--suppress=missingIncludeSystem;--quiet;--verbose;--force"
- )
- else()
- message(SEND_ERROR "Cannot enable cppcheck, as executable not found!")
- set(CMAKE_C_CPPCHECK "" CACHE STRING "" FORCE) # delete it
- set(CMAKE_CXX_CPPCHECK "" CACHE STRING "" FORCE) # delete it
- endif()
-else()
- # message(SEND_ERROR "cppcheck NOT ENABLED via 'CPPCHECK' variable!")
- set(CMAKE_C_CPPCHECK "" CACHE STRING "" FORCE) # delete it
- set(CMAKE_CXX_CPPCHECK "" CACHE STRING "" FORCE) # delete it
-endif()
-
-# Adds cppcheck to the compilation, with the given arguments being used as the
-# options set.
-macro(cppcheck)
- if(CPPCHECK AND CPPCHECK_EXE)
- set(CMAKE_C_CPPCHECK ${CPPCHECK_EXE} ${ARGN})
- set(CMAKE_CXX_CPPCHECK ${CPPCHECK_EXE} ${ARGN})
+ ${CPPCHECK_EXE} ${ARGN}
+ CACHE STRING "" FORCE)
endif()
endmacro()
+# Clears include-what-you-use so it is not called on any following defined code
+# compilation. It can be re-enabled by another call to `cppcheck()`.
+macro(reset_cppcheck)
+ set(CMAKE_C_CPPCHECK
+ ""
+ CACHE STRING "" FORCE)
+ set(CMAKE_CXX_CPPCHECK
+ ""
+ CACHE STRING "" FORCE)
+endmacro()
diff --git a/hl/tools/gif2h5/CMakeLists.txt b/hl/tools/gif2h5/CMakeLists.txt
index f3b1fef..abef080 100644
--- a/hl/tools/gif2h5/CMakeLists.txt
+++ b/hl/tools/gif2h5/CMakeLists.txt
@@ -14,41 +14,27 @@ set (GIF2H5_SOURCES
)
#-- Add gif2hdf5 program
-if (BUILD_STATIC_LIBS)
- add_executable (gif2h5 ${GIF2H5_SOURCES})
- target_compile_options(gif2h5 PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- target_include_directories (gif2h5 PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+add_executable (gif2h5 ${GIF2H5_SOURCES})
+target_compile_options(gif2h5 PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+target_include_directories (gif2h5 PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (gif2h5 STATIC)
target_link_libraries (gif2h5 PRIVATE ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
- set_target_properties (gif2h5 PROPERTIES FOLDER tools/hl)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};gif2h5")
- set (H5_DEP_EXECUTABLES
- gif2h5
- )
-endif ()
-
-if (BUILD_SHARED_LIBS)
- add_executable (gif2h5-shared ${GIF2H5_SOURCES})
- target_compile_options(gif2h5-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- target_include_directories (gif2h5-shared PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- TARGET_C_PROPERTIES (gif2h5-shared SHARED)
- target_link_libraries (gif2h5-shared PRIVATE ${HDF5_HL_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} ${HDF5_TOOLS_LIBSH_TARGET})
- set_target_properties (gif2h5-shared PROPERTIES FOLDER tools/hl)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};gif2h5-shared")
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES}
- gif2h5-shared
- )
+else ()
+ TARGET_C_PROPERTIES (gif2h5 SHARED)
+ target_link_libraries (gif2h5 PRIVATE ${HDF5_HL_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} ${HDF5_TOOLS_LIBSH_TARGET})
endif ()
+set_target_properties (gif2h5 PROPERTIES FOLDER tools/hl)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};gif2h5")
+set (H5_DEP_EXECUTABLES
+ gif2h5
+)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_HL_TOOLS_GIF2H5_FORMAT gif2h5)
- else ()
- clang_format (HDF5_HL_TOOLS_GIF2H5_FORMAT gif2h5-shared)
- endif ()
+ clang_format (HDF5_HL_TOOLS_GIF2H5_FORMAT gif2h5)
endif ()
#-- Add h52gif program
@@ -56,41 +42,27 @@ set (hdf2gif_SOURCES
${HDF5_HL_TOOLS_GIF2H5_SOURCE_DIR}/hdf2gif.c
${HDF5_HL_TOOLS_GIF2H5_SOURCE_DIR}/hdfgifwr.c
)
-if (BUILD_STATIC_LIBS)
- add_executable (h52gif ${hdf2gif_SOURCES})
- target_compile_options(h52gif PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- target_include_directories (h52gif PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+add_executable (h52gif ${hdf2gif_SOURCES})
+target_compile_options(h52gif PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+target_include_directories (h52gif PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h52gif STATIC)
target_link_libraries (h52gif PRIVATE ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
- set_target_properties (h52gif PROPERTIES FOLDER tools/hl)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h52gif")
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES}
- h52gif
- )
-endif ()
-
-if (BUILD_SHARED_LIBS)
- add_executable (h52gif-shared ${hdf2gif_SOURCES})
- target_compile_options(h52gif-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- target_include_directories (h52gif-shared PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- TARGET_C_PROPERTIES (h52gif-shared SHARED)
- target_link_libraries (h52gif-shared PRIVATE ${HDF5_HL_LIBSH_TARGET} PRIVATE ${HDF5_LIBSH_TARGET} ${HDF5_TOOLS_LIBSH_TARGET})
- set_target_properties (h52gif-shared PROPERTIES FOLDER tools/hl)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h52gif-shared")
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES}
- h52gif-shared
- )
+else ()
+ TARGET_C_PROPERTIES (h52gif SHARED)
+ target_link_libraries (h52gif PRIVATE ${HDF5_HL_LIBSH_TARGET} PRIVATE ${HDF5_LIBSH_TARGET} ${HDF5_TOOLS_LIBSH_TARGET})
endif ()
+set_target_properties (h52gif PROPERTIES FOLDER tools/hl)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h52gif")
+set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES}
+ h52gif
+)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_HL_TOOLS_H52GIF_FORMAT h52gif)
- else ()
- clang_format (HDF5_HL_TOOLS_H52GIF_FORMAT h52gif-shared)
- endif ()
+ clang_format (HDF5_HL_TOOLS_H52GIF_FORMAT h52gif)
endif ()
if (BUILD_TESTING AND HDF5_TEST_SERIAL)
diff --git a/hl/tools/gif2h5/CMakeTests.cmake b/hl/tools/gif2h5/CMakeTests.cmake
index dd0ccc4..be431c1 100644
--- a/hl/tools/gif2h5/CMakeTests.cmake
+++ b/hl/tools/gif2h5/CMakeTests.cmake
@@ -47,29 +47,29 @@ add_test (
)
set_tests_properties (HL_TOOLS-clean-objects PROPERTIES FIXTURES_CLEANUP clear_tools_hl)
-add_test (NAME HL_TOOLS_gif2h5 COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:gif2h5${tgt_file_ext}> testfiles/image1.gif image1.h5)
+add_test (NAME HL_TOOLS_gif2h5 COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:gif2h5> testfiles/image1.gif image1.h5)
set_tests_properties (HL_TOOLS_gif2h5 PROPERTIES
FIXTURES_REQUIRED clear_tools_hl
)
-add_test (NAME HL_TOOLS_h52gif COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h52gif${tgt_file_ext}> testfiles/h52giftst.h5 image1.gif -i image)
+add_test (NAME HL_TOOLS_h52gif COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h52gif> testfiles/h52giftst.h5 image1.gif -i image)
set_tests_properties (HL_TOOLS_h52gif PROPERTIES
FIXTURES_REQUIRED clear_tools_hl
)
-add_test (NAME HL_TOOLS_h52gif_none COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h52gif${tgt_file_ext}> testfiles/h52giftst.h5 image.gif -i nosuch_image)
+add_test (NAME HL_TOOLS_h52gif_none COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h52gif> testfiles/h52giftst.h5 image.gif -i nosuch_image)
set_tests_properties (HL_TOOLS_h52gif_none PROPERTIES
WILL_FAIL "true"
FIXTURES_REQUIRED clear_tools_hl
)
-#add_test (NAME HL_TOOLS_h52gifpal COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h52gif${tgt_file_ext}> testfiles/h52giftst.h5 image.gif -i palette)
+#add_test (NAME HL_TOOLS_h52gifpal COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h52gif> testfiles/h52giftst.h5 image.gif -i palette)
#set_tests_properties (HL_TOOLS_h52gifpal PROPERTIES
# WILL_FAIL "true"
# FIXTURES_REQUIRED clear_tools_hl
#)
-add_test (NAME HL_TOOLS_h52gif24bits COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h52gif${tgt_file_ext}> testfiles/ex_image2.h5 image24.gif -i image24bitpixel)
+add_test (NAME HL_TOOLS_h52gif24bits COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h52gif> testfiles/ex_image2.h5 image24.gif -i image24bitpixel)
set_tests_properties (HL_TOOLS_h52gif24bits PROPERTIES
WILL_FAIL "true"
FIXTURES_REQUIRED clear_tools_hl
diff --git a/hl/tools/h5watch/CMakeLists.txt b/hl/tools/h5watch/CMakeLists.txt
index 890ac37..7b00431 100644
--- a/hl/tools/h5watch/CMakeLists.txt
+++ b/hl/tools/h5watch/CMakeLists.txt
@@ -9,34 +9,24 @@ set (H5WATCH_SOURCES
)
#-- Add h5watch program
-if (BUILD_STATIC_LIBS)
- add_executable (h5watch ${H5WATCH_SOURCES})
- target_compile_options(h5watch PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- target_include_directories (h5watch PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+add_executable (h5watch ${H5WATCH_SOURCES})
+target_compile_options(h5watch PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+target_include_directories (h5watch PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5watch STATIC)
target_link_libraries (h5watch PRIVATE ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
- set_target_properties (h5watch PROPERTIES FOLDER tools/hl)
- set (H5_DEP_EXECUTABLES h5watch)
-endif ()
-if (BUILD_SHARED_LIBS)
- add_executable (h5watch-shared ${H5WATCH_SOURCES})
- target_compile_options(h5watch-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- target_include_directories (h5watch-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- TARGET_C_PROPERTIES (h5watch-shared SHARED)
- target_link_libraries (h5watch-shared PRIVATE ${HDF5_HL_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} ${HDF5_TOOLS_LIBSH_TARGET})
- set_target_properties (h5watch-shared PROPERTIES FOLDER tools/hl)
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5watch-shared)
+else ()
+ TARGET_C_PROPERTIES (h5watch SHARED)
+ target_link_libraries (h5watch PRIVATE ${HDF5_HL_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} ${HDF5_TOOLS_LIBSH_TARGET})
endif ()
+set_target_properties (h5watch PROPERTIES FOLDER tools/hl)
+set (H5_DEP_EXECUTABLES h5watch)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_HL_TOOLS_H5WATCH_FORMAT h5watch)
- else ()
- clang_format (HDF5_HL_TOOLS_H5WATCH_FORMAT h5watch-shared)
- endif ()
+ clang_format (HDF5_HL_TOOLS_H5WATCH_FORMAT h5watch)
endif ()
if (BUILD_TESTING AND HDF5_TEST_SWMR AND HDF5_TEST_SERIAL)
@@ -47,7 +37,7 @@ if (BUILD_TESTING AND HDF5_TEST_SWMR AND HDF5_TEST_SERIAL)
add_executable (extend_dset ${extend_dset_SOURCES})
target_compile_options(extend_dset PRIVATE "${HDF5_CMAKE_C_FLAGS}")
target_include_directories (extend_dset PRIVATE "${HDF5_HL_SRC_DIR}/test;${HDF5_HL_SRC_DIR}/src;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- if (BUILD_STATIC_LIBS)
+ if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (extend_dset STATIC)
target_link_libraries (extend_dset PRIVATE ${HDF5_HL_LIB_TARGET} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
else ()
@@ -66,7 +56,7 @@ if (BUILD_TESTING AND HDF5_TEST_SWMR AND HDF5_TEST_SERIAL)
add_executable (h5watchgentest ${HDF5_HL_TOOLS_H5WATCH_SOURCE_DIR}/h5watchgentest.c)
target_compile_options(h5watchgentest PRIVATE "${HDF5_CMAKE_C_FLAGS}")
target_include_directories (h5watchgentest PRIVATE "${HDF5_HL_SRC_DIR}/src;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- if (BUILD_STATIC_LIBS)
+ if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5watchgentest STATIC)
target_link_libraries (h5watchgentest PRIVATE ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
else ()
diff --git a/hl/tools/h5watch/CMakeTests.cmake b/hl/tools/h5watch/CMakeTests.cmake
index ce0e10e..fd40010 100644
--- a/hl/tools/h5watch/CMakeTests.cmake
+++ b/hl/tools/h5watch/CMakeTests.cmake
@@ -74,7 +74,7 @@ add_custom_target(H5WATCH_files ALL COMMENT "Copying files needed by H5WATCH tes
NAME H5WATCH_ARGS-h5watch-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5watch${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5watch>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -99,7 +99,7 @@ add_custom_target(H5WATCH_files ALL COMMENT "Copying files needed by H5WATCH tes
NAME H5WATCH_ARGS-h5watch-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5watch${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5watch>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -126,7 +126,7 @@ add_custom_target(H5WATCH_files ALL COMMENT "Copying files needed by H5WATCH tes
NAME H5WATCH-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5watch${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5watch>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt
index 7d17b1c..75ad5ff 100644
--- a/release_docs/INSTALL_CMake.txt
+++ b/release_docs/INSTALL_CMake.txt
@@ -779,7 +779,7 @@ In the options listed below, there are three columns of information:
Option Name, Option Description, and Option Default.
The config/cmake/cacheinit.cmake file can override the following values.
----------------- General Build Options ---------------------
+---------------- General Build Options -------------------------------------
BUILD_SHARED_LIBS "Build Shared Libraries" ON
BUILD_STATIC_LIBS "Build Static Libraries" ON
BUILD_STATIC_EXECS "Build Static Executables" OFF
@@ -787,17 +787,18 @@ BUILD_TESTING "Build HDF5 Unit Testing" ON
if (WINDOWS)
DISABLE_PDB_FILES "Do not install PDB files" OFF
----------------- HDF5 Build Options ---------------------
-HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" OFF
-HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" ON
-HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF
-HDF5_BUILD_JAVA "Build JAVA support" OFF
-HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" ON
-HDF5_BUILD_TOOLS "Build HDF5 Tools" ON
-HDF5_BUILD_HL_GIF_TOOLS "Build HIGH Level HDF5 GIF Tools" OFF
-HDF5_BUILD_PARALLEL_TOOLS "Build Parallel HDF5 Tools" OFF
-
----------------- HDF5 Folder Build Options ---------------------
+---------------- HDF5 Build Options ----------------------------------------
+HDF5_BUILD_CPP_LIB "Build HDF5 C++ Library" OFF
+HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples" ON
+HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF
+HDF5_BUILD_JAVA "Build JAVA support" OFF
+HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" ON
+HDF5_BUILD_TOOLS "Build HDF5 Tools" ON
+HDF5_BUILD_HL_GIF_TOOLS "Build HIGH Level HDF5 GIF Tools" OFF
+HDF5_BUILD_PARALLEL_TOOLS "Build Parallel HDF5 Tools" OFF
+HDF5_BUILD_STATIC_TOOLS "Build Static Tools Not Shared Tools" OFF
+
+---------------- HDF5 Folder Build Options ---------------------------------
Defaults relative to $<INSTALL_PREFIX>
HDF5_INSTALL_BIN_DIR "bin"
HDF5_INSTALL_LIB_DIR "lib"
@@ -904,24 +905,24 @@ if (BUILD_TESTING)
HDF5_DISABLE_TESTS_REGEX "Regex pattern to set execution of specific tests to DISABLED" ""
---------------- External Library Options ---------------------
-HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO GIT TGZ)" "NO"
-HDF5_ENABLE_PLUGIN_SUPPORT "Enable PLUGIN Filters" OFF
-HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF
-HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" ON
+HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO GIT TGZ)" "NO"
+HDF5_ENABLE_PLUGIN_SUPPORT "Enable PLUGIN Filters" OFF
+HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF
+HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" ON
-ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" OFF
-ZLIB_TGZ_ORIGPATH "Use ZLIB from original location" "https://github.com/madler/zlib/releases/download/v1.2.13"
-ZLIB_TGZ_NAME "Use ZLIB from original compressed file" "zlib-1.2.13.tar.gz"
-ZLIB_USE_LOCALCONTENT "Use local file for ZLIB FetchContent" ON
+ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" OFF
+ZLIB_TGZ_ORIGPATH "Use ZLIB from original location" "https://github.com/madler/zlib/releases/download/v1.2.13"
+ZLIB_TGZ_NAME "Use ZLIB from original compressed file" "zlib-1.2.13.tar.gz"
+ZLIB_USE_LOCALCONTENT "Use local file for ZLIB FetchContent" ON
-SZIP_USE_EXTERNAL "Use External Library Building for SZIP" OFF
+SZIP_USE_EXTERNAL "Use External Library Building for SZIP" OFF
if (HDF5_ENABLE_SZIP_SUPPORT)
- HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" ON
-LIBAEC_TGZ_ORIGPATH "Use LIBAEC from original location" "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6/libaec-1.0.6.tar.gz"
-LIBAEC_TGZ_NAME "Use LIBAEC from original compressed file" "libaec-v1.0.6.tar.gz"
-LIBAEC_USE_LOCALCONTENT "Use local file for LIBAEC FetchContent" ON
+ HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" ON
+LIBAEC_TGZ_ORIGPATH "Use LIBAEC from original location" "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6/libaec-1.0.6.tar.gz"
+LIBAEC_TGZ_NAME "Use LIBAEC from original compressed file" "libaec-v1.0.6.tar.gz"
+LIBAEC_USE_LOCALCONTENT "Use local file for LIBAEC FetchContent" ON
-PLUGIN_USE_EXTERNAL "Use External Library Building for PLUGINS" OFF
+PLUGIN_USE_EXTERNAL "Use External Library Building for PLUGINS" OFF
if (WINDOWS)
H5_DEFAULT_PLUGINDIR "%ALLUSERSPROFILE%/hdf5/lib/plugin"
else ()
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 824cd15..035894b 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -47,6 +47,14 @@ New Features
Configuration:
-------------
+ - New option for building and naming tools in CMake
+
+ The following option has been added:
+ HDF5_BUILD_STATIC_TOOLS "Build Static Tools Not Shared Tools" OFF
+
+ The default will build shared tools unless BUILD_SHARED_LIBS = OFF.
+ Tools will no longer have "-shared" as only one set of tools will be created.
+
- Incorporated HDF5 examples repository into HDF5 library.
The HDF5Examples folder is equivalent to the repository hdf5-examples.
diff --git a/test/API/H5_api_link_test.c b/test/API/H5_api_link_test.c
index b6ae512..e681084 100644
--- a/test/API/H5_api_link_test.c
+++ b/test/API/H5_api_link_test.c
@@ -374,6 +374,7 @@ test_create_hard_link_many(void)
hid_t file_id = H5I_INVALID_HID;
hid_t container_group = H5I_INVALID_HID;
hid_t group_id = H5I_INVALID_HID, group_id2 = H5I_INVALID_HID;
+ bool valid_name_matched = FALSE;
char objname[HARD_LINK_TEST_GROUP_MANY_NAME_BUF_SIZE]; /* Object name */
TESTING("hard link creation of many links");
@@ -505,6 +506,7 @@ test_create_hard_link_many(void)
HARD_LINK_TEST_GROUP_MANY_FINAL_NAME);
goto error;
}
+
/* Check name */
if (H5Iget_name(group_id2, objname, (size_t)HARD_LINK_TEST_GROUP_MANY_NAME_BUF_SIZE) < 0) {
H5_FAILED();
@@ -512,9 +514,23 @@ test_create_hard_link_many(void)
goto error;
}
- if (strcmp(objname, "/" LINK_TEST_GROUP_NAME "/" HARD_LINK_TEST_GROUP_MANY_NAME "/hard21")) {
+ for (size_t i = 1; (i < HARD_LINK_TEST_GROUP_MANY_NUM_HARD_LINKS + 1 && !valid_name_matched); i++) {
+ char name_possibility[H5_API_TEST_FILENAME_MAX_LENGTH];
+
+ snprintf(name_possibility, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%zu",
+ "/" LINK_TEST_GROUP_NAME "/" HARD_LINK_TEST_GROUP_MANY_NAME "/hard", i);
+
+ valid_name_matched |= !strcmp(objname, name_possibility);
+ }
+
+ valid_name_matched |= !strcmp(objname, "/" LINK_TEST_GROUP_NAME "/" HARD_LINK_TEST_GROUP_MANY_NAME
+ "/" HARD_LINK_TEST_GROUP_MANY_FINAL_NAME);
+
+ if (!valid_name_matched) {
H5_FAILED();
- printf(" wrong name of the object '%s'\n", objname);
+ printf(" H5Iget_name failed to retrieve a valid name for '%s'\n",
+ HARD_LINK_TEST_GROUP_MANY_FINAL_NAME);
+
goto error;
}
@@ -900,7 +916,8 @@ test_create_hard_link_invalid_params(void)
{
TESTING_2("H5Lcreate_hard across files");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -1555,11 +1572,12 @@ error:
static int
test_create_soft_link_many(void)
{
- htri_t link_exists;
- hid_t file_id = H5I_INVALID_HID;
- hid_t container_group = H5I_INVALID_HID;
- hid_t group_id = H5I_INVALID_HID;
- hid_t object_id = H5I_INVALID_HID;
+ htri_t link_exists = FAIL;
+ bool valid_name_matched = FALSE;
+ hid_t file_id = H5I_INVALID_HID;
+ hid_t container_group = H5I_INVALID_HID;
+ hid_t group_id = H5I_INVALID_HID;
+ hid_t object_id = H5I_INVALID_HID;
char objname[SOFT_LINK_TEST_GROUP_MANY_NAME_BUF_SIZE]; /* Object name */
TESTING("soft link creation of many links");
@@ -1709,9 +1727,23 @@ test_create_soft_link_many(void)
goto error;
}
- if (strcmp(objname, "/" LINK_TEST_GROUP_NAME "/" SOFT_LINK_TEST_GROUP_MANY_NAME "/soft16")) {
+ for (size_t i = 1; (i < SOFT_LINK_TEST_GROUP_MANY_NAME_SOFT_LINK_COUNT + 1 && !valid_name_matched); i++) {
+ char name_possibility[H5_API_TEST_FILENAME_MAX_LENGTH];
+
+ snprintf(name_possibility, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%zu",
+ "/" LINK_TEST_GROUP_NAME "/" SOFT_LINK_TEST_GROUP_MANY_NAME "/soft", i);
+
+ valid_name_matched |= !strcmp(objname, name_possibility);
+ }
+
+ valid_name_matched |= !strcmp(objname, "/" LINK_TEST_GROUP_NAME "/" SOFT_LINK_TEST_GROUP_MANY_NAME
+ "/" SOFT_LINK_TEST_GROUP_MANY_FINAL_NAME);
+
+ if (!valid_name_matched) {
H5_FAILED();
- printf(" wrong name of the object '%s'\n", objname);
+ printf(" H5Iget_name failed to retrieve a valid name for '%s'\n",
+ "/" LINK_TEST_GROUP_NAME "/" SOFT_LINK_TEST_GROUP_MANY_NAME
+ "/" SOFT_LINK_TEST_GROUP_MANY_FINAL_NAME);
goto error;
}
@@ -1999,7 +2031,8 @@ test_create_external_link(void)
return 0;
}
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -2107,7 +2140,8 @@ test_create_external_link_dangling(void)
return 0;
}
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -2248,7 +2282,8 @@ test_create_external_link_multi(void)
{
TESTING_2("Create the first external file to be pointed to");
- snprintf(ext_link_filename1, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename1, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((file_id = H5Fcreate(ext_link_filename1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -2308,7 +2343,7 @@ test_create_external_link_multi(void)
{
TESTING_2("Create the second external file to be pointed to");
- snprintf(ext_link_filename2, H5_API_TEST_FILENAME_MAX_LENGTH, "%s",
+ snprintf(ext_link_filename2, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
EXTERNAL_LINK_TEST_FILE_NAME2);
if ((file_id = H5Fcreate(ext_link_filename2, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
@@ -2365,7 +2400,7 @@ test_create_external_link_multi(void)
{
TESTING_2("Create the third external file to be pointed to");
- snprintf(ext_link_filename3, H5_API_TEST_FILENAME_MAX_LENGTH, "%s",
+ snprintf(ext_link_filename3, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
EXTERNAL_LINK_TEST_FILE_NAME3);
if ((file_id = H5Fcreate(ext_link_filename3, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
@@ -2462,9 +2497,10 @@ test_create_external_link_multi(void)
PART_ERROR(H5Lcreate_external_final_file);
}
- if (strcmp(objname, "/A/B/C")) {
+ if (strcmp(objname, "/A/B/C") && strcmp(objname, "/D/E/F") && strcmp(objname, "/G/H/I") &&
+ strcmp(objname, "/" LINK_TEST_GROUP_NAME "/" EXTERNAL_LINK_TEST_MULTI_NAME "/ext_link")) {
H5_FAILED();
- printf(" wrong name of the object '%s'\n", objname);
+ printf(" H5Iget_name failed to retrieve a valid name for the object '%s'\n", "/A/B/C");
PART_ERROR(H5Lcreate_external_final_file);
}
@@ -2532,9 +2568,13 @@ test_create_external_link_multi(void)
PART_ERROR(H5Lcreate_external_object_created);
}
- if (strcmp(objname, "/A/B/C/new_group")) {
+ if (strcmp(objname, "/A/B/C/new_group") && strcmp(objname, "/D/E/F/new_group") &&
+ strcmp(objname, "/G/H/I/new_group") &&
+ strcmp(objname,
+ "/" LINK_TEST_GROUP_NAME "/" EXTERNAL_LINK_TEST_MULTI_NAME "/ext_link/new_group")) {
H5_FAILED();
- printf(" wrong name of the object '%s'\n", objname);
+ printf(" H5Iget_name was unable to retrieve a valid name for the object '%s'\n",
+ "/A/B/C/new_group");
PART_ERROR(H5Lcreate_external_object_created);
}
@@ -2587,9 +2627,10 @@ error:
static int
test_create_external_link_ping_pong(void)
{
- hid_t file_id = H5I_INVALID_HID;
- hid_t group_id = H5I_INVALID_HID;
- hid_t group_id2 = H5I_INVALID_HID;
+ hid_t file_id = H5I_INVALID_HID;
+ hid_t group_id = H5I_INVALID_HID;
+ hid_t group_id2 = H5I_INVALID_HID;
+ bool valid_name_matched = false;
char ext_link_filename1[H5_API_TEST_FILENAME_MAX_LENGTH];
char ext_link_filename2[H5_API_TEST_FILENAME_MAX_LENGTH];
char objname[EXTERNAL_LINK_TEST_MULTI_NAME_BUF_SIZE];
@@ -2605,8 +2646,10 @@ test_create_external_link_ping_pong(void)
return 0;
}
- snprintf(ext_link_filename1, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_PING_PONG_NAME1);
- snprintf(ext_link_filename2, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_PING_PONG_NAME2);
+ snprintf(ext_link_filename1, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_PING_PONG_NAME1);
+ snprintf(ext_link_filename2, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_PING_PONG_NAME2);
BEGIN_MULTIPART
{
@@ -2735,9 +2778,19 @@ test_create_external_link_ping_pong(void)
PART_ERROR(H5Lcreate_external_verify);
}
- if (strcmp(objname, "/final")) {
+ for (size_t i = 1; i < EXTERNAL_LINK_TEST_PING_PONG_NUM_LINKS + 1 && !valid_name_matched; i++) {
+ char name_possibility[H5_API_TEST_FILENAME_MAX_LENGTH];
+
+ snprintf(name_possibility, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%zu", "/link", i);
+
+ valid_name_matched |= !strcmp(name_possibility, objname);
+ }
+
+ valid_name_matched |= !strcmp(objname, "/final");
+
+ if (!valid_name_matched) {
H5_FAILED();
- printf(" wrong name of the object '%s'\n", objname);
+ printf(" H5Iget_name was unable to retrieve a valid name for the object '%s'\n", "/final");
PART_ERROR(H5Lcreate_external_verify);
}
@@ -2795,9 +2848,20 @@ test_create_external_link_ping_pong(void)
PART_ERROR(H5Lcreate_external_verify_again);
}
- if (strcmp(objname, "/final/new_group")) {
+ for (size_t i = 1; i < EXTERNAL_LINK_TEST_PING_PONG_NUM_LINKS + 1 && !valid_name_matched; i++) {
+ char name_possibility[H5_API_TEST_FILENAME_MAX_LENGTH];
+
+ snprintf(name_possibility, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%zu%s", "/link", i,
+ "/new_group");
+
+ valid_name_matched |= !strcmp(objname, name_possibility);
+ }
+
+ valid_name_matched |= !strcmp(objname, "/final/new_group");
+
+ if (!valid_name_matched) {
H5_FAILED();
- printf(" wrong name of the object '%s'\n", objname);
+ printf(" H5Iget_name was unable to find a valid name for '%s'\n", "/final/new_group");
PART_ERROR(H5Lcreate_external_verify_again);
}
@@ -2860,7 +2924,7 @@ test_create_external_link_invalid_params(void)
TESTING_2("test setup");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s",
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
EXTERNAL_LINK_INVALID_PARAMS_TEST_FILE_NAME);
if ((file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
@@ -3751,7 +3815,8 @@ test_delete_link(void)
{
TESTING_2("H5Ldelete on external link");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -5714,7 +5779,8 @@ test_delete_link(void)
}
/* Create file for external link to reference */
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -5995,7 +6061,8 @@ test_delete_link(void)
}
/* Create file for external link to reference */
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -6270,7 +6337,8 @@ test_delete_link(void)
TESTING_2("H5Ldelete_by_idx on external link by alphabetical order in increasing order");
/* Create file for external link to reference */
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -6545,7 +6613,8 @@ test_delete_link(void)
TESTING_2("H5Ldelete_by_idx on external link by alphabetical order in decreasing order");
/* Create file for external link to reference */
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -8253,7 +8322,8 @@ test_copy_link(void)
{
TESTING_2("H5Lcopy on external link (copied link's properties not checked)");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -8361,7 +8431,8 @@ test_copy_link(void)
TESTING_2("H5Lcopy on external link (copied link's properties checked)");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -8564,7 +8635,8 @@ test_copy_link(void)
{
TESTING_2("H5Lcopy on external link using H5L_SAME_LOC");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -9081,7 +9153,8 @@ test_copy_link_invalid_params(void)
{
TESTING_2("H5Lcopy invalid across files");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -9175,7 +9248,8 @@ test_move_link(void)
TESTING_2("test setup");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((file_id = H5Fopen(H5_api_test_filename, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -10056,7 +10130,8 @@ test_move_link(void)
{
TESTING_2("H5Lmove on external link (moved link's properties not checked)");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -10164,7 +10239,8 @@ test_move_link(void)
TESTING_2("H5Lmove on external link (moved link's properties checked)");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -10367,7 +10443,8 @@ test_move_link(void)
{
TESTING_2("H5Lmove on external link using H5L_SAME_LOC");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -10505,7 +10582,8 @@ test_move_link(void)
{
TESTING_2("H5Lmove to rename external link without moving it");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -11389,7 +11467,8 @@ test_move_link_invalid_params(void)
{
TESTING_2("H5Lmove into another file");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -11628,7 +11707,8 @@ test_get_link_val(void)
memset(&link_info, 0, sizeof(link_info));
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -12526,7 +12606,8 @@ test_get_link_val(void)
PART_EMPTY(H5Lget_val_by_idx_external_crt_order_increasing);
}
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -12775,7 +12856,8 @@ test_get_link_val(void)
PART_EMPTY(H5Lget_val_by_idx_external_crt_order_decreasing);
}
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -13018,7 +13100,8 @@ test_get_link_val(void)
TESTING_2("H5Lget_val_by_idx on external link by alphabetical order in increasing order");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -13261,7 +13344,8 @@ test_get_link_val(void)
TESTING_2("H5Lget_val_by_idx on external link by alphabetical order in decreasing order");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -14168,7 +14252,8 @@ test_get_link_info(void)
memset(&link_info, 0, sizeof(link_info));
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -15733,7 +15818,8 @@ test_get_link_info(void)
PART_EMPTY(H5Lget_info_by_idx_external_crt_order_increasing);
}
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -15936,7 +16022,8 @@ test_get_link_info(void)
PART_EMPTY(H5Lget_info_by_idx_external_crt_order_decreasing);
}
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -16133,7 +16220,8 @@ test_get_link_info(void)
{
TESTING_2("H5Lget_info_by_idx2 on external link by alphabetical order in increasing order");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -16336,7 +16424,8 @@ test_get_link_info(void)
{
TESTING_2("H5Lget_info_by_idx2 on external link by alphabetical order in decreasing order");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -18362,7 +18451,8 @@ test_get_link_name(void)
}
/* Create file for external link to reference */
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -18550,7 +18640,8 @@ test_get_link_name(void)
}
/* Create file for external link to reference */
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -18732,7 +18823,8 @@ test_get_link_name(void)
TESTING_2("H5Lget_name_by_idx on external link by alphabetical order in increasing order");
/* Create file for external link to reference */
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -18914,7 +19006,8 @@ test_get_link_name(void)
TESTING_2("H5Lget_name_by_idx on external link by alphabetical order in decreasing order");
/* Create file for external link to reference */
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((ext_file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -19580,6 +19673,14 @@ test_link_iterate_hard_links(void)
{
TESTING_2("H5Literate2 by link name in increasing order");
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
+ SKIPPED();
+ printf(" API functions for external or user-defined link aren't supported with this "
+ "connector\n");
+ PART_EMPTY(H5Literate_link_name_increasing);
+ }
+
i = 0;
/* Test basic link iteration capability using both index types and both index orders */
@@ -20215,7 +20316,8 @@ test_link_iterate_external_links(void)
TESTING_2("test setup");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -20301,6 +20403,12 @@ test_link_iterate_external_links(void)
{
TESTING_2("H5Literate2 by link name in increasing order");
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS)) {
+ SKIPPED();
+ printf(" external link API is not supported with this VOL connector\n");
+ PART_EMPTY(H5Literate_link_name_increasing);
+ }
+
i = 0;
/* Test basic link iteration capability using both index types and both index orders */
@@ -20325,6 +20433,12 @@ test_link_iterate_external_links(void)
{
TESTING_2("H5Literate2 by link name in decreasing order");
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS)) {
+ SKIPPED();
+ printf(" external link API is not supported with this VOL connector\n");
+ PART_EMPTY(H5Literate_link_name_decreasing);
+ }
+
/* Reset the counter to the appropriate value for the next test */
i = LINK_ITER_EXT_LINKS_TEST_NUM_LINKS;
@@ -20349,9 +20463,11 @@ test_link_iterate_external_links(void)
{
TESTING_2("H5Literate2 by creation order in increasing order");
- if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER)) {
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS)) {
SKIPPED();
- printf(" creation order tracking isn't supported with this VOL connector\n");
+ printf(" creation order tracking or the external link API aren't supported with this VOL "
+ "connector\n");
PART_EMPTY(H5Literate_link_creation_increasing);
}
@@ -20379,9 +20495,11 @@ test_link_iterate_external_links(void)
{
TESTING_2("H5Literate2 by creation order in decreasing order");
- if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER)) {
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS)) {
SKIPPED();
- printf(" creation order tracking isn't supported with this VOL connector\n");
+ printf(" creation order tracking or the external link API aren't supported with this VOL "
+ "connector\n");
PART_EMPTY(H5Literate_link_creation_decreasing);
}
@@ -20409,6 +20527,12 @@ test_link_iterate_external_links(void)
{
TESTING_2("H5Literate_by_name2 by link name in increasing order");
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS)) {
+ SKIPPED();
+ printf(" the external link API is not supported with this VOL connector\n");
+ PART_EMPTY(H5Literate_by_name_link_name_increasing);
+ }
+
/* Reset the counter to the appropriate value for the next test */
i = 0;
@@ -20434,6 +20558,13 @@ test_link_iterate_external_links(void)
{
TESTING_2("H5Literate_by_name2 by link name in decreasing order");
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS)) {
+ SKIPPED();
+ printf(" creation order tracking or the external link API aren't supported with this VOL "
+ "connector\n");
+ PART_EMPTY(H5Literate_by_name_creation_decreasing);
+ }
+
/* Reset the counter to the appropriate value for the next test */
i = LINK_ITER_EXT_LINKS_TEST_NUM_LINKS;
@@ -20459,9 +20590,11 @@ test_link_iterate_external_links(void)
{
TESTING_2("H5Literate_by_name2 by creation order in increasing order");
- if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER)) {
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS)) {
SKIPPED();
- printf(" creation order tracking isn't supported with this VOL connector\n");
+ printf(" creation order tracking or the external link API aren't supported with this VOL "
+ "connector\n");
PART_EMPTY(H5Literate_by_name_creation_increasing);
}
@@ -20491,9 +20624,11 @@ test_link_iterate_external_links(void)
{
TESTING_2("H5Literate_by_name2 by creation order in decreasing order");
- if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER)) {
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS)) {
SKIPPED();
- printf(" creation order tracking isn't supported with this VOL connector\n");
+ printf(" creation order tracking or the external link API are not supported with this VOL "
+ "connector\n");
PART_EMPTY(H5Literate_by_name_creation_decreasing);
}
@@ -20612,7 +20747,8 @@ test_link_iterate_mixed_links(void)
TESTING_2("test setup");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -20737,6 +20873,14 @@ test_link_iterate_mixed_links(void)
{
TESTING_2("H5Literate2 by link name in increasing order");
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
+ SKIPPED();
+ printf(" creation order tracking, external links, or user-defined links aren't supported "
+ "with this VOL connector\n");
+ PART_EMPTY(H5Literate_link_name_increasing);
+ }
+
i = 0;
/* Test basic link iteration capability using both index types and both index orders */
@@ -20760,6 +20904,14 @@ test_link_iterate_mixed_links(void)
{
TESTING_2("H5Literate2 by link name in decreasing order");
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
+ SKIPPED();
+ printf(" creation order tracking, external links, or user-defined links aren't supported "
+ "with this VOL connector\n");
+ PART_EMPTY(H5Literate_link_name_decreasing);
+ }
+
/* Reset the counter to the appropriate value for the next test */
i = LINK_ITER_MIXED_LINKS_TEST_NUM_LINKS;
@@ -20783,9 +20935,12 @@ test_link_iterate_mixed_links(void)
{
TESTING_2("H5Literate2 by creation order in increasing order");
- if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER)) {
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
SKIPPED();
- printf(" creation order tracking isn't supported with this VOL connector\n");
+ printf(" creation order tracking, external links, or user-defined links aren't supported "
+ "with this VOL connector\n");
PART_EMPTY(H5Literate_link_creation_increasing);
}
@@ -20813,9 +20968,12 @@ test_link_iterate_mixed_links(void)
{
TESTING_2("H5Literate2 by creation order in decreasing order");
- if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER)) {
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
SKIPPED();
- printf(" creation order tracking isn't supported with this VOL connector\n");
+ printf(" creation order tracking, external links, or user-defined links aren't supported "
+ "with this VOL connector\n");
PART_EMPTY(H5Literate_link_creation_decreasing);
}
@@ -20843,6 +21001,13 @@ test_link_iterate_mixed_links(void)
{
TESTING_2("H5Literate_by_name2 by link name in increasing order");
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
+ SKIPPED();
+ printf(" external links or user-defined links aren't supported with this VOL connector\n");
+ PART_EMPTY(H5Literate_by_name_link_name_increasing);
+ }
+
i = 0;
if (H5Literate_by_name2(
@@ -20867,6 +21032,13 @@ test_link_iterate_mixed_links(void)
{
TESTING_2("H5Literate_by_name2 by link name in decreasing order");
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
+ SKIPPED();
+ printf(" external links or user-defined links aren't supported with this VOL connector\n");
+ PART_EMPTY(H5Literate_by_name_link_name_decreasing);
+ }
+
/* Reset the counter to the appropriate value for the next test */
i = LINK_ITER_MIXED_LINKS_TEST_NUM_LINKS;
@@ -20892,9 +21064,12 @@ test_link_iterate_mixed_links(void)
{
TESTING_2("H5Literate_by_name2 by creation order in increasing order");
- if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER)) {
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
SKIPPED();
- printf(" creation order tracking isn't supported with this VOL connector\n");
+ printf(" creation order tracking, external links, or user-defined links aren't supported "
+ "with this VOL connector\n");
PART_EMPTY(H5Literate_by_name_creation_increasing);
}
@@ -20923,9 +21098,12 @@ test_link_iterate_mixed_links(void)
{
TESTING_2("H5Literate_by_name2 by creation order in decreasing order");
- if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER)) {
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
SKIPPED();
- printf(" creation order tracking isn't supported with this VOL connector\n");
+ printf(" creation order tracking, external links, or user-defined links aren't supported "
+ "with this VOL connector\n");
PART_EMPTY(H5Literate_by_name_creation_decreasing);
}
@@ -20954,9 +21132,12 @@ test_link_iterate_mixed_links(void)
{
TESTING_2("H5Literate2 index-saving capabilities in increasing order");
- if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER)) {
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
SKIPPED();
- printf(" creation order tracking isn't supported with this VOL connector\n");
+ printf(" creation order tracking, external links, or user-defined links aren't supported "
+ "with this VOL connector\n");
PART_EMPTY(H5Literate_index_saving_increasing);
}
@@ -20992,9 +21173,12 @@ test_link_iterate_mixed_links(void)
{
TESTING_2("H5Literate2 index-saving capabilities in decreasing order");
- if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER)) {
+ if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) ||
+ !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
SKIPPED();
- printf(" creation order tracking isn't supported with this VOL connector\n");
+ printf(" creation order tracking, external links, or user-defined links aren't supported "
+ "with this VOL connector\n");
PART_EMPTY(H5Literate_index_saving_decreasing);
}
@@ -21098,7 +21282,8 @@ test_link_iterate_invalid_params(void)
TESTING_2("test setup");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -22525,7 +22710,8 @@ test_link_visit_external_links_no_cycles(void)
TESTING_2("test setup");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -22953,7 +23139,8 @@ test_link_visit_mixed_links_no_cycles(void)
TESTING_2("test setup");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -24593,7 +24780,8 @@ test_link_visit_mixed_links_cycles(void)
TESTING_2("test setup");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -25030,7 +25218,8 @@ test_link_visit_invalid_params(void)
TESTING_2("test setup");
- snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s", EXTERNAL_LINK_TEST_FILE_NAME);
+ snprintf(ext_link_filename, H5_API_TEST_FILENAME_MAX_LENGTH, "%s%s", test_path_prefix,
+ EXTERNAL_LINK_TEST_FILE_NAME);
if ((file_id = H5Fcreate(ext_link_filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) {
H5_FAILED();
@@ -25829,7 +26018,6 @@ link_iter_external_links_cb(hid_t group_id, const char *name, const H5L_info2_t
herr_t ret_val = H5_ITER_CONT;
if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS)) {
- SKIPPED();
printf(" API functions for external links aren't supported with this "
"connector\n");
return 1;
@@ -25894,7 +26082,6 @@ link_iter_mixed_links_cb(hid_t group_id, const char *name, const H5L_info2_t *in
herr_t ret_val = 0;
if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) || !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
- SKIPPED();
printf(" API functions for external or user-defined link aren't supported with this "
"connector\n");
return 1;
@@ -25983,7 +26170,6 @@ link_iter_idx_saving_cb(hid_t group_id, const char *name, const H5L_info2_t *inf
int *broken = (int *)op_data;
if (!(vol_cap_flags_g & H5VL_CAP_FLAG_EXTERNAL_LINKS) || !(vol_cap_flags_g & H5VL_CAP_FLAG_UD_LINKS)) {
- SKIPPED();
printf(" API functions for external or user-defined link aren't supported with this "
"connector\n");
return 1;
diff --git a/test/API/H5_api_link_test.h b/test/API/H5_api_link_test.h
index c068f4f..02514cd 100644
--- a/test/API/H5_api_link_test.h
+++ b/test/API/H5_api_link_test.h
@@ -29,9 +29,10 @@ int H5_api_link_test(void);
#define HARD_LINK_TEST_GROUP_LONG_NAME "hard_link_long_name"
#define MAX_NAME_LEN ((64 * 1024) + 1024)
-#define HARD_LINK_TEST_GROUP_MANY_NAME "hard_link_many_name"
-#define HARD_LINK_TEST_GROUP_MANY_FINAL_NAME "hard_link_final"
-#define HARD_LINK_TEST_GROUP_MANY_NAME_BUF_SIZE 1024
+#define HARD_LINK_TEST_GROUP_MANY_NAME "hard_link_many_name"
+#define HARD_LINK_TEST_GROUP_MANY_FINAL_NAME "hard_link_final"
+#define HARD_LINK_TEST_GROUP_MANY_NAME_BUF_SIZE 1024
+#define HARD_LINK_TEST_GROUP_MANY_NUM_HARD_LINKS 21
#define H5L_SAME_LOC_TEST_GROUP_NAME "h5l_same_loc_test_group"
#define H5L_SAME_LOC_TEST_LINK_NAME1 "h5l_same_loc_test_link1"
@@ -58,9 +59,10 @@ int H5_api_link_test(void);
#define SOFT_LINK_TEST_GROUP_LONG_NAME "soft_link_long_name"
#define SOFT_LINK_TEST_LONG_OBJECT_NAME "soft_link_object_name"
-#define SOFT_LINK_TEST_GROUP_MANY_NAME "soft_link_many_name"
-#define SOFT_LINK_TEST_GROUP_MANY_FINAL_NAME "soft_link_final"
-#define SOFT_LINK_TEST_GROUP_MANY_NAME_BUF_SIZE 1024
+#define SOFT_LINK_TEST_GROUP_MANY_NAME "soft_link_many_name"
+#define SOFT_LINK_TEST_GROUP_MANY_FINAL_NAME "soft_link_final"
+#define SOFT_LINK_TEST_GROUP_MANY_NAME_BUF_SIZE 1024
+#define SOFT_LINK_TEST_GROUP_MANY_NAME_SOFT_LINK_COUNT 16
#define SOFT_LINK_INVALID_PARAMS_TEST_GROUP_NAME "soft_link_creation_invalid_params_test"
#define SOFT_LINK_INVALID_PARAMS_TEST_LINK_NAME "soft_link_to_root"
@@ -82,6 +84,7 @@ int H5_api_link_test(void);
#define EXTERNAL_LINK_TEST_PING_PONG_NAME1 "ext_link_file_ping_pong_1.h5"
#define EXTERNAL_LINK_TEST_PING_PONG_NAME2 "ext_link_file_ping_pong_2.h5"
#define EXTERNAL_LINK_TEST_PING_PONG_NAME_BUF_SIZE 1024
+#define EXTERNAL_LINK_TEST_PING_PONG_NUM_LINKS 6
#define EXTERNAL_LINK_INVALID_PARAMS_TEST_GROUP_NAME "external_link_creation_invalid_params_test"
#define EXTERNAL_LINK_INVALID_PARAMS_TEST_FILE_NAME "ext_link_invalid_params_file.h5"
diff --git a/test/h5test.c b/test/h5test.c
index 77a65c2..1cca57a 100644
--- a/test/h5test.c
+++ b/test/h5test.c
@@ -2068,6 +2068,49 @@ error:
} /* end h5_check_if_file_locking_enabled() */
/*-------------------------------------------------------------------------
+ * Function: h5_check_file_locking_env_var
+ *
+ * Purpose: Checks if the HDF5_USE_FILE_LOCKING file locking
+ * environment variable is set and parses its value if so.
+ *
+ * If the environment variable is not set, both `use_locks`
+ * and `ignore_disabled_locks` will be set to FAIL to indicate
+ * this. Otherwise, they will each be set appropriately based
+ * on the setting for the environment variable.
+ *
+ * Return: Nothing
+ *
+ *-------------------------------------------------------------------------
+ */
+void
+h5_check_file_locking_env_var(htri_t *use_locks, htri_t *ignore_disabled_locks)
+{
+ char *lock_env_var = NULL;
+
+ assert(use_locks);
+ assert(ignore_disabled_locks);
+
+ lock_env_var = getenv(HDF5_USE_FILE_LOCKING);
+ if (lock_env_var && (!strcmp(lock_env_var, "FALSE") || !strcmp(lock_env_var, "0"))) {
+ *use_locks = false; /* Override: Never use locks */
+ *ignore_disabled_locks = FAIL;
+ }
+ else if (lock_env_var && !strcmp(lock_env_var, "BEST_EFFORT")) {
+ *use_locks = true; /* Override: Always use locks */
+ *ignore_disabled_locks = true; /* Override: Ignore disabled locks */
+ }
+ else if (lock_env_var && (!strcmp(lock_env_var, "TRUE") || !strcmp(lock_env_var, "1"))) {
+ *use_locks = true; /* Override: Always use locks */
+ *ignore_disabled_locks = false; /* Override: Don't ignore disabled locks */
+ }
+ else {
+ /* Environment variable not set, or not set correctly */
+ *use_locks = FAIL;
+ *ignore_disabled_locks = FAIL;
+ }
+}
+
+/*-------------------------------------------------------------------------
* Function: h5_using_native_vol
*
* Purpose: Checks if the VOL connector being used is (or the VOL
diff --git a/test/h5test.h b/test/h5test.h
index 8115207..8f78567 100644
--- a/test/h5test.h
+++ b/test/h5test.h
@@ -290,6 +290,7 @@ H5TEST_DLL const char *h5_get_version_string(H5F_libver_t libver);
H5TEST_DLL int h5_compare_file_bytes(char *fname1, char *fname2);
H5TEST_DLL int h5_duplicate_file_by_bytes(const char *orig, const char *dest);
H5TEST_DLL herr_t h5_check_if_file_locking_enabled(bool *are_enabled);
+H5TEST_DLL void h5_check_file_locking_env_var(htri_t *use_locks, htri_t *ignore_disabled_locks);
H5TEST_DLL herr_t h5_using_native_vol(hid_t fapl_id, hid_t obj_id, bool *is_native_vol);
H5TEST_DLL bool h5_using_default_driver(const char *drv_name);
H5TEST_DLL herr_t h5_using_parallel_driver(hid_t fapl_id, bool *driver_is_parallel);
diff --git a/test/links.c b/test/links.c
index 827f1da..299a7c2 100644
--- a/test/links.c
+++ b/test/links.c
@@ -9837,24 +9837,26 @@ error:
static int
external_link_inherit_locking(hid_t fapl_id, bool new_format)
{
- hid_t fid = H5I_INVALID_HID;
- hid_t tmp_fid = H5I_INVALID_HID;
- hid_t gid = H5I_INVALID_HID;
- hid_t ext_fid = H5I_INVALID_HID;
- hid_t file_fapl = H5I_INVALID_HID;
- hid_t tmp_fapl = H5I_INVALID_HID;
- bool use_locking = true;
- bool ignore_disabled_locking = false;
- char *filename = NULL;
- char *ext_filename = NULL;
+ htri_t use_locking_env = FAIL;
+ htri_t ignore_disabled_env = FAIL;
+ hid_t fid = H5I_INVALID_HID;
+ hid_t tmp_fid = H5I_INVALID_HID;
+ hid_t gid = H5I_INVALID_HID;
+ hid_t ext_fid = H5I_INVALID_HID;
+ hid_t file_fapl = H5I_INVALID_HID;
+ hid_t tmp_fapl = H5I_INVALID_HID;
+ bool use_locking = true;
+ bool ignore_disabled_locking = false;
+ char *filename = NULL;
+ char *ext_filename = NULL;
if (new_format)
TESTING("inheriting of file locking settings (w/new group format)");
else
TESTING("inheriting of file locking settings");
- if (HDsetenv(HDF5_USE_FILE_LOCKING, "", 1) < 0)
- TEST_ERROR;
+ /* Get the settings for the file locking environment variables */
+ h5_check_file_locking_env_var(&use_locking_env, &ignore_disabled_env);
/* Check that external links are registered with the library */
if (H5Lis_registered(H5L_TYPE_EXTERNAL) != true)
@@ -9884,101 +9886,125 @@ external_link_inherit_locking(hid_t fapl_id, bool new_format)
if (H5Fclose(fid) < 0)
TEST_ERROR;
- /* Set file locking on */
- if (H5Pset_file_locking(file_fapl, true, true) < 0)
- TEST_ERROR;
-
- /* Open main file */
- if ((fid = H5Fopen(filename, H5F_ACC_RDWR, file_fapl)) < 0)
- TEST_ERROR;
+ /* Test for file locking on unless disabled by environment variable */
+ if (use_locking_env != false) {
+ /* Set file locking on */
+ if (H5Pset_file_locking(file_fapl, true, true) < 0)
+ TEST_ERROR;
- /* Make sure that locking setting retrieved from access plist
- * matches what we set.
- */
- if ((tmp_fapl = H5Fget_access_plist(fid)) < 0)
- TEST_ERROR;
- if (H5Pget_file_locking(tmp_fapl, &use_locking, &ignore_disabled_locking) < 0)
- TEST_ERROR;
- if (use_locking != true || ignore_disabled_locking != true)
- TEST_ERROR;
- if (H5Pclose(tmp_fapl) < 0)
- TEST_ERROR;
+ /* Open main file */
+ if ((fid = H5Fopen(filename, H5F_ACC_RDWR, file_fapl)) < 0)
+ TEST_ERROR;
- /* Open external file through link */
- if ((gid = H5Gopen2(fid, "ext_link", H5P_DEFAULT)) < 0)
- TEST_ERROR;
+ /* Make sure that locking setting retrieved from access plist
+ * matches what we set.
+ */
+ if ((tmp_fapl = H5Fget_access_plist(fid)) < 0)
+ TEST_ERROR;
+ if (H5Pget_file_locking(tmp_fapl, &use_locking, &ignore_disabled_locking) < 0)
+ TEST_ERROR;
+ if (use_locking != true)
+ TEST_ERROR;
+ /* Check for "ignore disabled file locks" setting being on, unless
+ * disabled by environment variable
+ */
+ if (ignore_disabled_env != false && ignore_disabled_locking != true)
+ TEST_ERROR;
+ if (H5Pclose(tmp_fapl) < 0)
+ TEST_ERROR;
- /* Get file ID for external file */
- if ((tmp_fid = H5Iget_file_id(gid)) < 0)
- TEST_ERROR;
+ /* Open external file through link */
+ if ((gid = H5Gopen2(fid, "ext_link", H5P_DEFAULT)) < 0)
+ TEST_ERROR;
- /* Make sure that locking setting retrieved from external file's
- * access plist matches what we set.
- */
- if ((tmp_fapl = H5Fget_access_plist(tmp_fid)) < 0)
- TEST_ERROR;
- if (H5Pget_file_locking(tmp_fapl, &use_locking, &ignore_disabled_locking) < 0)
- TEST_ERROR;
- if (use_locking != true || ignore_disabled_locking != true)
- TEST_ERROR;
- if (H5Pclose(tmp_fapl) < 0)
- TEST_ERROR;
+ /* Get file ID for external file */
+ if ((tmp_fid = H5Iget_file_id(gid)) < 0)
+ TEST_ERROR;
- if (H5Gclose(gid) < 0)
- TEST_ERROR;
- if (H5Fclose(tmp_fid) < 0)
- TEST_ERROR;
- if (H5Fclose(fid) < 0)
- TEST_ERROR;
+ /* Make sure that locking setting retrieved from external file's
+ * access plist matches what we set.
+ */
+ if ((tmp_fapl = H5Fget_access_plist(tmp_fid)) < 0)
+ TEST_ERROR;
+ if (H5Pget_file_locking(tmp_fapl, &use_locking, &ignore_disabled_locking) < 0)
+ TEST_ERROR;
+ if (use_locking != true)
+ TEST_ERROR;
+ /* Check for "ignore disabled file locks" setting being on, unless
+ * disabled by environment variable
+ */
+ if (ignore_disabled_env != false && ignore_disabled_locking != true)
+ TEST_ERROR;
+ if (H5Pclose(tmp_fapl) < 0)
+ TEST_ERROR;
- /* Repeat with file locking off */
+ if (H5Gclose(gid) < 0)
+ TEST_ERROR;
+ if (H5Fclose(tmp_fid) < 0)
+ TEST_ERROR;
+ if (H5Fclose(fid) < 0)
+ TEST_ERROR;
+ }
- /* Set file locking off */
- if (H5Pset_file_locking(file_fapl, false, false) < 0)
- TEST_ERROR;
+ /* Test for file locking off unless force enabled by environment variable */
+ if (use_locking_env != true) {
+ /* Set file locking off */
+ if (H5Pset_file_locking(file_fapl, false, false) < 0)
+ TEST_ERROR;
- /* Open main file */
- if ((fid = H5Fopen(filename, H5F_ACC_RDWR, file_fapl)) < 0)
- TEST_ERROR;
+ /* Open main file */
+ if ((fid = H5Fopen(filename, H5F_ACC_RDWR, file_fapl)) < 0)
+ TEST_ERROR;
- /* Make sure that locking setting retrieved from access plist
- * matches what we set.
- */
- if ((tmp_fapl = H5Fget_access_plist(fid)) < 0)
- TEST_ERROR;
- if (H5Pget_file_locking(tmp_fapl, &use_locking, &ignore_disabled_locking) < 0)
- TEST_ERROR;
- if (use_locking != false || ignore_disabled_locking != false)
- TEST_ERROR;
- if (H5Pclose(tmp_fapl) < 0)
- TEST_ERROR;
+ /* Make sure that locking setting retrieved from access plist
+ * matches what we set.
+ */
+ if ((tmp_fapl = H5Fget_access_plist(fid)) < 0)
+ TEST_ERROR;
+ if (H5Pget_file_locking(tmp_fapl, &use_locking, &ignore_disabled_locking) < 0)
+ TEST_ERROR;
+ if (use_locking != false)
+ TEST_ERROR;
+ /* Check for "ignore disabled file locks" setting being off, unless
+ * force enabled by environment variable
+ */
+ if (ignore_disabled_env != true && ignore_disabled_locking != false)
+ TEST_ERROR;
+ if (H5Pclose(tmp_fapl) < 0)
+ TEST_ERROR;
- /* Open external file through link */
- if ((gid = H5Gopen2(fid, "ext_link", H5P_DEFAULT)) < 0)
- TEST_ERROR;
+ /* Open external file through link */
+ if ((gid = H5Gopen2(fid, "ext_link", H5P_DEFAULT)) < 0)
+ TEST_ERROR;
- /* Get file ID for external file */
- if ((tmp_fid = H5Iget_file_id(gid)) < 0)
- TEST_ERROR;
+ /* Get file ID for external file */
+ if ((tmp_fid = H5Iget_file_id(gid)) < 0)
+ TEST_ERROR;
- /* Make sure that locking setting retrieved from external file's
- * access plist matches what we set.
- */
- if ((tmp_fapl = H5Fget_access_plist(tmp_fid)) < 0)
- TEST_ERROR;
- if (H5Pget_file_locking(tmp_fapl, &use_locking, &ignore_disabled_locking) < 0)
- TEST_ERROR;
- if (use_locking != false || ignore_disabled_locking != false)
- TEST_ERROR;
- if (H5Pclose(tmp_fapl) < 0)
- TEST_ERROR;
+ /* Make sure that locking setting retrieved from external file's
+ * access plist matches what we set.
+ */
+ if ((tmp_fapl = H5Fget_access_plist(tmp_fid)) < 0)
+ TEST_ERROR;
+ if (H5Pget_file_locking(tmp_fapl, &use_locking, &ignore_disabled_locking) < 0)
+ TEST_ERROR;
+ if (use_locking != false)
+ TEST_ERROR;
+ /* Check for "ignore disabled file locks" setting being off, unless
+ * force enabled by environment variable
+ */
+ if (ignore_disabled_env != true && ignore_disabled_locking != false)
+ TEST_ERROR;
+ if (H5Pclose(tmp_fapl) < 0)
+ TEST_ERROR;
- if (H5Gclose(gid) < 0)
- TEST_ERROR;
- if (H5Fclose(tmp_fid) < 0)
- TEST_ERROR;
- if (H5Fclose(fid) < 0)
- TEST_ERROR;
+ if (H5Gclose(gid) < 0)
+ TEST_ERROR;
+ if (H5Fclose(tmp_fid) < 0)
+ TEST_ERROR;
+ if (H5Fclose(fid) < 0)
+ TEST_ERROR;
+ }
if (H5Fdelete(ext_filename, file_fapl) < 0)
TEST_ERROR;
diff --git a/test/vol.c b/test/vol.c
index 43336c6..e29c6bb 100644
--- a/test/vol.c
+++ b/test/vol.c
@@ -865,6 +865,8 @@ test_basic_file_operation(const char *env_h5_drvr)
hid_t fapl_id2 = H5I_INVALID_HID;
hid_t fcpl_id = H5I_INVALID_HID;
+ htri_t use_locking_env = FAIL;
+ htri_t ignore_disabled_env = FAIL;
char filename[1024];
ssize_t obj_count;
hid_t obj_id_list[1];
@@ -894,6 +896,24 @@ test_basic_file_operation(const char *env_h5_drvr)
if (H5Pset_metadata_read_attempts(fapl_id, 9) < 0)
TEST_ERROR;
+ /* Similar to the above, make sure the FAPL has an appropriate file locking
+ * setting if the HDF5_USE_FILE_LOCKING environment variable was set so that
+ * the H5Pequal call will work correctly.
+ */
+ h5_check_file_locking_env_var(&use_locking_env, &ignore_disabled_env);
+ if (use_locking_env != FAIL) {
+ hbool_t default_use_locking = true;
+ hbool_t default_ignore_disabled_locks = true;
+
+ if (H5Pget_file_locking(H5P_DEFAULT, &default_use_locking, &default_ignore_disabled_locks) < 0)
+ TEST_ERROR;
+
+ if (H5Pset_file_locking(fapl_id, (bool)use_locking_env,
+ (ignore_disabled_env == FAIL) ? default_ignore_disabled_locks
+ : (bool)ignore_disabled_env) < 0)
+ TEST_ERROR;
+ }
+
/* H5Fcreate */
if ((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
TEST_ERROR;
diff --git a/tools/libtest/h5tools_test_utils.c b/tools/libtest/h5tools_test_utils.c
index 6f3c0a6..32f109b 100644
--- a/tools/libtest/h5tools_test_utils.c
+++ b/tools/libtest/h5tools_test_utils.c
@@ -544,7 +544,7 @@ test_populate_ros3_fa(void)
#ifndef H5_HAVE_ROS3_VFD
puts(" -SKIP-");
- puts(" Read-Only S3 VFD not enabled");
+ puts(" Test is skipped unless HDF5 is configured and built with the Read-Only S3 VFD enabled.");
fflush(stdout);
return 0;
#else
diff --git a/tools/src/h5copy/CMakeLists.txt b/tools/src/h5copy/CMakeLists.txt
index 5b79a85..6263fe6 100644
--- a/tools/src/h5copy/CMakeLists.txt
+++ b/tools/src/h5copy/CMakeLists.txt
@@ -4,39 +4,26 @@ project (HDF5_TOOLS_SRC_H5COPY C)
# --------------------------------------------------------------------
# Add the h5copy and test executables
# --------------------------------------------------------------------
-if (BUILD_STATIC_LIBS)
- add_executable (h5copy ${HDF5_TOOLS_SRC_H5COPY_SOURCE_DIR}/h5copy.c)
- target_include_directories (h5copy PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5copy PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+add_executable (h5copy ${HDF5_TOOLS_SRC_H5COPY_SOURCE_DIR}/h5copy.c)
+target_include_directories (h5copy PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5copy PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5copy STATIC)
target_link_libraries (h5copy PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5copy PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5copy")
-
- set (H5_DEP_EXECUTABLES h5copy)
+else ()
+ TARGET_C_PROPERTIES (h5copy SHARED)
+ target_link_libraries (h5copy PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
endif ()
+set_target_properties (h5copy PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5copy")
-if (BUILD_SHARED_LIBS)
- add_executable (h5copy-shared ${HDF5_TOOLS_SRC_H5COPY_SOURCE_DIR}/h5copy.c)
- target_include_directories (h5copy-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5copy-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- TARGET_C_PROPERTIES (h5copy-shared SHARED)
- target_link_libraries (h5copy-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5copy-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5copy-shared")
-
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5copy-shared)
-endif ()
+set (H5_DEP_EXECUTABLES h5copy)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_H5COPY_SRC_FORMAT h5copy)
- else ()
- clang_format (HDF5_H5COPY_SRC_FORMAT h5copy-shared)
- endif ()
+ clang_format (HDF5_H5COPY_SRC_FORMAT h5copy)
endif ()
##############################################################################
diff --git a/tools/src/h5diff/CMakeLists.txt b/tools/src/h5diff/CMakeLists.txt
index 8de7c61..e6802b1 100644
--- a/tools/src/h5diff/CMakeLists.txt
+++ b/tools/src/h5diff/CMakeLists.txt
@@ -4,77 +4,50 @@ project (HDF5_TOOLS_SRC_H5DIFF C)
# --------------------------------------------------------------------
# Add the h5diff executables
# --------------------------------------------------------------------
-if (BUILD_STATIC_LIBS)
- add_executable (h5diff
- ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_common.c
- ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_main.c
- ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_common.h
- )
- target_include_directories (h5diff PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5diff PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- #target_compile_definitions (h5diff PRIVATE H5_TOOLS_DEBUG)
+add_executable (h5diff
+ ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_common.c
+ ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_main.c
+ ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_common.h
+)
+target_include_directories (h5diff PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5diff PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+#target_compile_definitions (h5diff PRIVATE H5_TOOLS_DEBUG)
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5diff STATIC)
target_link_libraries (h5diff PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5diff PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5diff")
-
- set (H5_DEP_EXECUTABLES h5diff)
+else ()
+ TARGET_C_PROPERTIES (h5diff SHARED)
+ target_link_libraries (h5diff PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
endif ()
-if (BUILD_SHARED_LIBS)
- add_executable (h5diff-shared
- ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_common.c
- ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_main.c
- ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_common.h
- )
- target_include_directories (h5diff-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5diff-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- #target_compile_definitions (h5diff-shared PRIVATE H5_TOOLS_DEBUG)
- TARGET_C_PROPERTIES (h5diff-shared SHARED)
- target_link_libraries (h5diff-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5diff-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5diff-shared")
+set_target_properties (h5diff PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5diff")
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5diff-shared)
-endif ()
+set (H5_DEP_EXECUTABLES h5diff)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_H5DIFF_SRC_FORMAT h5diff)
- else ()
- clang_format (HDF5_H5DIFF_SRC_FORMAT h5diff-shared)
- endif ()
+ clang_format (HDF5_H5DIFF_SRC_FORMAT h5diff)
endif ()
if (H5_HAVE_PARALLEL)
- if (BUILD_STATIC_LIBS)
- add_executable (ph5diff
- ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_common.c
- ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/ph5diff_main.c
- )
- target_include_directories (ph5diff PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(ph5diff PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+ add_executable (ph5diff
+ ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_common.c
+ ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/ph5diff_main.c
+ )
+ target_include_directories (ph5diff PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+ target_compile_options(ph5diff PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+ if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (ph5diff STATIC)
target_link_libraries (ph5diff PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET} "$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
- set_target_properties (ph5diff PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};ph5diff")
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} ph5diff)
- endif ()
- if (BUILD_SHARED_LIBS)
- add_executable (ph5diff-shared
- ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_common.c
- ${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/ph5diff_main.c
- )
- target_include_directories (ph5diff-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(ph5diff-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- TARGET_C_PROPERTIES (ph5diff-shared SHARED)
- target_link_libraries (ph5diff-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} "$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
- set_target_properties (ph5diff-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};ph5diff-shared")
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} ph5diff-shared)
+ else ()
+ TARGET_C_PROPERTIES (ph5diff SHARED)
+ target_link_libraries (ph5diff PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} "$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
endif ()
+ set_target_properties (ph5diff PROPERTIES FOLDER tools)
+ set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};ph5diff")
+ set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} ph5diff)
endif ()
##############################################################################
diff --git a/tools/src/h5dump/CMakeLists.txt b/tools/src/h5dump/CMakeLists.txt
index 3284949..3cdffa2 100644
--- a/tools/src/h5dump/CMakeLists.txt
+++ b/tools/src/h5dump/CMakeLists.txt
@@ -4,57 +4,35 @@ project (HDF5_TOOLS_SRC_H5DUMP C)
# --------------------------------------------------------------------
# Add the h5dump executables
# --------------------------------------------------------------------
-if (BUILD_STATIC_LIBS)
- add_executable (h5dump
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump.c
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_ddl.c
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_xml.c
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump.h
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_defines.h
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_extern.h
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_ddl.h
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_xml.h
- )
- target_include_directories (h5dump PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5dump PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+add_executable (h5dump
+ ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump.c
+ ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_ddl.c
+ ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_xml.c
+ ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump.h
+ ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_defines.h
+ ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_extern.h
+ ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_ddl.h
+ ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_xml.h
+)
+target_include_directories (h5dump PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5dump PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5dump STATIC)
target_link_libraries (h5dump PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5dump PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5dump")
-
- set (H5_DEP_EXECUTABLES h5dump)
+else ()
+ TARGET_C_PROPERTIES (h5dump SHARED)
+ target_link_libraries (h5dump PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
endif ()
+set_target_properties (h5dump PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5dump")
-if (BUILD_SHARED_LIBS)
- add_executable (h5dump-shared
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump.c
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_ddl.c
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_xml.c
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump.h
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_defines.h
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_extern.h
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_ddl.h
- ${HDF5_TOOLS_SRC_H5DUMP_SOURCE_DIR}/h5dump_xml.h
- )
- target_include_directories (h5dump-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5dump-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- TARGET_C_PROPERTIES (h5dump-shared SHARED)
- target_link_libraries (h5dump-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5dump-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5dump-shared")
-
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5dump-shared)
-endif ()
+set (H5_DEP_EXECUTABLES h5dump)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_H5DUMP_SRC_FORMAT h5dump)
- else ()
- clang_format (HDF5_H5DUMP_SRC_FORMAT h5dump-shared)
- endif ()
+ clang_format (HDF5_H5DUMP_SRC_FORMAT h5dump)
endif ()
##############################################################################
diff --git a/tools/src/h5dump/h5dump.c b/tools/src/h5dump/h5dump.c
index 8f2c406..63c2102 100644
--- a/tools/src/h5dump/h5dump.c
+++ b/tools/src/h5dump/h5dump.c
@@ -1169,7 +1169,8 @@ end_collect:
vfd_info_g.info = &ros3_fa_g;
#else
- error_msg("Read-Only S3 VFD not enabled.\n");
+ error_msg(
+ "Read-Only S3 VFD is not available unless enabled when HDF5 is configured and built.\n");
h5tools_setstatus(EXIT_FAILURE);
goto done;
#endif
@@ -1188,7 +1189,7 @@ end_collect:
vfd_info_g.info = &hdfs_fa_g;
#else
- error_msg("HDFS VFD not enabled.\n");
+ error_msg("HDFS VFD is not available unless enabled when HDF5 is configured and built.\n");
h5tools_setstatus(EXIT_FAILURE);
goto done;
#endif
diff --git a/tools/src/h5format_convert/CMakeLists.txt b/tools/src/h5format_convert/CMakeLists.txt
index 2a7e3cb..4e48ad5 100644
--- a/tools/src/h5format_convert/CMakeLists.txt
+++ b/tools/src/h5format_convert/CMakeLists.txt
@@ -4,38 +4,26 @@ project (HDF5_TOOLS_SRC_H5FC C)
# --------------------------------------------------------------------
# Add the h5format_convert executables
# --------------------------------------------------------------------
-if (BUILD_STATIC_LIBS)
- add_executable (h5format_convert ${HDF5_TOOLS_SRC_H5FC_SOURCE_DIR}/h5format_convert.c)
- target_include_directories (h5format_convert PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5format_convert PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+add_executable (h5format_convert ${HDF5_TOOLS_SRC_H5FC_SOURCE_DIR}/h5format_convert.c)
+target_include_directories (h5format_convert PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5format_convert PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5format_convert STATIC)
target_link_libraries (h5format_convert PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5format_convert PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5format_convert")
-
- set (H5_DEP_EXECUTABLES h5format_convert)
+else ()
+ TARGET_C_PROPERTIES (h5format_convert SHARED)
+ target_link_libraries (h5format_convert PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
endif ()
-if (BUILD_SHARED_LIBS)
- add_executable (h5format_convert-shared ${HDF5_TOOLS_SRC_H5FC_SOURCE_DIR}/h5format_convert.c)
- target_include_directories (h5format_convert-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5format_convert-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- TARGET_C_PROPERTIES (h5format_convert-shared SHARED)
- target_link_libraries (h5format_convert-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5format_convert-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5format_convert-shared")
+set_target_properties (h5format_convert PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5format_convert")
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5format_convert-shared)
-endif ()
+set (H5_DEP_EXECUTABLES h5format_convert)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_H5FORMAT_SRC_FORMAT h5format_convert)
- else ()
- clang_format (HDF5_H5FORMAT_SRC_FORMAT h5format_convert-shared)
- endif ()
+ clang_format (HDF5_H5FORMAT_SRC_FORMAT h5format_convert)
endif ()
##############################################################################
diff --git a/tools/src/h5import/CMakeLists.txt b/tools/src/h5import/CMakeLists.txt
index f8268a1..4d231ad 100644
--- a/tools/src/h5import/CMakeLists.txt
+++ b/tools/src/h5import/CMakeLists.txt
@@ -4,39 +4,26 @@ project (HDF5_TOOLS_SRC_H5IMPORT C)
# --------------------------------------------------------------------
# Add the h5import executables
# --------------------------------------------------------------------
-if (BUILD_STATIC_LIBS)
- add_executable (h5import ${HDF5_TOOLS_SRC_H5IMPORT_SOURCE_DIR}/h5import.c ${HDF5_TOOLS_SRC_H5IMPORT_SOURCE_DIR}/h5import.h)
- target_include_directories (h5import PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+add_executable (h5import ${HDF5_TOOLS_SRC_H5IMPORT_SOURCE_DIR}/h5import.c ${HDF5_TOOLS_SRC_H5IMPORT_SOURCE_DIR}/h5import.h)
+target_include_directories (h5import PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5import STATIC)
target_link_libraries (h5import PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- #set_target_properties (h5import PROPERTIES COMPILE_DEFINITIONS H5DEBUGIMPORT)
- set_target_properties (h5import PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5import")
-
- set (H5_DEP_EXECUTABLES h5import)
+else ()
+ TARGET_C_PROPERTIES (h5import SHARED)
+ target_link_libraries (h5import PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
endif ()
+#set_target_properties (h5import PROPERTIES COMPILE_DEFINITIONS H5DEBUGIMPORT)
+set_target_properties (h5import PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5import")
-if (BUILD_SHARED_LIBS)
- add_executable (h5import-shared ${HDF5_TOOLS_SRC_H5IMPORT_SOURCE_DIR}/h5import.c ${HDF5_TOOLS_SRC_H5IMPORT_SOURCE_DIR}/h5import.h)
- target_include_directories (h5import-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- TARGET_C_PROPERTIES (h5import-shared SHARED)
- target_link_libraries (h5import-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- #set_target_properties (h5import-shared PROPERTIES COMPILE_DEFINITIONS H5DEBUGIMPORT)
- set_target_properties (h5import-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5import-shared")
-
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5import-shared)
-endif ()
+set (H5_DEP_EXECUTABLES h5import)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_H5IMPORT_SRC_FORMAT h5import)
- else ()
- clang_format (HDF5_H5IMPORT_SRC_FORMAT h5import-shared)
- endif ()
+ clang_format (HDF5_H5IMPORT_SRC_FORMAT h5import)
endif ()
##############################################################################
diff --git a/tools/src/h5jam/CMakeLists.txt b/tools/src/h5jam/CMakeLists.txt
index 7efd0d8..bcd7eca 100644
--- a/tools/src/h5jam/CMakeLists.txt
+++ b/tools/src/h5jam/CMakeLists.txt
@@ -4,59 +4,41 @@ project (HDF5_TOOLS_SRC_H5JAM C)
# --------------------------------------------------------------------
# Add the h5jam executables
# --------------------------------------------------------------------
-if (BUILD_STATIC_LIBS)
- add_executable (h5jam ${HDF5_TOOLS_SRC_H5JAM_SOURCE_DIR}/h5jam.c)
- target_include_directories (h5jam PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+add_executable (h5jam ${HDF5_TOOLS_SRC_H5JAM_SOURCE_DIR}/h5jam.c)
+target_include_directories (h5jam PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5jam STATIC)
target_link_libraries (h5jam PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5jam PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5jam")
+else ()
+ TARGET_C_PROPERTIES (h5jam SHARED)
+ target_link_libraries (h5jam PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+endif ()
+set_target_properties (h5jam PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5jam")
- add_executable (h5unjam ${HDF5_TOOLS_SRC_H5JAM_SOURCE_DIR}/h5unjam.c)
- target_include_directories (h5unjam PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+add_executable (h5unjam ${HDF5_TOOLS_SRC_H5JAM_SOURCE_DIR}/h5unjam.c)
+target_include_directories (h5unjam PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5unjam STATIC)
target_link_libraries (h5unjam PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5unjam PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5unjam")
-
- set (H5_DEP_EXECUTABLES
- h5jam
- h5unjam
- )
+else ()
+ TARGET_C_PROPERTIES (h5unjam SHARED)
+ target_link_libraries (h5unjam PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
endif ()
+set_target_properties (h5unjam PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5unjam")
-if (BUILD_SHARED_LIBS)
- add_executable (h5jam-shared ${HDF5_TOOLS_SRC_H5JAM_SOURCE_DIR}/h5jam.c)
- target_include_directories (h5jam-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- TARGET_C_PROPERTIES (h5jam-shared SHARED)
- target_link_libraries (h5jam-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5jam-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5jam-shared")
-
- add_executable (h5unjam-shared ${HDF5_TOOLS_SRC_H5JAM_SOURCE_DIR}/h5unjam.c)
- target_include_directories (h5unjam-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- TARGET_C_PROPERTIES (h5unjam-shared SHARED)
- target_link_libraries (h5unjam-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5unjam-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5unjam-shared")
-
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES}
- h5jam-shared
- h5unjam-shared
- )
-endif ()
+set (H5_DEP_EXECUTABLES
+ h5jam
+ h5unjam
+)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_H5JAM_SRC_FORMAT h5jam)
- clang_format (HDF5_H5UNJAM_SRC_FORMAT h5unjam)
- else ()
- clang_format (HDF5_H5JAM_SRC_FORMAT h5jam-shared)
- clang_format (HDF5_H5UNJAM_SRC_FORMAT h5unjam-shared)
- endif ()
+ clang_format (HDF5_H5JAM_SRC_FORMAT h5jam)
+ clang_format (HDF5_H5UNJAM_SRC_FORMAT h5unjam)
endif ()
##############################################################################
diff --git a/tools/src/h5ls/CMakeLists.txt b/tools/src/h5ls/CMakeLists.txt
index 67122a1..f8f7fff 100644
--- a/tools/src/h5ls/CMakeLists.txt
+++ b/tools/src/h5ls/CMakeLists.txt
@@ -4,41 +4,27 @@ project (HDF5_TOOLS_SRC_H5LS C)
#-----------------------------------------------------------------------------
# Add the h5ls executable
#-----------------------------------------------------------------------------
-if (BUILD_STATIC_LIBS)
- add_executable (h5ls ${HDF5_TOOLS_SRC_H5LS_SOURCE_DIR}/h5ls.c)
- target_include_directories (h5ls PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5ls PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- #target_compile_definitions(h5ls PRIVATE H5_TOOLS_DEBUG)
+add_executable (h5ls ${HDF5_TOOLS_SRC_H5LS_SOURCE_DIR}/h5ls.c)
+target_include_directories (h5ls PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5ls PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+#target_compile_definitions(h5ls PRIVATE H5_TOOLS_DEBUG)
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5ls STATIC)
target_link_libraries (h5ls PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5ls PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5ls")
-
- set (H5_DEP_EXECUTABLES h5ls)
+else ()
+ TARGET_C_PROPERTIES (h5ls SHARED)
+ target_link_libraries (h5ls PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
endif ()
+set_target_properties (h5ls PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5ls")
-if (BUILD_SHARED_LIBS)
- add_executable (h5ls-shared ${HDF5_TOOLS_SRC_H5LS_SOURCE_DIR}/h5ls.c)
- target_include_directories (h5ls-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5ls-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- #target_compile_definitions(h5ls-shared PRIVATE H5_TOOLS_DEBUG)
- TARGET_C_PROPERTIES (h5ls-shared SHARED)
- target_link_libraries (h5ls-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5ls-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5ls-shared")
-
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5ls-shared)
-endif ()
+set (H5_DEP_EXECUTABLES h5ls)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_H5LS_SRC_FORMAT h5ls)
- else ()
- clang_format (HDF5_H5LS_SRC_FORMAT h5ls-shared)
- endif ()
+ clang_format (HDF5_H5LS_SRC_FORMAT h5ls)
endif ()
##############################################################################
diff --git a/tools/src/h5ls/h5ls.c b/tools/src/h5ls/h5ls.c
index bc0781c..a5c1aa5 100644
--- a/tools/src/h5ls/h5ls.c
+++ b/tools/src/h5ls/h5ls.c
@@ -2869,7 +2869,8 @@ main(int argc, char *argv[])
vfd_info.info = &ros3_fa;
#else
- fprintf(rawerrorstream, "Error: Read-Only S3 VFD is not enabled\n\n");
+ fprintf(rawerrorstream, "Error: Read-Only S3 VFD is not available unless enabled when HDF5 is "
+ "configured and built.\n\n");
usage();
leave(EXIT_FAILURE);
#endif
@@ -2892,7 +2893,9 @@ main(int argc, char *argv[])
vfd_info.info = &hdfs_fa;
#else
- fprintf(rawerrorstream, "Error: The HDFS VFD is not enabled\n\n");
+ fprintf(
+ rawerrorstream,
+ "Error: The HDFS VFD is not available unless enabled when HDF5 is configured and built.\n\n");
usage();
leave(EXIT_FAILURE);
#endif
diff --git a/tools/src/h5perf/CMakeLists.txt b/tools/src/h5perf/CMakeLists.txt
index 6ff5200..2237f74 100644
--- a/tools/src/h5perf/CMakeLists.txt
+++ b/tools/src/h5perf/CMakeLists.txt
@@ -10,7 +10,7 @@ set (h5perf_serial_SOURCES
)
add_executable (h5perf_serial ${h5perf_serial_SOURCES})
target_include_directories (h5perf_serial PRIVATE "${HDF5_TEST_SRC_DIR};${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
-if (BUILD_STATIC_LIBS)
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5perf_serial STATIC)
target_link_libraries (h5perf_serial PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
else ()
@@ -36,7 +36,7 @@ if (H5_HAVE_PARALLEL)
)
add_executable (h5perf ${h5perf_SOURCES})
target_include_directories (h5perf PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- if (BUILD_STATIC_LIBS)
+ if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5perf STATIC)
target_link_libraries (h5perf PRIVATE ${LINK_LIBS} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET} "$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
else ()
@@ -46,7 +46,7 @@ if (H5_HAVE_PARALLEL)
set_target_properties (h5perf PROPERTIES FOLDER perform)
set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5perf")
- set (H5_DEP_EXECUTABLES h5perf)
+ set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5perf)
if (HDF5_ENABLE_FORMATTERS)
clang_format (HDF5_TOOLS_SRC_H5PERF_h5perf_FORMAT h5perf)
diff --git a/tools/src/h5repack/CMakeLists.txt b/tools/src/h5repack/CMakeLists.txt
index ea1ee80..f215b05 100644
--- a/tools/src/h5repack/CMakeLists.txt
+++ b/tools/src/h5repack/CMakeLists.txt
@@ -15,39 +15,26 @@ set (REPACK_COMMON_SOURCES
${HDF5_TOOLS_SRC_H5REPACK_SOURCE_DIR}/h5repack.h
)
-if (BUILD_STATIC_LIBS)
- add_executable (h5repack ${REPACK_COMMON_SOURCES} ${HDF5_TOOLS_SRC_H5REPACK_SOURCE_DIR}/h5repack_main.c)
- target_include_directories (h5repack PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5repack PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+add_executable (h5repack ${REPACK_COMMON_SOURCES} ${HDF5_TOOLS_SRC_H5REPACK_SOURCE_DIR}/h5repack_main.c)
+target_include_directories (h5repack PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5repack PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5repack STATIC)
target_link_libraries (h5repack PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5repack PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5repack")
-
- set (H5_DEP_EXECUTABLES h5repack)
+else ()
+ TARGET_C_PROPERTIES (h5repack SHARED)
+ target_link_libraries (h5repack PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
endif ()
+set_target_properties (h5repack PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5repack")
-if (BUILD_SHARED_LIBS)
- add_executable (h5repack-shared ${REPACK_COMMON_SOURCES} ${HDF5_TOOLS_SRC_H5REPACK_SOURCE_DIR}/h5repack_main.c)
- target_include_directories (h5repack-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5repack-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- TARGET_C_PROPERTIES (h5repack-shared SHARED)
- target_link_libraries (h5repack-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5repack-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5repack-shared")
-
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5repack-shared)
-endif ()
+set (H5_DEP_EXECUTABLES h5repack)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_H5REPACK_SRC_FORMAT h5repack)
- else ()
- clang_format (HDF5_H5REPACK_SRC_FORMAT h5repack-shared)
- endif ()
+ clang_format (HDF5_H5REPACK_SRC_FORMAT h5repack)
endif ()
##############################################################################
diff --git a/tools/src/h5stat/CMakeLists.txt b/tools/src/h5stat/CMakeLists.txt
index c3aef5f..a7b8e5c 100644
--- a/tools/src/h5stat/CMakeLists.txt
+++ b/tools/src/h5stat/CMakeLists.txt
@@ -4,39 +4,26 @@ project (HDF5_TOOLS_SRC_H5STAT C)
# --------------------------------------------------------------------
# Add the h5stat executables
# --------------------------------------------------------------------
-if (BUILD_STATIC_LIBS)
- add_executable (h5stat ${HDF5_TOOLS_SRC_H5STAT_SOURCE_DIR}/h5stat.c)
- target_include_directories (h5stat PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5stat PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+add_executable (h5stat ${HDF5_TOOLS_SRC_H5STAT_SOURCE_DIR}/h5stat.c)
+target_include_directories (h5stat PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5stat PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5stat STATIC)
target_link_libraries (h5stat PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5stat PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5stat")
-
- set (H5_DEP_EXECUTABLES h5stat)
+else ()
+ TARGET_C_PROPERTIES (h5stat SHARED)
+ target_link_libraries (h5stat PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
endif ()
+set_target_properties (h5stat PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5stat")
-if (BUILD_SHARED_LIBS)
- add_executable (h5stat-shared ${HDF5_TOOLS_SRC_H5STAT_SOURCE_DIR}/h5stat.c)
- target_include_directories (h5stat-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5stat-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- TARGET_C_PROPERTIES (h5stat-shared SHARED)
- target_link_libraries (h5stat-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5stat-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5stat-shared")
-
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5stat-shared)
-endif ()
+set (H5_DEP_EXECUTABLES h5stat)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_H5STAT_SRC_FORMAT h5stat)
- else ()
- clang_format (HDF5_H5STAT_SRC_FORMAT h5stat-shared)
- endif ()
+ clang_format (HDF5_H5STAT_SRC_FORMAT h5stat)
endif ()
##############################################################################
diff --git a/tools/src/h5stat/h5stat.c b/tools/src/h5stat/h5stat.c
index 15232e4..a90ef5e 100644
--- a/tools/src/h5stat/h5stat.c
+++ b/tools/src/h5stat/h5stat.c
@@ -947,7 +947,8 @@ parse_command_line(int argc, const char *const *argv, struct handler_t **hand_re
drivername = drivernames[ROS3_VFD_IDX];
#else
- error_msg("Read-Only S3 VFD not enabled.\n");
+ error_msg(
+ "Read-Only S3 VFD is not available unless enabled when HDF5 is configured and built.\n");
goto error;
#endif
break;
@@ -961,7 +962,7 @@ parse_command_line(int argc, const char *const *argv, struct handler_t **hand_re
drivername = drivernames[HDFS_VFD_IDX];
#else
- error_msg("HDFS VFD not enabled.\n");
+ error_msg("HDFS VFD is not available unless enabled when HDF5 is configured and built.\n");
goto error;
#endif
break;
diff --git a/tools/src/misc/CMakeLists.txt b/tools/src/misc/CMakeLists.txt
index 62bd443..1b45246 100644
--- a/tools/src/misc/CMakeLists.txt
+++ b/tools/src/misc/CMakeLists.txt
@@ -5,122 +5,88 @@ project (HDF5_TOOLS_SRC_MISC C)
# Add the misc executables
# --------------------------------------------------------------------
#-- Misc Executables
-if (BUILD_STATIC_LIBS)
- add_executable (h5debug ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5debug.c)
- target_include_directories (h5debug PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5debug PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+add_executable (h5debug ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5debug.c)
+target_include_directories (h5debug PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5debug PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5debug STATIC)
target_link_libraries (h5debug PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5debug PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5debug")
+else ()
+ TARGET_C_PROPERTIES (h5debug SHARED)
+ target_link_libraries (h5debug PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+endif ()
+set_target_properties (h5debug PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5debug")
- add_executable (h5repart ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5repart.c)
- target_include_directories (h5repart PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5repart PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+add_executable (h5repart ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5repart.c)
+target_include_directories (h5repart PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5repart PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5repart STATIC)
target_link_libraries (h5repart PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5repart PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5repart")
+else ()
+ TARGET_C_PROPERTIES (h5repart SHARED)
+ target_link_libraries (h5repart PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+endif ()
+set_target_properties (h5repart PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5repart")
- add_executable (h5mkgrp ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5mkgrp.c)
- target_include_directories (h5mkgrp PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5mkgrp PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+add_executable (h5mkgrp ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5mkgrp.c)
+target_include_directories (h5mkgrp PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5mkgrp PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5mkgrp STATIC)
target_link_libraries (h5mkgrp PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5mkgrp PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5mkgrp")
+else ()
+ TARGET_C_PROPERTIES (h5mkgrp SHARED)
+ target_link_libraries (h5mkgrp PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+endif ()
+set_target_properties (h5mkgrp PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5mkgrp")
- add_executable (h5clear ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5clear.c)
- target_include_directories (h5clear PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5clear PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+add_executable (h5clear ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5clear.c)
+target_include_directories (h5clear PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5clear PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5clear STATIC)
target_link_libraries (h5clear PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5clear PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5clear")
+else ()
+ TARGET_C_PROPERTIES (h5clear SHARED)
+ target_link_libraries (h5clear PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
+endif ()
+set_target_properties (h5clear PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5clear")
- add_executable (h5delete ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5delete.c)
- target_include_directories (h5delete PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5delete PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+add_executable (h5delete ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5delete.c)
+target_include_directories (h5delete PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5delete PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5delete STATIC)
target_link_libraries (h5delete PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
- set_target_properties (h5delete PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5delete")
-
- set (H5_DEP_EXECUTABLES
- h5debug
- h5repart
- h5mkgrp
- h5clear
- h5delete
- )
+else ()
+ TARGET_C_PROPERTIES (h5delete SHARED)
+ target_link_libraries (h5delete PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
endif ()
-if (BUILD_SHARED_LIBS)
- add_executable (h5debug-shared ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5debug.c)
- target_include_directories (h5debug-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- TARGET_C_PROPERTIES (h5debug-shared SHARED)
- target_compile_options(h5debug-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- target_link_libraries (h5debug-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5debug-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5debug-shared")
+set_target_properties (h5delete PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5delete")
- add_executable (h5repart-shared ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5repart.c)
- target_include_directories (h5repart-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5repart-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- TARGET_C_PROPERTIES (h5repart-shared SHARED)
- target_link_libraries (h5repart-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5repart-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5repart-shared")
-
- add_executable (h5mkgrp-shared ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5mkgrp.c)
- target_include_directories (h5mkgrp-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5mkgrp-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- TARGET_C_PROPERTIES (h5mkgrp-shared SHARED)
- target_link_libraries (h5mkgrp-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5mkgrp-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5mkgrp-shared")
-
- add_executable (h5clear-shared ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5clear.c)
- target_include_directories (h5clear-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5clear-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- TARGET_C_PROPERTIES (h5clear-shared SHARED)
- target_link_libraries (h5clear-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5clear-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5clear-shared")
-
- add_executable (h5delete-shared ${HDF5_TOOLS_SRC_MISC_SOURCE_DIR}/h5delete.c)
- target_include_directories (h5delete-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5delete-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- TARGET_C_PROPERTIES (h5delete-shared SHARED)
- target_link_libraries (h5delete-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
- set_target_properties (h5delete-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5delete-shared")
-
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES}
- h5debug-shared
- h5repart-shared
- h5mkgrp-shared
- h5clear-shared
- h5delete-shared
- )
-endif ()
+set (H5_DEP_EXECUTABLES
+ h5debug
+ h5repart
+ h5mkgrp
+ h5clear
+ h5delete
+)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_H5DEBUG_SRC_FORMAT h5debug)
- clang_format (HDF5_H5REPART_SRC_FORMAT h5repart)
- clang_format (HDF5_H5MKGRP_SRC_FORMAT h5mkgrp)
- clang_format (HDF5_H5CLEAR_SRC_FORMAT h5clear)
- clang_format (HDF5_H5DELETE_SRC_FORMAT h5delete)
- else ()
- clang_format (HDF5_H5DEBUG_SRC_FORMAT h5debug-shared)
- clang_format (HDF5_H5REPART_SRC_FORMAT h5repart-shared)
- clang_format (HDF5_H5MKGRP_SRC_FORMAT h5mkgrp-shared)
- clang_format (HDF5_H5CLEAR_SRC_FORMAT h5clear-shared)
- clang_format (HDF5_H5DELETE_SRC_FORMAT h5delete-shared)
- endif ()
+ clang_format (HDF5_H5DEBUG_SRC_FORMAT h5debug)
+ clang_format (HDF5_H5REPART_SRC_FORMAT h5repart)
+ clang_format (HDF5_H5MKGRP_SRC_FORMAT h5mkgrp)
+ clang_format (HDF5_H5CLEAR_SRC_FORMAT h5clear)
+ clang_format (HDF5_H5DELETE_SRC_FORMAT h5delete)
endif ()
##############################################################################
diff --git a/tools/test/h5copy/CMakeTests.cmake b/tools/test/h5copy/CMakeTests.cmake
index 15d66d1..27e7e1a 100644
--- a/tools/test/h5copy/CMakeTests.cmake
+++ b/tools/test/h5copy/CMakeTests.cmake
@@ -68,7 +68,7 @@
add_test (
NAME H5COPY_F-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy${tgt_file_ext}> -f ${fparam} -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy> -f ${fparam} -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
)
set_tests_properties (H5COPY_F-${testname} PROPERTIES DEPENDS H5COPY_F-${testname}-clear-objects)
if ("H5COPY_F-${testname}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
@@ -79,7 +79,7 @@
if (NOT "${resultcode}" STREQUAL "2")
add_test (
NAME H5COPY_F-${testname}-DIFF
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> -v ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> -v ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
)
set_tests_properties (H5COPY_F-${testname}-DIFF PROPERTIES DEPENDS H5COPY_F-${testname})
if ("${resultcode}" STREQUAL "1")
@@ -109,7 +109,7 @@
add_test (
NAME H5COPY-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy${tgt_file_ext}> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
)
set_tests_properties (H5COPY-${testname} PROPERTIES DEPENDS H5COPY-${testname}-clear-objects)
if ("H5COPY-${testname}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
@@ -120,7 +120,7 @@
if (NOT "${resultcode}" STREQUAL "2")
add_test (
NAME H5COPY-${testname}-DIFF
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> -v ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> -v ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
)
set_tests_properties (H5COPY-${testname}-DIFF PROPERTIES DEPENDS H5COPY-${testname})
if ("${resultcode}" STREQUAL "1")
@@ -160,7 +160,7 @@
add_test (
NAME H5COPY-${testname}-prefill
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy${tgt_file_ext}> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 -v -s ${psparam} -d ${pdparam}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 -v -s ${psparam} -d ${pdparam}
)
set_tests_properties (H5COPY-${testname}-prefill PROPERTIES DEPENDS H5COPY-${testname}-clear-objects)
if ("H5COPY-${testname}-prefill" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
@@ -169,7 +169,7 @@
add_test (
NAME H5COPY-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy${tgt_file_ext}> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
)
set_tests_properties (H5COPY-${testname} PROPERTIES DEPENDS H5COPY-${testname}-prefill)
if ("H5COPY-${testname}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
@@ -179,7 +179,7 @@
if (NOT "${resultcode}" STREQUAL "2")
add_test (
NAME H5COPY-${testname}-DIFF
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> -v ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> -v ./testfiles/${infile} ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
)
set_tests_properties (H5COPY-${testname}-DIFF PROPERTIES DEPENDS H5COPY-${testname})
if ("${resultcode}" STREQUAL "1")
@@ -209,7 +209,7 @@
add_test (
NAME H5COPY_SAME-${testname}-prefill
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy${tgt_file_ext}> -i ./testfiles/${pfile} -o ./testfiles/${testname}.out.h5 -v -s ${psparam} -d ${pdparam}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy> -i ./testfiles/${pfile} -o ./testfiles/${testname}.out.h5 -v -s ${psparam} -d ${pdparam}
)
set_tests_properties (H5COPY_SAME-${testname}-prefill PROPERTIES DEPENDS H5COPY_SAME-${testname}-clear-objects)
if ("H5COPY_SAME-${testname}-prefill" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
@@ -218,7 +218,7 @@
add_test (
NAME H5COPY_SAME-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy${tgt_file_ext}> -i ./testfiles/${testname}.out.h5 -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy> -i ./testfiles/${testname}.out.h5 -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN}
)
set_tests_properties (H5COPY_SAME-${testname} PROPERTIES DEPENDS H5COPY_SAME-${testname}-prefill)
if ("H5COPY_SAME-${testname}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
@@ -228,7 +228,7 @@
if (NOT "${resultcode}" STREQUAL "2")
add_test (
NAME H5COPY_SAME-${testname}-DIFF
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> -v ./testfiles/${testname}.out.h5 ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> -v ./testfiles/${testname}.out.h5 ./testfiles/${testname}.out.h5 ${srcname} ${dstname}
)
set_tests_properties (H5COPY_SAME-${testname}-DIFF PROPERTIES DEPENDS H5COPY_SAME-${testname})
if ("${resultcode}" STREQUAL "1")
@@ -261,7 +261,7 @@
)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5COPY-CMP-${testname} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy${tgt_file_ext}> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN})
+ add_test (NAME H5COPY-CMP-${testname} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy> -i ./testfiles/${infile} -o ./testfiles/${testname}.out.h5 ${vparam} ${sparam} ${srcname} ${dparam} ${dstname} ${ARGN})
if ("${resultcode}" STREQUAL "1")
set_tests_properties (H5COPY-CMP-${testname} PROPERTIES WILL_FAIL "true")
endif ()
@@ -270,7 +270,7 @@
NAME H5COPY-CMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5copy${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5copy>"
-D "TEST_ARGS=-i;./testfiles/${infile};-o;./testfiles/${testname}.out.h5;${vparam};${sparam};${srcname};${dparam};${dstname}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=./testfiles/${testname}.out.out"
@@ -304,7 +304,7 @@
NAME H5COPY_UD-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5copy-shared>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5copy>"
-D "TEST_ARGS:STRING=-v;-i;./testfiles/${infile};-o;./testfiles/${testname}.out.h5;${sparam};${srcname};${dparam};${dstname}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=./testfiles/${infile}.out"
@@ -321,7 +321,7 @@
NAME H5COPY_UD-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5copy-shared>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5copy>"
-D "TEST_ARGS:STRING=-v;-i;./testfiles/${infile};-o;./testfiles/${testname}.out.h5;${sparam};${srcname};${dparam};${dstname}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=./testfiles/${infile}.out"
@@ -342,7 +342,7 @@
NAME H5COPY_UD-${testname}-DIFF
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff-shared>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
-D "TEST_ARGS:STRING=-v;./testfiles/${cmpfile};./testfiles/${testname}.out.h5;${srcname};${dstname}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=./testfiles/${testname}.out.h5.out"
@@ -378,7 +378,7 @@
NAME H5COPY_UD_ERR-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5copy-shared>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5copy>"
-D "TEST_ARGS:STRING=-v;--enable-error-stack;-i;./testfiles/${infile};-o;./testfiles/${testname}_ERR.out.h5;${sparam};${srcname};${dparam};${dstname}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=./testfiles/${infile}_ERR.out"
@@ -396,7 +396,7 @@
NAME H5COPY_UD_ERR-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5copy-shared>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5copy>"
-D "TEST_ARGS:STRING=-v;--enable-error-stack;-i;./testfiles/${infile};-o;./testfiles/${testname}_ERR.out.h5;${sparam};${srcname};${dparam};${dstname}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=./testfiles/${infile}_ERR.out"
@@ -418,7 +418,7 @@
NAME H5COPY_UD_ERR-${testname}-DIFF
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff-shared>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
-D "TEST_ARGS:STRING=-v;./testfiles/${cmpfile};./testfiles/${testname}_ERR.out.h5;${srcname};${dstname}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=./testfiles/${testname}_ERR.out.h5.out"
@@ -445,7 +445,7 @@
macro (ADD_SIMPLE_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5COPY-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5COPY-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5copy> ${ARGN})
if (${resultcode})
set_tests_properties (H5COPY-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -454,7 +454,7 @@
NAME H5COPY-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5copy${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5copy>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=./testfiles/${resultfile}.out"
diff --git a/tools/test/h5diff/CMakeTests.cmake b/tools/test/h5diff/CMakeTests.cmake
index f993f4b..30dffb6 100644
--- a/tools/test/h5diff/CMakeTests.cmake
+++ b/tools/test/h5diff/CMakeTests.cmake
@@ -415,7 +415,7 @@
macro (ADD_SH5_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DIFF-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5DIFF-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> ${ARGN})
if (${resultcode})
set_tests_properties (H5DIFF-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -424,7 +424,7 @@
NAME H5DIFF-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -445,7 +445,7 @@
macro (ADD_PH5_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME MPI_TEST_H5DIFF-${resultfile} COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:ph5diff${tgt_file_ext}> ${MPIEXEC_POSTFLAGS} ${ARGN})
+ add_test (NAME MPI_TEST_H5DIFF-${resultfile} COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:ph5diff> ${MPIEXEC_POSTFLAGS} ${ARGN})
set_tests_properties (MPI_TEST_H5DIFF-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/PAR/testfiles")
if (${resultcode})
set_tests_properties (MPI_TEST_H5DIFF-${resultfile} PROPERTIES WILL_FAIL "true")
@@ -455,7 +455,7 @@
NAME MPI_TEST_H5DIFF-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=${MPIEXEC_EXECUTABLE}"
- -D "TEST_ARGS:STRING=${MPIEXEC_NUMPROC_FLAG};${MPIEXEC_MAX_NUMPROCS};${MPIEXEC_PREFLAGS};$<TARGET_FILE:ph5diff${tgt_file_ext}>;${MPIEXEC_POSTFLAGS};${ARGN}"
+ -D "TEST_ARGS:STRING=${MPIEXEC_NUMPROC_FLAG};${MPIEXEC_MAX_NUMPROCS};${MPIEXEC_PREFLAGS};$<TARGET_FILE:ph5diff>;${MPIEXEC_POSTFLAGS};${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/PAR/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
#-D "TEST_EXPECT=${resultcode}"
@@ -484,7 +484,7 @@
NAME H5DIFF_UD-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff-shared>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -501,7 +501,7 @@
NAME H5DIFF_UD-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff-shared>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
diff --git a/tools/test/h5dump/CMakeTests.cmake b/tools/test/h5dump/CMakeTests.cmake
index 9a452e2..2232bee 100644
--- a/tools/test/h5dump/CMakeTests.cmake
+++ b/tools/test/h5dump/CMakeTests.cmake
@@ -444,13 +444,13 @@
macro (ADD_HELP_TEST testname resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DUMP-${testname} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5DUMP-${testname} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> ${ARGN})
else ()
add_test (
NAME H5DUMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=h5dump-${testname}.out"
@@ -484,7 +484,7 @@
macro (ADD_H5_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> ${ARGN})
if (${resultcode})
set_tests_properties (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -496,7 +496,7 @@
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -524,7 +524,7 @@
)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DUMP-N-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5DUMP-N-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> ${ARGN})
if (${resultcode})
set_tests_properties (H5DUMP-N-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -536,7 +536,7 @@
NAME H5DUMP-N-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}-N.out"
@@ -573,7 +573,7 @@
)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump${tgt_file_ext}> ${ARGN} ${resultfile}.txt ${targetfile})
+ add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> ${ARGN} ${resultfile}.txt ${targetfile})
if (${resultcode})
set_tests_properties (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -585,7 +585,7 @@
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN};${resultfile}.txt;${targetfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -642,7 +642,7 @@
)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump${tgt_file_ext}> --ddl=${ddlfile}.txt ${ARGN} ${resultfile}.txt ${targetfile})
+ add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> --ddl=${ddlfile}.txt ${ARGN} ${resultfile}.txt ${targetfile})
if (${resultcode})
set_tests_properties (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -655,7 +655,7 @@
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=--ddl=${ddlfile}.txt;${ARGN};${resultfile}.txt;${targetfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -721,7 +721,7 @@
)
add_test (
NAME H5DUMP-output-${resultfile}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump${tgt_file_ext}> ${ARGN} ${resultfile}.txt ${targetfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> ${ARGN} ${resultfile}.txt ${targetfile}
)
set_tests_properties (H5DUMP-output-${resultfile} PROPERTIES
DEPENDS H5DUMP-output-${resultfile}-clear-objects
@@ -759,7 +759,7 @@
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -783,7 +783,7 @@
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -806,7 +806,7 @@
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -830,7 +830,7 @@
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -864,7 +864,7 @@
NAME H5DUMP-BIN_EXPORT-${conffile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN};-o;${conffile}.bin;${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${conffile}.out"
@@ -906,7 +906,7 @@
NAME H5DUMP-IMPORT-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN};-o;${resultfile}.bin;${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${conffile}.out"
@@ -921,7 +921,7 @@
if ("H5DUMP-IMPORT-${resultfile}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (H5DUMP-IMPORT-${resultfile} PROPERTIES DISABLED true)
endif ()
- add_test (NAME H5DUMP-IMPORT-h5import-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5import${tgt_file_ext}> ${resultfile}.bin -c ${conffile}.out -o ${resultfile}.h5)
+ add_test (NAME H5DUMP-IMPORT-h5import-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5import> ${resultfile}.bin -c ${conffile}.out -o ${resultfile}.h5)
set_tests_properties (H5DUMP-IMPORT-h5import-${resultfile} PROPERTIES
DEPENDS H5DUMP-IMPORT-${resultfile}
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std"
@@ -929,7 +929,7 @@
if ("H5DUMP-IMPORT-h5import-${resultfile}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (H5DUMP-IMPORT-h5import-${resultfile} PROPERTIES DISABLED true)
endif ()
- add_test (NAME H5DUMP-IMPORT-h5diff-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> ${testfile} ${resultfile}.h5 /integer /integer)
+ add_test (NAME H5DUMP-IMPORT-h5diff-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> ${testfile} ${resultfile}.h5 /integer /integer)
set_tests_properties (H5DUMP-IMPORT-h5diff-${resultfile} PROPERTIES
DEPENDS H5DUMP-IMPORT-h5import-${resultfile}
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std"
@@ -956,7 +956,7 @@
NAME H5DUMP_UD-${testname}-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
-D "TEST_OUTPUT=${resultfile}.out"
diff --git a/tools/test/h5dump/CMakeTestsPBITS.cmake b/tools/test/h5dump/CMakeTestsPBITS.cmake
index 3104846..8f479f3 100644
--- a/tools/test/h5dump/CMakeTestsPBITS.cmake
+++ b/tools/test/h5dump/CMakeTestsPBITS.cmake
@@ -118,7 +118,7 @@
macro (ADD_H5_PBITS_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> ${ARGN})
if (${resultcode})
set_tests_properties (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -127,7 +127,7 @@
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/pbits"
-D "TEST_OUTPUT=${resultfile}.out"
diff --git a/tools/test/h5dump/CMakeTestsVDS.cmake b/tools/test/h5dump/CMakeTestsVDS.cmake
index 1589e70..e3cb9e3 100644
--- a/tools/test/h5dump/CMakeTestsVDS.cmake
+++ b/tools/test/h5dump/CMakeTestsVDS.cmake
@@ -109,7 +109,7 @@
macro (ADD_H5_VDS_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> ${ARGN})
if (${resultcode})
set_tests_properties (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -118,7 +118,7 @@
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/vds"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -138,7 +138,7 @@
macro (ADD_H5_VDS_PREFIX_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DUMP_PREFIX-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5DUMP_PREFIX-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> ${ARGN})
set_tests_properties (H5DUMP_PREFIX-${resultfile} PROPERTIES
ENVIRONMENT "HDF5_VDS_PREFIX=${PROJECT_BINARY_DIR}/testfiles/vds/"
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/vds/prefix"
@@ -154,7 +154,7 @@
NAME H5DUMP_PREFIX-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/vds/prefix"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -173,7 +173,7 @@
macro (ADD_H5_VDS_LAYOUT resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump${tgt_file_ext}> -p ${ARGN})
+ add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> -p ${ARGN})
set_tests_properties (H5DUMP-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/vds")
if (${resultcode})
set_tests_properties (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true")
@@ -186,7 +186,7 @@
NAME H5DUMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-p;${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/vds"
-D "TEST_OUTPUT=${resultfile}.out"
diff --git a/tools/test/h5dump/CMakeTestsXML.cmake b/tools/test/h5dump/CMakeTestsXML.cmake
index ae7cd8f..43e77ee 100644
--- a/tools/test/h5dump/CMakeTestsXML.cmake
+++ b/tools/test/h5dump/CMakeTestsXML.cmake
@@ -181,7 +181,7 @@
macro (ADD_XML_H5_TEST resultfile resultcode)
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5DUMP_XML-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump${tgt_file_ext}> --xml ${ARGN})
+ add_test (NAME H5DUMP_XML-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> --xml ${ARGN})
if (${resultcode})
set_tests_properties (H5DUMP_XML-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -190,7 +190,7 @@
NAME H5DUMP_XML-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=--xml;${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/xml"
-D "TEST_OUTPUT=${resultfile}.out"
diff --git a/tools/test/h5dump/CMakeVFDTests.cmake b/tools/test/h5dump/CMakeVFDTests.cmake
index 433eced..6f89d4c 100644
--- a/tools/test/h5dump/CMakeVFDTests.cmake
+++ b/tools/test/h5dump/CMakeVFDTests.cmake
@@ -82,7 +82,7 @@ macro (ADD_VFD_H5DUMP_TEST vfdname resultfile resultcode)
NAME H5DUMP_VFD-${vfdname}-${resultfile}-h5dump
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_VFD:STRING=${vfdname}"
-D "TEST_EXPECT=${resultcode}"
diff --git a/tools/test/h5format_convert/CMakeTests.cmake b/tools/test/h5format_convert/CMakeTests.cmake
index ecf16bf..bf4257e 100644
--- a/tools/test/h5format_convert/CMakeTests.cmake
+++ b/tools/test/h5format_convert/CMakeTests.cmake
@@ -116,7 +116,7 @@
NAME H5FC-${testname}-${testfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert>"
-D "TEST_ARGS=${ARGN};${testname}-tmp.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}-${testfile}.out"
@@ -137,7 +137,7 @@
NAME H5FC-${testname}-${testfile}-NA
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}-${testfile}.out"
@@ -180,7 +180,7 @@
NAME H5FC-${testname}-${testfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert>"
-D "TEST_ARGS=${ARGN};${testname}-tmp.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}-${testfile}.out"
@@ -222,7 +222,7 @@
NAME H5FC-${testname}-${testfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert>"
-D "TEST_ARGS=${ARGN};${testname}-tmp.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}-${testfile}.out"
@@ -278,7 +278,7 @@
NAME H5FC-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert>"
-D "TEST_ARGS=${ARGN};./testfiles/${testname}-tmp.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=testfiles/${testname}.out"
@@ -332,7 +332,7 @@
NAME H5FC_TEST_CHECK_IDX-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert>"
-D "TEST_ARGS=-d;${ARGN};./testfiles/${testname}-tmp.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=testfiles/${testname}.out"
@@ -386,7 +386,7 @@
NAME H5FC_H5DUMP_CHECK-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert>"
-D "TEST_ARGS=${ARGN};./testfiles/${testname}-tmp.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=testfiles/${testname}.out"
@@ -404,7 +404,7 @@
NAME H5FC_H5DUMP_CHECK-${testname}-dump
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-BH;${testname}-tmp.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}_chk.out"
diff --git a/tools/test/h5import/CMakeTests.cmake b/tools/test/h5import/CMakeTests.cmake
index 71c0421..c5753c1 100644
--- a/tools/test/h5import/CMakeTests.cmake
+++ b/tools/test/h5import/CMakeTests.cmake
@@ -113,7 +113,7 @@
FIXTURES_REQUIRED set_h5importtest
)
- add_test (NAME H5IMPORT-${testname} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5import${tgt_file_ext}> ${importfile} -c ${conffile} -o ${testfile})
+ add_test (NAME H5IMPORT-${testname} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5import> ${importfile} -c ${conffile} -o ${testfile})
set_tests_properties (H5IMPORT-${testname} PROPERTIES
DEPENDS H5IMPORT-${testname}-clear-objects
FIXTURES_REQUIRED set_h5importtest
@@ -127,7 +127,7 @@
NAME H5IMPORT-${testname}-H5DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${testfile}.new"
@@ -148,7 +148,7 @@
NAME H5IMPORT-${testname}-H5DMP_CMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=testfiles/${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${testfile}.out"
@@ -198,7 +198,7 @@
NAME H5IMPORT-DUMP-${testname}-H5DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-p;-d;${datasetname};-o;d${testfile}.bin;-b;NATIVE;testfiles/${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=d${testfile}.dmp"
@@ -212,7 +212,7 @@
NAME H5IMPORT-DUMP-${testname}-H5DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-p;-d;${datasetname};-o;d${testfile}.bin;-y;--width=1;testfiles/${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=d${testfile}.dmp"
@@ -234,7 +234,7 @@
NAME H5IMPORT-DUMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5import${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5import>"
-D "TEST_ARGS:STRING=d${testfile}.bin;-c;d${testfile}.dmp;-o;d${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=d${testfile}.imp"
@@ -254,7 +254,7 @@
NAME H5IMPORT-DUMP-${testname}-H5DFF
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
-D "TEST_ARGS:STRING=-r;d${testfile};testfiles/${testfile};${datasetname};${datasetname}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=d${testfile}.dff"
@@ -303,7 +303,7 @@
NAME H5IMPORT_SUB-DUMP-${testname}-H5DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-p;-d;${datasetname};${ARGN};-o;ds${testname}.bin;-b;NATIVE;testfiles/${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=ds${testname}.dmp"
@@ -324,7 +324,7 @@
NAME H5IMPORT_SUB-DUMP-${testname}-H5IMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5import${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5import>"
-D "TEST_ARGS:STRING=ds${testname}.bin;-c;ds${testname}.dmp;-o;ds${testname}.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=ds${testname}.imp"
@@ -343,7 +343,7 @@
NAME H5IMPORT_SUB-DUMP-${testname}-CMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-p;ds${testname}.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=ds${testname}.dmp"
diff --git a/tools/test/h5jam/CMakeTests.cmake b/tools/test/h5jam/CMakeTests.cmake
index d87899a..2067e79 100644
--- a/tools/test/h5jam/CMakeTests.cmake
+++ b/tools/test/h5jam/CMakeTests.cmake
@@ -54,7 +54,7 @@
macro (TEST_H5JAM_OUTPUT expectfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5JAM-${expectfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5jam${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5JAM-${expectfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5jam> ${ARGN})
if (${resultcode})
set_tests_properties (H5JAM-${expectfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -63,7 +63,7 @@
NAME H5JAM-${expectfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5jam${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5jam>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${expectfile}.out"
@@ -86,7 +86,7 @@
macro (TEST_H5UNJAM_OUTPUT expectfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5JAM-UNJAM-${expectfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5unjam${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5JAM-UNJAM-${expectfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5unjam> ${ARGN})
if (${resultcode})
set_tests_properties (H5JAM-UNJAM-${expectfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -95,7 +95,7 @@
NAME H5JAM-UNJAM-${expectfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5unjam${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5unjam>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${expectfile}.out"
@@ -116,7 +116,7 @@
NAME H5JAM-${testname}-CHECKFILE-H5DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=testfiles/${expected}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${actual}.new"
@@ -133,7 +133,7 @@
NAME H5JAM-${testname}-CHECKFILE-H5DMP_CMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=${actual}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${actual}.out"
@@ -171,7 +171,7 @@
COMMAND ${CMAKE_COMMAND} -E remove ${ufile}
)
set_tests_properties (H5JAM-${testname}-UNJAM_D-clear-objects PROPERTIES DEPENDS H5JAM-${testname}-UNJAM-clear-objects)
- add_test (NAME H5JAM-${testname}-UNJAM COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5unjam${tgt_file_ext}> -i ${infile} -u ${ufile} -o ${outfile})
+ add_test (NAME H5JAM-${testname}-UNJAM COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5unjam> -i ${infile} -u ${ufile} -o ${outfile})
set_tests_properties (H5JAM-${testname}-UNJAM PROPERTIES DEPENDS H5JAM-${testname}-UNJAM_D-clear-objects)
set (compare_test ${ufile})
else ()
@@ -180,7 +180,7 @@
NAME H5JAM-${testname}-UNJAM
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5unjam${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5unjam>"
-D "TEST_ARGS:STRING=-i;${infile};-o;${outfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${outfile}.ufile.txt"
@@ -191,7 +191,7 @@
set_tests_properties (H5JAM-${testname}-UNJAM PROPERTIES DEPENDS H5JAM-${testname}-UNJAM-clear-objects)
set (compare_test "${outfile}.ufile.txt")
else ()
- add_test (NAME H5JAM-${testname}-UNJAM COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5unjam${tgt_file_ext}> -i ${infile} -o ${outfile})
+ add_test (NAME H5JAM-${testname}-UNJAM COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5unjam> -i ${infile} -o ${outfile})
set_tests_properties (H5JAM-${testname}-UNJAM PROPERTIES DEPENDS H5JAM-${testname}-UNJAM-clear-objects)
set (compare_test "")
endif ()
@@ -262,7 +262,7 @@
COMMAND ${CMAKE_COMMAND} -E remove ${outfile} ${infile}.cpy.h5
)
endif ()
- add_test (NAME H5JAM-${testname} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5jam${tgt_file_ext}> -u testfiles/${jamfile} -i testfiles/${infile} -o ${outfile} ${ARGN})
+ add_test (NAME H5JAM-${testname} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5jam> -u testfiles/${jamfile} -i testfiles/${infile} -o ${outfile} ${ARGN})
if ("H5JAM-${testname}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (H5JAM-${testname} PROPERTIES DISABLED true)
endif ()
@@ -326,7 +326,7 @@
set_tests_properties (H5JAM-${testname}_NONE_COPY PROPERTIES DISABLED true)
endif ()
- add_test (NAME H5JAM-${testname}_NONE COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5jam${tgt_file_ext}> -u testfiles/${jamfile} -i ${chkfile} ${ARGN})
+ add_test (NAME H5JAM-${testname}_NONE COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5jam> -u testfiles/${jamfile} -i ${chkfile} ${ARGN})
set_tests_properties (H5JAM-${testname}_NONE PROPERTIES DEPENDS H5JAM-${testname}_NONE_COPY)
if ("H5JAM-${testname}_NONE" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (H5JAM-${testname}_NONE PROPERTIES DISABLED true)
diff --git a/tools/test/h5ls/CMakeTests.cmake b/tools/test/h5ls/CMakeTests.cmake
index 596162b..61adde1 100644
--- a/tools/test/h5ls/CMakeTests.cmake
+++ b/tools/test/h5ls/CMakeTests.cmake
@@ -147,7 +147,7 @@
macro (ADD_H5_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5LS-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5ls${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5LS-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5ls> ${ARGN})
set_tests_properties (H5LS-${resultfile} PROPERTIES
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
)
@@ -160,7 +160,7 @@
NAME H5LS-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5ls${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -180,7 +180,7 @@
macro (ADD_H5_ERR_TEST resultfile resultcode result_errcheck)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5LS-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5ls${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5LS-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5ls> ${ARGN})
set_tests_properties (H5LS-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
if ("${resultcode}" STREQUAL "1")
set_tests_properties (H5LS-${resultfile} PROPERTIES WILL_FAIL "true")
@@ -190,7 +190,7 @@
NAME H5LS-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5ls${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -215,7 +215,7 @@
NAME H5LS_UD-${testname}-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5ls${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
diff --git a/tools/test/h5ls/CMakeTestsVDS.cmake b/tools/test/h5ls/CMakeTestsVDS.cmake
index 9bf4042..9251718 100644
--- a/tools/test/h5ls/CMakeTestsVDS.cmake
+++ b/tools/test/h5ls/CMakeTestsVDS.cmake
@@ -84,7 +84,7 @@
macro (ADD_H5_VDS_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5LS-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5ls${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5LS-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5ls> ${ARGN})
set_tests_properties (H5LS-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/vds")
if ("${resultcode}" STREQUAL "1")
set_tests_properties (H5LS-${resultfile} PROPERTIES WILL_FAIL "true")
@@ -94,7 +94,7 @@
NAME H5LS-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5ls${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/vds"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -111,7 +111,7 @@
macro (ADD_H5_VDS_PREFIX_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5LS_PREFIX-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5ls${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5LS_PREFIX-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5ls> ${ARGN})
set_tests_properties (H5LS_PREFIX-${resultfile} PROPERTIES
ENVIRONMENT "HDF5_VDS_PREFIX=\${ORIGIN}"
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
@@ -124,7 +124,7 @@
NAME H5LS_PREFIX-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5ls${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=vds/prefix/${resultfile}.out"
diff --git a/tools/test/h5repack/CMakeTests.cmake b/tools/test/h5repack/CMakeTests.cmake
index 3fb5d56..83c1e73 100644
--- a/tools/test/h5repack/CMakeTests.cmake
+++ b/tools/test/h5repack/CMakeTests.cmake
@@ -249,13 +249,13 @@
macro (ADD_HELP_TEST testname resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5REPACK-h5repack-${testname} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5REPACK-h5repack-${testname} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> ${ARGN})
else ()
add_test (
NAME H5REPACK-h5repack-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5repack${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5repack>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=h5repack-${testname}.out"
@@ -287,7 +287,7 @@
)
add_test (
NAME H5REPACK_OLD-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> ${ARGN} -i ${PROJECT_BINARY_DIR}/testfiles/${testfile} -o ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> ${ARGN} -i ${PROJECT_BINARY_DIR}/testfiles/${testfile} -o ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
set_tests_properties (H5REPACK_OLD-${testname} PROPERTIES
DEPENDS H5REPACK_OLD-${testname}-clear-objects
@@ -297,7 +297,7 @@
endif ()
add_test (
NAME H5REPACK_OLD-${testname}_DFF
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
set_tests_properties (H5REPACK_OLD-${testname}_DFF PROPERTIES
DEPENDS H5REPACK_OLD-${testname}
@@ -332,7 +332,7 @@
)
add_test (
NAME H5REPACK-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> --enable-error-stack ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> --enable-error-stack ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
set_tests_properties (H5REPACK-${testname} PROPERTIES
DEPENDS H5REPACK-${testname}-clear-objects
@@ -342,7 +342,7 @@
endif ()
add_test (
NAME H5REPACK-${testname}_DFF
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
set_tests_properties (H5REPACK-${testname}_DFF PROPERTIES
DEPENDS H5REPACK-${testname}
@@ -378,7 +378,7 @@
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (
NAME H5REPACK_CMP-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile}
)
set_tests_properties (H5REPACK_CMP-${testname} PROPERTIES
DEPENDS H5REPACK_CMP-${testname}-clear-objects
@@ -388,7 +388,7 @@
NAME H5REPACK_CMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5repack${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5repack>"
-D "TEST_ARGS:STRING=${ARGN};${resultfile};out-${testname}.${resultfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}-${testname}.out"
@@ -432,14 +432,14 @@
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (
NAME H5REPACK_MASK-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile}
)
else (HDF5_ENABLE_USING_MEMCHECKER)
add_test (
NAME H5REPACK_MASK-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5repack${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5repack>"
-D "TEST_ARGS:STRING=${ARGN};${resultfile};out-${testname}.${resultfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}-${testname}.out"
@@ -482,7 +482,7 @@
)
add_test (
NAME H5REPACK_DMP-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile}
)
set_tests_properties (H5REPACK_DMP-${testname} PROPERTIES
DEPENDS H5REPACK_DMP-${testname}-clear-objects
@@ -495,7 +495,7 @@
NAME H5REPACK_DMP-h5dump-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-q;creation_order;-pH;out-${testname}.${resultfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}-${testname}.out"
@@ -547,7 +547,7 @@
)
add_test (
NAME H5REPACK_DMP-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${resultfile}
)
set_tests_properties (H5REPACK_DMP-${testname} PROPERTIES
DEPENDS H5REPACK_DMP-${testname}-clear-objects
@@ -560,7 +560,7 @@
NAME H5REPACK_DMP-h5dump-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=out-${testname}.${resultfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}-${testname}.out"
@@ -594,7 +594,7 @@
)
add_test (
NAME H5REPACK_DIFF-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> --enable-error-stack ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> --enable-error-stack ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
set_tests_properties (H5REPACK_DIFF-${testname} PROPERTIES
DEPENDS H5REPACK_DIFF-${testname}-clear-objects
@@ -606,7 +606,7 @@
NAME H5REPACK_DIFF-${testname}_DFF
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
-D "TEST_ARGS:STRING=-v;--enable-error-stack;${testfile};out-${testname}.${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=out-${testname}.${testfile}.out"
@@ -646,7 +646,7 @@
)
add_test (
NAME H5REPACK_STAT-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${statarg}.${resultfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out-${statarg}.${resultfile}
)
set_tests_properties (H5REPACK_STAT-${testname} PROPERTIES
DEPENDS H5REPACK_STAT-${testname}-clear-objects
@@ -659,7 +659,7 @@
NAME H5REPACK_STAT-h5stat-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5stat${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5stat>"
-D "TEST_ARGS:STRING=-S;-s;out-${statarg}.${resultfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}-${testname}.out"
@@ -709,7 +709,7 @@
)
add_test (
NAME H5REPACK_VERIFY_LAYOUT-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
set_tests_properties (H5REPACK_VERIFY_LAYOUT-${testname} PROPERTIES
DEPENDS H5REPACK_VERIFY_LAYOUT-${testname}-clear-objects
@@ -719,7 +719,7 @@
endif ()
add_test (
NAME H5REPACK_VERIFY_LAYOUT-${testname}_DFF
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
set_tests_properties (H5REPACK_VERIFY_LAYOUT-${testname}_DFF PROPERTIES
DEPENDS H5REPACK_VERIFY_LAYOUT-${testname}
@@ -732,7 +732,7 @@
NAME H5REPACK_VERIFY_LAYOUT-${testname}_DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-d;${testdset};-pH;out-${testname}.${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testfile}-${testname}-v.out"
@@ -758,7 +758,7 @@
NAME H5REPACK_VERIFY_LAYOUT-${testname}_DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-pH;out-${testname}.${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testfile}-${testname}-v.out"
@@ -803,7 +803,7 @@
)
add_test (
NAME H5REPACK_VERIFY_LAYOUT_VDS-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
set_tests_properties (H5REPACK_VERIFY_LAYOUT_VDS-${testname} PROPERTIES
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
@@ -816,7 +816,7 @@
NAME H5REPACK_VERIFY_LAYOUT_VDS-${testname}_DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-d;${testdset};-p;out-${testname}.${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testfile}-${testname}-v.out"
@@ -851,7 +851,7 @@
)
add_test (
NAME H5REPACK_VERIFY_SUPERBLOCK-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> -j;${lowbound};-k;${highbound} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> -j;${lowbound};-k;${highbound} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
set_tests_properties (H5REPACK_VERIFY_SUPERBLOCK-${testname} PROPERTIES
DEPENDS H5REPACK_VERIFY_SUPERBLOCK-${testname}-clear-objects
@@ -863,7 +863,7 @@
NAME H5REPACK_VERIFY_SUPERBLOCK-${testname}_DMP
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-H;-B;out-${testname}.${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testfile}-${testname}-v.out"
@@ -895,7 +895,7 @@
)
add_test (
NAME ADD_H5_VERIFY_INVALIDBOUNDS-h5repack-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> -j;${lowbound};-k;${highbound} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> -j;${lowbound};-k;${highbound} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
)
set_tests_properties (ADD_H5_VERIFY_INVALIDBOUNDS-h5repack-${testname} PROPERTIES
DEPENDS ADD_H5_VERIFY_INVALIDBOUNDS-h5repack-${testname}-clear-objects
@@ -923,7 +923,7 @@
)
add_test (
NAME H5REPACK_META-${testname}_N
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}_N.${testname}.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}_N.${testname}.h5
)
set_tests_properties (H5REPACK_META-${testname}_N PROPERTIES
DEPENDS H5REPACK_META-${testname}-clear-objects
@@ -935,7 +935,7 @@
NAME H5REPACK_META-${testname}_N_DFF
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
-D "TEST_ARGS:STRING=-v;${testfile};out-${testname}_N.${testname}.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=out-${testname}_N.${testname}.out"
@@ -951,7 +951,7 @@
endif ()
add_test (
NAME H5REPACK_META-${testname}_M
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}_M.${testname}.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}_M.${testname}.h5
)
set_tests_properties (H5REPACK_META-${testname}_M PROPERTIES
DEPENDS H5REPACK_META-${testname}_N_DFF
@@ -963,7 +963,7 @@
NAME H5REPACK_META-${testname}_M_DFF
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5diff${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5diff>"
-D "TEST_ARGS:STRING=-v;${testfile};out-${testname}_M.${testname}.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=out-${testname}_M.${testname}.out"
@@ -1013,7 +1013,7 @@
NAME H5REPACK_UD-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5repack-shared>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5repack>"
-D "TEST_ARGS:STRING=${ARGN};${resultfile};out-${testname}.${resultfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_EXPECT=${resultcode}"
@@ -1035,7 +1035,7 @@
NAME H5REPACK_UD-${testname}-h5dump
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dump-shared>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
-D "TEST_ARGS:STRING=-pH;out-${testname}.${resultfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}-${testname}.out"
@@ -1098,7 +1098,7 @@
# comparison of known files
add_test (
NAME H5REPACK_EXTERNAL-${testname}_DFF1
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5
)
set_tests_properties (H5REPACK_EXTERNAL-${testname}_DFF1 PROPERTIES
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
@@ -1110,7 +1110,7 @@
# repack the external file to the repacked file
add_test (
NAME H5REPACK_EXTERNAL-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack${tgt_file_ext}> --enable-error-stack ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> --enable-error-stack ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5
)
set_tests_properties (H5REPACK_EXTERNAL-${testname} PROPERTIES
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
@@ -1122,7 +1122,7 @@
# comparison of repacked file to known files
add_test (
NAME H5REPACK_EXTERNAL-${testname}_DFF2
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}.h5
)
set_tests_properties (H5REPACK_EXTERNAL-${testname}_DFF2 PROPERTIES
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
@@ -1133,7 +1133,7 @@
endif ()
add_test (
NAME H5REPACK_EXTERNAL-${testname}_DFF3
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5
)
set_tests_properties (H5REPACK_EXTERNAL-${testname}_DFF3 PROPERTIES
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
@@ -1157,7 +1157,7 @@
# verify comparison of repacked file to known file
add_test (
NAME H5REPACK_EXTERNAL-${testname}_DFF4
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}.h5
)
set_tests_properties (H5REPACK_EXTERNAL-${testname}_DFF4 PROPERTIES
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
@@ -1169,7 +1169,7 @@
# verify comparison of repacked file to known external file fails
add_test (
NAME H5REPACK_EXTERNAL-${testname}_DFF_FAIL
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff${tgt_file_ext}> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5diff> --enable-error-stack ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_rp.h5 ${PROJECT_BINARY_DIR}/testfiles/h5repack_${testfile}_ex.h5
)
set_tests_properties (H5REPACK_EXTERNAL-${testname}_DFF_FAIL PROPERTIES
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
diff --git a/tools/test/h5stat/CMakeTests.cmake b/tools/test/h5stat/CMakeTests.cmake
index 2b47cd0..5e1833f 100644
--- a/tools/test/h5stat/CMakeTests.cmake
+++ b/tools/test/h5stat/CMakeTests.cmake
@@ -96,7 +96,7 @@
macro (ADD_H5_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5STAT-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5stat${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5STAT-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5stat> ${ARGN})
if (${resultcode})
set_tests_properties (H5STAT-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -105,7 +105,7 @@
NAME H5STAT-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5stat${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5stat>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -125,7 +125,7 @@
macro (ADD_H5_ERR_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5STAT-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5stat${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5STAT-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5stat> ${ARGN})
if (${resultcode})
set_tests_properties (H5STAT-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
@@ -134,7 +134,7 @@
NAME H5STAT-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5stat${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5stat>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${resultfile}.out"
diff --git a/tools/test/misc/CMakeTestsClear.cmake b/tools/test/misc/CMakeTestsClear.cmake
index aead4c5..f62be78 100644
--- a/tools/test/misc/CMakeTestsClear.cmake
+++ b/tools/test/misc/CMakeTestsClear.cmake
@@ -94,7 +94,7 @@
NAME H5CLEAR_CMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5clear${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}.out"
@@ -118,7 +118,7 @@
NAME H5CLEAR_CMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5clear${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}.out"
@@ -156,7 +156,7 @@
NAME H5CLEAR_CMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5clear${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
-D "TEST_ARGS:STRING=${ARGN};${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}.out"
@@ -191,7 +191,7 @@
NAME H5CLEAR_CMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5clear${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
-D "TEST_ARGS:STRING=${ARGN};${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}.out"
@@ -213,7 +213,7 @@
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
add_test (
NAME H5CLEAR_RET-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear${tgt_file_ext}> ${ARGN}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear> ${ARGN}
)
set_tests_properties (H5CLEAR_RET-${testname} PROPERTIES
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles"
@@ -243,7 +243,7 @@
NAME H5CLEAR_FILESIZE_CMP-${testname}_before_size
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5clear${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
-D "TEST_ARGS:STRING=--filesize;${testname}.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}_before_size.out"
@@ -260,12 +260,12 @@
if (NOT ${incr_size} MATCHES "NONE")
add_test (
NAME H5CLEAR_FILESIZE_INCR-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear${tgt_file_ext}> --increment=${incr_size} ${testname}.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear> --increment=${incr_size} ${testname}.h5
)
else ()
add_test (
NAME H5CLEAR_FILESIZE_INCR-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear${tgt_file_ext}> --increment ${testname}.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear> --increment ${testname}.h5
)
endif ()
set_tests_properties (H5CLEAR_FILESIZE_INCR-${testname} PROPERTIES
@@ -280,7 +280,7 @@
NAME H5CLEAR_FILESIZE_CMP-${testname}_after_size
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5clear${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
-D "TEST_ARGS:STRING=--filesize;${testname}.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}_after_size.out"
@@ -318,7 +318,7 @@
NAME H5CLEAR_FILESIZE_FAIL_CMP-${testname}_before_size
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5clear${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
-D "TEST_ARGS:STRING=--filesize;${testname}.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}_before_size.out"
@@ -335,12 +335,12 @@
if (NOT ${incr_size} MATCHES "NONE")
add_test (
NAME H5CLEAR_FILESIZE_FAIL_INCR-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear${tgt_file_ext}> -s --increment=${incr_size} ${testname}.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear> -s --increment=${incr_size} ${testname}.h5
)
else ()
add_test (
NAME H5CLEAR_FILESIZE_FAIL_INCR-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear${tgt_file_ext}> -s --increment ${testname}.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear> -s --increment ${testname}.h5
)
endif ()
set_tests_properties (H5CLEAR_FILESIZE_FAIL_INCR-${testname} PROPERTIES
@@ -354,7 +354,7 @@
NAME H5CLEAR_FILESIZE_FAIL_CMP-${testname}_after_size
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5clear${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
-D "TEST_ARGS:STRING=--filesize;${testname}.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}_after_size.out"
@@ -397,7 +397,7 @@
# After "h5clear" the file, the subsequent file open succeeds
add_test (
NAME H5CLEAR-h5clr-${testname}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear${tgt_file_ext}> -s ${testfile}.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear> -s ${testfile}.h5
)
set_tests_properties (H5CLEAR-h5clr-${testname} PROPERTIES
DEPENDS H5CLEAR-clr_open_chk-${testname}_${resultcode}
diff --git a/tools/test/misc/CMakeTestsMkgrp.cmake b/tools/test/misc/CMakeTestsMkgrp.cmake
index e583b7f..a66d4ee 100644
--- a/tools/test/misc/CMakeTestsMkgrp.cmake
+++ b/tools/test/misc/CMakeTestsMkgrp.cmake
@@ -58,7 +58,7 @@
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (
NAME H5MKGRP-${resultfile}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5mkgrp${tgt_file_ext}> ${resultoption} ${resultfile}.h5 ${ARGN}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5mkgrp> ${resultoption} ${resultfile}.h5 ${ARGN}
)
if ("H5MKGRP-${resultfile}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
set_tests_properties (H5MKGRP-${resultfile} PROPERTIES DISABLED true)
@@ -73,7 +73,7 @@
)
add_test (
NAME H5MKGRP-${resultfile}
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5mkgrp${tgt_file_ext}> ${resultoption} ${resultfile}.h5 ${ARGN}
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5mkgrp> ${resultoption} ${resultfile}.h5 ${ARGN}
)
set_tests_properties (H5MKGRP-${resultfile} PROPERTIES
DEPENDS H5MKGRP-${resultfile}-clear-objects
@@ -86,7 +86,7 @@
NAME H5MKGRP-${resultfile}-h5ls
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5ls${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
-D "TEST_ARGS:STRING=-v;-r;${resultfile}.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
@@ -104,7 +104,7 @@
macro (ADD_H5_CMP resultfile resultcode)
if (HDF5_ENABLE_USING_MEMCHECKER)
- add_test (NAME H5MKGRP_CMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5mkgrp${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5MKGRP_CMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5mkgrp> ${ARGN})
else ()
add_test (
NAME H5MKGRP_CMP-${resultfile}-clear-objects
@@ -117,7 +117,7 @@
NAME H5MKGRP_CMP-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5mkgrp${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5mkgrp>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
diff --git a/tools/test/misc/CMakeTestsRepart.cmake b/tools/test/misc/CMakeTestsRepart.cmake
index 81e8cc6..9b3e44e 100644
--- a/tools/test/misc/CMakeTestsRepart.cmake
+++ b/tools/test/misc/CMakeTestsRepart.cmake
@@ -89,7 +89,7 @@
# repartition family member size to 20,000 bytes.
add_test (
NAME H5REPART-h5repart_20K
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repart${tgt_file_ext}> -m 20000 family_file%05d.h5 fst_family%05d.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repart> -m 20000 family_file%05d.h5 fst_family%05d.h5
)
set_tests_properties (H5REPART-h5repart_20K PROPERTIES
FIXTURES_REQUIRED clear_testrepart
@@ -101,7 +101,7 @@
# repartition family member size to 5 KB.
add_test (
NAME H5REPART-h5repart_5K
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repart${tgt_file_ext}> -m 5k family_file%05d.h5 scd_family%05d.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repart> -m 5k family_file%05d.h5 scd_family%05d.h5
)
set_tests_properties (H5REPART-h5repart_5K PROPERTIES
FIXTURES_REQUIRED clear_testrepart
@@ -113,7 +113,7 @@
# convert family file to sec2 file of 20,000 bytes
add_test (
NAME H5REPART-h5repart_single
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repart${tgt_file_ext}> -m 20000 -family_to_single family_file%05d.h5 family_to_single.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repart> -m 20000 -family_to_single family_file%05d.h5 family_to_single.h5
)
set_tests_properties (H5REPART-h5repart_single PROPERTIES
FIXTURES_REQUIRED clear_testrepart
@@ -125,7 +125,7 @@
# convert family file to sec2 file of 20,000 bytes (old argument)
add_test (
NAME H5REPART-h5repart_sec2
- COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repart${tgt_file_ext}> -m 20000 -family_to_sec2 family_file%05d.h5 family_to_sec2.h5
+ COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repart> -m 20000 -family_to_sec2 family_file%05d.h5 family_to_sec2.h5
)
set_tests_properties (H5REPART-h5repart_sec2 PROPERTIES
FIXTURES_REQUIRED clear_testrepart
diff --git a/utils/tools/h5dwalk/CMakeLists.txt b/utils/tools/h5dwalk/CMakeLists.txt
index f0611e0..c520eca 100644
--- a/utils/tools/h5dwalk/CMakeLists.txt
+++ b/utils/tools/h5dwalk/CMakeLists.txt
@@ -4,42 +4,29 @@ project (HDF5_UTILS_TOOLS_H5DWALK C)
# --------------------------------------------------------------------
# Add the h5dwalk and test executables
# --------------------------------------------------------------------
-if (BUILD_STATIC_LIBS)
- add_executable (h5dwalk ${HDF5_UTILS_TOOLS_H5DWALK_SOURCE_DIR}/h5dwalk.c)
-# add_custom_target(generate_demo ALL
-# DEPENDS "${HDF5_TOOLS_ROOT_DIR}/test/demo_destfiles.test"
-# )
- target_include_directories (h5dwalk PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};${CIRCLE_INCLUDE_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5dwalk PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+add_executable (h5dwalk ${HDF5_UTILS_TOOLS_H5DWALK_SOURCE_DIR}/h5dwalk.c)
+#add_custom_target(generate_demo ALL
+# DEPENDS "${HDF5_TOOLS_ROOT_DIR}/test/demo_destfiles.test"
+#)
+target_include_directories (h5dwalk PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};${CIRCLE_INCLUDE_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
+target_compile_options(h5dwalk PRIVATE "${HDF5_CMAKE_C_FLAGS}")
+if (HDF5_BUILD_STATIC_TOOLS)
TARGET_C_PROPERTIES (h5dwalk STATIC)
target_link_libraries (h5dwalk PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET} ${MFU_LIBRARY} "$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
- set_target_properties (h5dwalk PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5dwalk")
-
- set (H5_DEP_EXECUTABLES h5dwalk)
+else ()
+ TARGET_C_PROPERTIES (h5dwalk SHARED)
+ target_link_libraries (h5dwalk PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} ${MFU_LIBRARY} "$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
endif ()
+set_target_properties (h5dwalk PROPERTIES FOLDER tools)
+set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5dwalk")
-if (BUILD_SHARED_LIBS)
- add_executable (h5dwalk-shared ${HDF5_UTILS_TOOLS_H5DWALK_SOURCE_DIR}/h5dwalk.c)
- target_include_directories (h5dwalk-shared PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};${CIRCLE_INCLUDE_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
- target_compile_options(h5dwalk-shared PRIVATE "${HDF5_CMAKE_C_FLAGS}")
- TARGET_C_PROPERTIES (h5dwalk-shared SHARED)
- target_link_libraries (h5dwalk-shared PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} ${MFU_LIBRARY} "$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
- set_target_properties (h5dwalk-shared PROPERTIES FOLDER tools)
- set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5dwalk-shared")
-
- set (H5_DEP_EXECUTABLES ${H5_DEP_EXECUTABLES} h5dwalk-shared)
-endif ()
+set (H5_DEP_EXECUTABLES h5dwalk)
#-----------------------------------------------------------------------------
# Add Target to clang-format
#-----------------------------------------------------------------------------
if (HDF5_ENABLE_FORMATTERS)
- if (BUILD_STATIC_LIBS)
- clang_format (HDF5_H5DWALK_SRC_FORMAT h5dwalk)
- else ()
- clang_format (HDF5_H5DWALK_SRC_FORMAT h5dwalk-shared)
- endif ()
+ clang_format (HDF5_H5DWALK_SRC_FORMAT h5dwalk)
endif ()
##############################################################################
diff --git a/utils/tools/test/h5dwalk/CMakeTests.cmake b/utils/tools/test/h5dwalk/CMakeTests.cmake
index 6cf2dbe..b65499d 100644
--- a/utils/tools/test/h5dwalk/CMakeTests.cmake
+++ b/utils/tools/test/h5dwalk/CMakeTests.cmake
@@ -29,7 +29,7 @@
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
message("Entered ADD_H5_TEST - 0")
- add_test (NAME H5DWALK-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dwalk${tgt_file_ext}> ${ARGN})
+ add_test (NAME H5DWALK-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dwalk> ${ARGN})
set_tests_properties (H5DWALK-${resultfile} PROPERTIES
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
if ("${resultcode}" STREQUAL "1")
@@ -41,7 +41,7 @@
NAME H5DWALK-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
- -D "TEST_PROGRAM=$<TARGET_FILE:h5dwalk${tgt_file_ext}>"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5dwalk>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"