diff --git a/.github/workflows/main-fetchcontent-mac.yml b/.github/workflows/main-fetchcontent-mac.yml new file mode 100644 index 000000000..9f0d55be0 --- /dev/null +++ b/.github/workflows/main-fetchcontent-mac.yml @@ -0,0 +1,248 @@ +name: HDF5 plugins testing with CMake FetchContent on MacOS + +on: + workflow_call: + inputs: + build_mode: + description: "Build type (CMAKE_BUILD_TYPE)" + required: true + type: string + hdf5_tag: + description: "HDF5 git tag to use" + required: false + default: "develop" + type: string + zlib_type: + description: "Type of zlib to use ('zlib' (default) or 'zlib-ng')" + required: false + default: "zlib" + type: string + +permissions: + contents: read + +jobs: + # Test building filter libraries and hdf5_plugins project inline with CMake's + # FetchContent (git) functionality while building HDF5. + build_and_test_inline: + name: "MacOS Clang (hdf5_plugins built inline with HDF5)" + runs-on: macos-latest + steps: + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Set zlib-ng option + id: set_zlibng_option + run: | + if test "${{ inputs.zlib_type }}" = "zlib-ng"; then + echo "zlibng_option=ON" >> "$GITHUB_OUTPUT" + echo "zlib_external=ON" >> "$GITHUB_OUTPUT" + else + echo "zlibng_option=OFF" >> "$GITHUB_OUTPUT" + echo "zlib_external=OFF" >> "$GITHUB_OUTPUT" + fi + + # TODO: Re-enable ZSTD testing after CMake logic issue is fixed + # NOTE: HDF_ENABLE_BLOSC_ZLIB_SUPPORT is set to OFF because otherwise + # the hdf5_plugins Blosc build process will try to build its own zlib + # instead of allowing blosc to use its internal sources that are patched + # for MacOS. + - name: Build HDF5 and HDF5 plugins + run: | + cd ${{ github.workspace }}/hdf5 + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/hdf5_build \ + -DBUILD_STATIC_LIBS=OFF \ + -DHDF5_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DHDF5_ENABLE_ZLIB_SUPPORT=OFF \ + -DZLIB_USE_EXTERNAL=${{ steps.set_zlibng_option.outputs.zlib_external }} \ + -DHDF5_USE_ZLIB_NG=${{ steps.set_zlibng_option.outputs.zlibng_option }} \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DSZIP_USE_EXTERNAL=ON \ + -DHDF5_ENABLE_PLUGIN_SUPPORT=ON \ + -DPLUGIN_USE_EXTERNAL=ON \ + -DPLUGIN_USE_LOCALCONTENT=OFF \ + -DH5PL_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC=ON \ + -DHDF_ENABLE_BLOSC_ZLIB_SUPPORT=OFF \ + -DENABLE_BLOSC2=ON \ + -DENABLE_BZIP2=ON \ + -DENABLE_JPEG=ON \ + -DENABLE_LZ4=ON \ + -DENABLE_LZF=ON \ + -DENABLE_ZFP=ON \ + -DENABLE_ZSTD=OFF \ + -DENABLE_BITGROOM=ON \ + -DENABLE_BITROUND=ON \ + -DENABLE_BSHUF=ON \ + .. + cmake --build . --parallel 3 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + - name: Test HDF5 and HDF5 plugins + shell: bash + run: | + cd "${{ github.workspace }}/hdf5/build" + ctest . --output-on-failure --parallel 3 -C ${{ inputs.build_mode }} + + # Test building hdf5_plugins project against an already-installed HDF5. Filter + # libraries are built with FetchContent (git) while building hdf5_plugins. + build_and_test_git: + name: "MacOS Clang (hdf5_plugins built standalone; plugins built via git)" + runs-on: macos-latest + steps: + - name: Get sources for HDF5 plugins project + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Set zlib-ng option + id: set_zlibng_option + run: | + if test "${{ inputs.zlib_type }}" = "zlib-ng"; then + echo "zlibng_option=ON" >> "$GITHUB_OUTPUT" + else + echo "zlibng_option=OFF" >> "$GITHUB_OUTPUT" + fi + + - name: Build HDF5 + run: | + cd ${{ github.workspace }}/hdf5 + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/hdf5_build \ + -DBUILD_STATIC_LIBS=OFF \ + -DHDF5_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DHDF5_ENABLE_ZLIB_SUPPORT=ON \ + -DZLIB_USE_EXTERNAL=ON \ + -DHDF5_USE_ZLIB_NG=${{ steps.set_zlibng_option.outputs.zlibng_option }} \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DSZIP_USE_EXTERNAL=ON \ + .. + cmake --build . --parallel 3 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + # NOTE: HDF_ENABLE_BLOSC_ZLIB_SUPPORT is set to OFF because otherwise + # the hdf5_plugins Blosc build process will try to build its own zlib + # instead of allowing blosc to use its internal sources that are patched + # for MacOS. + - name: Build HDF5 plugins project + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DHDF5_DIR=${{ github.workspace }}/hdf5_build/cmake \ + -DH5PL_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC=ON \ + -DHDF_ENABLE_BLOSC_ZLIB_SUPPORT=OFF \ + -DENABLE_BLOSC2=ON \ + -DENABLE_BZIP2=ON \ + -DENABLE_JPEG=ON \ + -DENABLE_LZ4=ON \ + -DENABLE_LZF=ON \ + -DENABLE_ZFP=ON \ + -DENABLE_ZSTD=ON \ + -DENABLE_BITGROOM=ON \ + -DENABLE_BITROUND=ON \ + -DENABLE_BSHUF=ON \ + $GITHUB_WORKSPACE + cmake --build . --parallel 3 --config ${{ inputs.build_mode }} + + - name: Test HDF5 plugins project + run: | + cd "${{ runner.workspace }}/build" + ctest . --output-on-failure --parallel 4 -C ${{ inputs.build_mode }} + + # Test building hdf5_plugins project against an already-installed HDF5. Filter + # libraries are built with FetchContent (tgz) while building hdf5_plugins. + build_and_test_tgz: + name: "MacOS Clang (hdf5_plugins built standalone; plugins built via tgz)" + runs-on: macos-latest + steps: + - name: Get sources for HDF5 plugins project + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Set zlib-ng option + id: set_zlibng_option + run: | + if test "${{ inputs.zlib_type }}" = "zlib-ng"; then + echo "zlibng_option=ON" >> "$GITHUB_OUTPUT" + else + echo "zlibng_option=OFF" >> "$GITHUB_OUTPUT" + fi + + - name: Build HDF5 + run: | + cd ${{ github.workspace }}/hdf5 + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/hdf5_build \ + -DBUILD_STATIC_LIBS=OFF \ + -DHDF5_ALLOW_EXTERNAL_SUPPORT=TGZ \ + -DHDF5_ENABLE_ZLIB_SUPPORT=ON \ + -DZLIB_USE_EXTERNAL=ON \ + -DZLIB_USE_LOCALCONTENT=OFF \ + -DHDF5_USE_ZLIB_NG=${{ steps.set_zlibng_option.outputs.zlibng_option }} \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DSZIP_USE_EXTERNAL=ON \ + -DLIBAEC_USE_LOCALCONTENT=OFF \ + .. + cmake --build . --parallel 3 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + - name: Build HDF5 plugins project + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DHDF5_DIR=${{ github.workspace }}/hdf5_build/cmake \ + -DH5PL_ALLOW_EXTERNAL_SUPPORT=TGZ \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC=ON \ + -DENABLE_BLOSC2=ON \ + -DENABLE_BZIP2=ON \ + -DENABLE_JPEG=ON \ + -DENABLE_LZ4=ON \ + -DENABLE_LZF=ON \ + -DENABLE_ZFP=ON \ + -DENABLE_ZSTD=ON \ + -DENABLE_BITGROOM=ON \ + -DENABLE_BITROUND=ON \ + -DENABLE_BSHUF=ON \ + $GITHUB_WORKSPACE + cmake --build . --parallel 3 --config ${{ inputs.build_mode }} + + - name: Test HDF5 plugins project + run: | + cd "${{ runner.workspace }}/build" + ctest . --output-on-failure --parallel 3 -C ${{ inputs.build_mode }} diff --git a/.github/workflows/main-fetchcontent-ubuntu.yml b/.github/workflows/main-fetchcontent-ubuntu.yml new file mode 100644 index 000000000..4ff641d42 --- /dev/null +++ b/.github/workflows/main-fetchcontent-ubuntu.yml @@ -0,0 +1,244 @@ +name: HDF5 plugins testing with CMake FetchContent on Ubuntu + +on: + workflow_call: + inputs: + build_mode: + description: "Build type (CMAKE_BUILD_TYPE)" + required: true + type: string + hdf5_tag: + description: "HDF5 git tag to use" + required: false + default: "develop" + type: string + zlib_type: + description: "Type of zlib to use ('zlib' (default) or 'zlib-ng')" + required: false + default: "zlib" + type: string + +permissions: + contents: read + +jobs: + # Test building filter libraries and hdf5_plugins project inline with CMake's + # FetchContent (git) functionality while building HDF5. + build_and_test_inline: + name: "Ubuntu GCC (hdf5_plugins built inline with HDF5)" + runs-on: ubuntu-latest + steps: + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Set zlib-ng option + id: set_zlibng_option + run: | + if test "${{ inputs.zlib_type }}" = "zlib-ng"; then + echo "zlibng_option=ON" >> "$GITHUB_OUTPUT" + echo "zlib_external=ON" >> "$GITHUB_OUTPUT" + else + echo "zlibng_option=OFF" >> "$GITHUB_OUTPUT" + echo "zlib_external=OFF" >> "$GITHUB_OUTPUT" + fi + + # TODO: Re-enable ZSTD testing after CMake logic issue is fixed + - name: Build HDF5 and HDF5 plugins + run: | + cd ${{ github.workspace }}/hdf5 + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/hdf5_build \ + -DBUILD_STATIC_LIBS=OFF \ + -DHDF5_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DHDF5_ENABLE_ZLIB_SUPPORT=OFF \ + -DZLIB_USE_EXTERNAL=${{ steps.set_zlibng_option.outputs.zlib_external }} \ + -DHDF5_USE_ZLIB_NG=${{ steps.set_zlibng_option.outputs.zlibng_option }} \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DSZIP_USE_EXTERNAL=ON \ + -DHDF5_ENABLE_PLUGIN_SUPPORT=ON \ + -DPLUGIN_USE_EXTERNAL=ON \ + -DPLUGIN_USE_LOCALCONTENT=OFF \ + -DH5PL_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC=ON \ + -DENABLE_BLOSC2=ON \ + -DENABLE_BZIP2=ON \ + -DENABLE_JPEG=ON \ + -DENABLE_LZ4=ON \ + -DENABLE_LZF=ON \ + -DENABLE_ZFP=ON \ + -DENABLE_ZSTD=OFF \ + -DENABLE_BITGROOM=ON \ + -DENABLE_BITROUND=ON \ + -DENABLE_BSHUF=ON \ + .. + # NOTE: Currently a serial build has to be forced, as Blosc and Blosc2 + # appear to have a parallel building dependency issue + cmake --build . --parallel 1 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + - name: Test HDF5 and HDF5 plugins + shell: bash + run: | + cd "${{ github.workspace }}/hdf5/build" + ctest . --output-on-failure --parallel 4 -C ${{ inputs.build_mode }} + + # Test building hdf5_plugins project against an already-installed HDF5. Filter + # libraries are built with FetchContent (git) while building hdf5_plugins. + build_and_test_git: + name: "Ubuntu GCC (hdf5_plugins built standalone; plugins built via git)" + runs-on: ubuntu-latest + steps: + - name: Get sources for HDF5 plugins project + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Set zlib-ng option + id: set_zlibng_option + run: | + if test "${{ inputs.zlib_type }}" = "zlib-ng"; then + echo "zlibng_option=ON" >> "$GITHUB_OUTPUT" + else + echo "zlibng_option=OFF" >> "$GITHUB_OUTPUT" + fi + + - name: Build HDF5 + run: | + cd ${{ github.workspace }}/hdf5 + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/hdf5_build \ + -DBUILD_STATIC_LIBS=OFF \ + -DHDF5_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DHDF5_ENABLE_ZLIB_SUPPORT=ON \ + -DZLIB_USE_EXTERNAL=ON \ + -DHDF5_USE_ZLIB_NG=${{ steps.set_zlibng_option.outputs.zlibng_option }} \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DSZIP_USE_EXTERNAL=ON \ + .. + cmake --build . --parallel 4 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + - name: Build HDF5 plugins project + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DHDF5_DIR=${{ github.workspace }}/hdf5_build/cmake \ + -DH5PL_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC=ON \ + -DENABLE_BLOSC2=ON \ + -DENABLE_BZIP2=ON \ + -DENABLE_JPEG=ON \ + -DENABLE_LZ4=ON \ + -DENABLE_LZF=ON \ + -DENABLE_ZFP=ON \ + -DENABLE_ZSTD=ON \ + -DENABLE_BITGROOM=ON \ + -DENABLE_BITROUND=ON \ + -DENABLE_BSHUF=ON \ + $GITHUB_WORKSPACE + # NOTE: Currently, a serial build has to be forced as Blosc and Blosc2 + # appear to have a parallel building dependency issue + cmake --build . --parallel 1 --config ${{ inputs.build_mode }} + + - name: Test HDF5 plugins project + run: | + cd "${{ runner.workspace }}/build" + ctest . --output-on-failure --parallel 4 -C ${{ inputs.build_mode }} + + # Test building hdf5_plugins project against an already-installed HDF5. Filter + # libraries are built with FetchContent (tgz) while building hdf5_plugins. + build_and_test_tgz: + name: "Ubuntu GCC (hdf5_plugins built standalone; plugins built via tgz)" + runs-on: ubuntu-latest + steps: + - name: Get sources for HDF5 plugins project + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Set zlib-ng option + id: set_zlibng_option + run: | + if test "${{ inputs.zlib_type }}" = "zlib-ng"; then + echo "zlibng_option=ON" >> "$GITHUB_OUTPUT" + else + echo "zlibng_option=OFF" >> "$GITHUB_OUTPUT" + fi + + - name: Build HDF5 + run: | + cd ${{ github.workspace }}/hdf5 + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/hdf5_build \ + -DBUILD_STATIC_LIBS=OFF \ + -DHDF5_ALLOW_EXTERNAL_SUPPORT=TGZ \ + -DHDF5_ENABLE_ZLIB_SUPPORT=ON \ + -DZLIB_USE_EXTERNAL=ON \ + -DZLIB_USE_LOCALCONTENT=OFF \ + -DHDF5_USE_ZLIB_NG=${{ steps.set_zlibng_option.outputs.zlibng_option }} \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DSZIP_USE_EXTERNAL=ON \ + -DLIBAEC_USE_LOCALCONTENT=OFF \ + .. + cmake --build . --parallel 4 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + - name: Build HDF5 plugins project + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DHDF5_DIR=${{ github.workspace }}/hdf5_build/cmake \ + -DH5PL_ALLOW_EXTERNAL_SUPPORT=TGZ \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC=ON \ + -DENABLE_BLOSC2=ON \ + -DENABLE_BZIP2=ON \ + -DENABLE_JPEG=ON \ + -DENABLE_LZ4=ON \ + -DENABLE_LZF=ON \ + -DENABLE_ZFP=ON \ + -DENABLE_ZSTD=ON \ + -DENABLE_BITGROOM=ON \ + -DENABLE_BITROUND=ON \ + -DENABLE_BSHUF=ON \ + $GITHUB_WORKSPACE + # NOTE: Currently, a serial build has to be forced as Blosc and Blosc2 + # appear to have a parallel building dependency issue + cmake --build . --parallel 1 --config ${{ inputs.build_mode }} + + - name: Test HDF5 plugins project + run: | + cd "${{ runner.workspace }}/build" + ctest . --output-on-failure --parallel 4 -C ${{ inputs.build_mode }} diff --git a/.github/workflows/main-fetchcontent-win.yml b/.github/workflows/main-fetchcontent-win.yml new file mode 100644 index 000000000..fb486f8ea --- /dev/null +++ b/.github/workflows/main-fetchcontent-win.yml @@ -0,0 +1,269 @@ +name: HDF5 plugins testing with CMake FetchContent on Windows + +on: + workflow_call: + inputs: + build_mode: + description: "Build type (CMAKE_BUILD_TYPE)" + required: true + type: string + hdf5_tag: + description: "HDF5 git tag to use" + required: false + default: "develop" + type: string + zlib_type: + description: "Type of zlib to use ('zlib' (default) or 'zlib-ng')" + required: false + default: "zlib" + type: string + +permissions: + contents: read + +jobs: + # Test building filter libraries and hdf5_plugins project inline with CMake's + # FetchContent (git) functionality while building HDF5. + build_and_test_inline: + name: "Windows MSVC (hdf5_plugins built inline with HDF5)" + runs-on: windows-latest + steps: + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Set zlib-ng option + id: set_zlibng_option + shell: pwsh + run: | + if ("${{ inputs.zlib_type }}" -eq "zlib-ng") { + "zlibng_option=ON" >> $env:GITHUB_OUTPUT + "zlib_external=ON" >> $env:GITHUB_OUTPUT + } + else { + "zlibng_option=OFF" >> $env:GITHUB_OUTPUT + "zlib_external=OFF" >> $env:GITHUB_OUTPUT + } + + - name: Set environment for MSVC + run: | + # Set these environment variables so CMake picks the correct compiler + echo "CXX=cl.exe" >> $GITHUB_ENV + echo "CC=cl.exe" >> $GITHUB_ENV + + # TODO: Re-enable ZSTD testing after CMake logic issue is fixed + - name: Build HDF5 and HDF5 plugins + shell: bash + run: | + cd "${{ github.workspace }}/hdf5" + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/hdf5_build" \ + -DBUILD_STATIC_LIBS=OFF \ + -DHDF5_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DHDF5_ENABLE_ZLIB_SUPPORT=OFF \ + -DZLIB_USE_EXTERNAL=${{ steps.set_zlibng_option.outputs.zlib_external }} \ + -DHDF5_USE_ZLIB_NG=${{ steps.set_zlibng_option.outputs.zlibng_option }} \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DSZIP_USE_EXTERNAL=ON \ + -DHDF5_ENABLE_PLUGIN_SUPPORT=ON \ + -DPLUGIN_USE_EXTERNAL=ON \ + -DPLUGIN_USE_LOCALCONTENT=OFF \ + -DH5PL_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC=ON \ + -DENABLE_BLOSC2=ON \ + -DENABLE_BZIP2=ON \ + -DENABLE_JPEG=ON \ + -DENABLE_LZ4=ON \ + -DENABLE_LZF=ON \ + -DENABLE_ZFP=ON \ + -DENABLE_ZSTD=OFF \ + -DENABLE_BITGROOM=ON \ + -DENABLE_BITROUND=ON \ + -DENABLE_BSHUF=ON \ + .. + cmake --build . --parallel 4 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + - name: Test HDF5 and HDF5 plugins + shell: bash + run: | + cd "${{ github.workspace }}/hdf5/build" + ctest . --output-on-failure --parallel 4 -C ${{ inputs.build_mode }} + + # Test building hdf5_plugins project against an already-installed HDF5. Filter + # libraries are built with FetchContent (git) while building hdf5_plugins. + build_and_test_git: + name: "Windows MSVC (hdf5_plugins built standalone; plugins built via git)" + runs-on: windows-latest + steps: + - name: Get sources for HDF5 plugins project + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Set zlib-ng option + id: set_zlibng_option + shell: pwsh + run: | + if ("${{ inputs.zlib_type }}" -eq "zlib-ng") { + "zlibng_option=ON" >> $env:GITHUB_OUTPUT + } + else { + "zlibng_option=OFF" >> $env:GITHUB_OUTPUT + } + + - name: Set environment for MSVC + run: | + # Set these environment variables so CMake picks the correct compiler + echo "CXX=cl.exe" >> $GITHUB_ENV + echo "CC=cl.exe" >> $GITHUB_ENV + + - name: Build HDF5 + shell: bash + run: | + cd "${{ github.workspace }}/hdf5" + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/hdf5_build" \ + -DBUILD_STATIC_LIBS=OFF \ + -DHDF5_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DHDF5_ENABLE_ZLIB_SUPPORT=ON \ + -DZLIB_USE_EXTERNAL=ON \ + -DHDF5_USE_ZLIB_NG=${{ steps.set_zlibng_option.outputs.zlibng_option }} \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DSZIP_USE_EXTERNAL=ON \ + .. + cmake --build . --parallel 4 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + - name: Build HDF5 plugins project + shell: bash + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DHDF5_DIR="${{ github.workspace }}/hdf5_build/cmake" \ + -DH5PL_ALLOW_EXTERNAL_SUPPORT=GIT \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC=ON \ + -DENABLE_BLOSC2=ON \ + -DENABLE_BZIP2=ON \ + -DENABLE_JPEG=ON \ + -DENABLE_LZ4=ON \ + -DENABLE_LZF=ON \ + -DENABLE_ZFP=ON \ + -DENABLE_ZSTD=ON \ + -DENABLE_BITGROOM=ON \ + -DENABLE_BITROUND=ON \ + -DENABLE_BSHUF=ON \ + $GITHUB_WORKSPACE + cmake --build . --parallel 4 --config ${{ inputs.build_mode }} + + - name: Test HDF5 plugins project + shell: bash + run: | + cd "${{ runner.workspace }}/build" + ctest . --output-on-failure --parallel 4 -C ${{ inputs.build_mode }} + + # Test building hdf5_plugins project against an already-installed HDF5. Filter + # libraries are built with FetchContent (tgz) while building hdf5_plugins. + build_and_test_tgz: + name: "Windows MSVC (hdf5_plugins built standalone; plugins built via tgz)" + runs-on: windows-latest + steps: + - name: Get sources for HDF5 plugins project + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Set zlib-ng option + id: set_zlibng_option + shell: pwsh + run: | + if ("${{ inputs.zlib_type }}" -eq "zlib-ng") { + "zlibng_option=ON" >> $env:GITHUB_OUTPUT + } + else { + "zlibng_option=OFF" >> $env:GITHUB_OUTPUT + } + + - name: Set environment for MSVC + run: | + # Set these environment variables so CMake picks the correct compiler + echo "CXX=cl.exe" >> $GITHUB_ENV + echo "CC=cl.exe" >> $GITHUB_ENV + + - name: Build HDF5 + shell: bash + run: | + cd "${{ github.workspace }}/hdf5" + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/hdf5_build" \ + -DBUILD_STATIC_LIBS=OFF \ + -DHDF5_ALLOW_EXTERNAL_SUPPORT=TGZ \ + -DHDF5_ENABLE_ZLIB_SUPPORT=ON \ + -DZLIB_USE_EXTERNAL=ON \ + -DZLIB_USE_LOCALCONTENT=OFF \ + -DHDF5_USE_ZLIB_NG=${{ steps.set_zlibng_option.outputs.zlibng_option }} \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DSZIP_USE_EXTERNAL=ON \ + -DLIBAEC_USE_LOCALCONTENT=OFF \ + .. + cmake --build . --parallel 4 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + - name: Build HDF5 plugins project + shell: bash + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DHDF5_DIR="${{ github.workspace }}/hdf5_build/cmake" \ + -DH5PL_ALLOW_EXTERNAL_SUPPORT=TGZ \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC=ON \ + -DENABLE_BLOSC2=ON \ + -DENABLE_BZIP2=ON \ + -DENABLE_JPEG=ON \ + -DENABLE_LZ4=ON \ + -DENABLE_LZF=ON \ + -DENABLE_ZFP=ON \ + -DENABLE_ZSTD=ON \ + -DENABLE_BITGROOM=ON \ + -DENABLE_BITROUND=ON \ + -DENABLE_BSHUF=ON \ + $GITHUB_WORKSPACE + cmake --build . --parallel 4 --config ${{ inputs.build_mode }} + + - name: Test HDF5 plugins project + shell: bash + run: | + cd "${{ runner.workspace }}/build" + ctest . --output-on-failure --parallel 4 -C ${{ inputs.build_mode }} diff --git a/.github/workflows/main-fetchcontent.yml b/.github/workflows/main-fetchcontent.yml new file mode 100644 index 000000000..c61a00482 --- /dev/null +++ b/.github/workflows/main-fetchcontent.yml @@ -0,0 +1,48 @@ +name: HDF5 plugins testing with CMake FetchContent + +on: + workflow_call: + inputs: + build_mode: + description: "Build type (CMAKE_BUILD_TYPE)" + required: true + type: string + hdf5_tag: + description: "HDF5 git tag to use" + required: false + default: "develop" + type: string + zlib_type: + description: "Type of zlib to use ('zlib' (default) or 'zlib-ng')" + required: false + default: "zlib" + type: string + +permissions: + contents: read + +jobs: + build_and_test_ubuntu: + uses: ./.github/workflows/main-fetchcontent-ubuntu.yml + with: + build_mode: ${{ inputs.build_mode }} + hdf5_tag: ${{ inputs.hdf5_tag }} + zlib_type: ${{ inputs.zlib_type }} + + build_and_test_win: + uses: ./.github/workflows/main-fetchcontent-win.yml + # TODO: granularbr testing currently causes timeouts with Debug + # build of Windows, likely due to some exception causing a dialog + # box + if: ${{ inputs.build_mode == 'Release' }} + with: + build_mode: ${{ inputs.build_mode }} + hdf5_tag: ${{ inputs.hdf5_tag }} + zlib_type: ${{ inputs.zlib_type }} + + build_and_test_mac: + uses: ./.github/workflows/main-fetchcontent-mac.yml + with: + build_mode: ${{ inputs.build_mode }} + hdf5_tag: ${{ inputs.hdf5_tag }} + zlib_type: ${{ inputs.zlib_type }} diff --git a/.github/workflows/main-package-managers-mac.yml b/.github/workflows/main-package-managers-mac.yml new file mode 100644 index 000000000..ed7122789 --- /dev/null +++ b/.github/workflows/main-package-managers-mac.yml @@ -0,0 +1,134 @@ +name: HDF5 plugins testing with package managers on MacOS + +on: + workflow_call: + inputs: + build_mode: + description: "Build type (CMAKE_BUILD_TYPE)" + required: true + type: string + hdf5_tag: + description: "HDF5 git tag to use" + required: false + default: "develop" + type: string + zlib_type: + description: "Type of zlib to use ('zlib' (default) or 'zlib-ng')" + required: false + default: "zlib" + type: string + +permissions: + contents: read + +jobs: + # Install and test against filter libraries that are available from homebrew. + # Currently installs and tests against the following filters: + # - Blosc2 + # - JPEG + # - Zstandard + # + # The following filters are not yet tested against due to either missing packages or + # lack of ability for CMake to find the installed packages currently (CMake doesn't + # include a module for finding the package and the package doesn't include a CMake + # configuration file): + # - Bitgroom + # - Bitround + # - Bitshuffle + # - Blosc + # - Bzip2 + # - LZ4 + # - LZF + # - ZFP + # + # No special testing of libaec and zlib(-ng) is currently performed, but they + # are installed and HDF5 is built with them. It is assumed that testing with + # libaec and zlib(-ng) is performed in the HDF5 repository instead. + build_and_test: + name: "MacOS Clang" + runs-on: macos-latest + steps: + - name: Install filter libraries + run: | + #brew install c-blosc + brew install c-blosc2 + #brew install bzip2 + brew install libaec + brew install jpeg + #brew install lz4 + brew install zstd + + - name: Install zlib + if: ${{ inputs.zlib_type == 'zlib' }} + run: brew install zlib + + - name: Install zlib-ng + if: ${{ inputs.zlib_type == 'zlib-ng' }} + run: brew install zlib-ng + + - name: Get sources for HDF5 plugins project + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Set zlib-ng option + id: set_zlibng_option + run: | + if test "${{ inputs.zlib_type }}" = "zlib-ng"; then + echo "zlibng_option=ON" >> "$GITHUB_OUTPUT" + else + echo "zlibng_option=OFF" >> "$GITHUB_OUTPUT" + fi + + - name: Build HDF5 + shell: bash + run: | + cd "${{ github.workspace }}/hdf5" + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/hdf5_build" \ + -DBUILD_STATIC_LIBS=OFF \ + -DBUILD_TESTING=OFF \ + -DHDF5_ENABLE_ZLIB_SUPPORT=ON \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DHDF5_USE_ZLIB_NG=${{ steps.set_zlibng_option.outputs.zlibng_option }} \ + .. + cmake --build . --parallel 3 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + - name: Build HDF5 plugins project + shell: bash + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DHDF5_DIR="${{ github.workspace }}/hdf5_build/cmake" \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC=OFF \ + -DENABLE_BLOSC2=ON \ + -DENABLE_BZIP2=OFF \ + -DENABLE_JPEG=ON \ + -DENABLE_LZ4=OFF \ + -DENABLE_LZF=OFF \ + -DENABLE_ZFP=OFF \ + -DENABLE_ZSTD=ON \ + -DENABLE_BITGROOM=OFF \ + -DENABLE_BITROUND=OFF \ + -DENABLE_BSHUF=OFF \ + $GITHUB_WORKSPACE + cmake --build . --parallel 3 --config ${{ inputs.build_mode }} + + - name: Test HDF5 plugins project + shell: bash + run: | + cd "${{ runner.workspace }}/build" + ctest . --output-on-failure --parallel 3 -C ${{ inputs.build_mode }} diff --git a/.github/workflows/main-package-managers-ubuntu.yml b/.github/workflows/main-package-managers-ubuntu.yml new file mode 100644 index 000000000..c16d0ae8f --- /dev/null +++ b/.github/workflows/main-package-managers-ubuntu.yml @@ -0,0 +1,112 @@ +name: HDF5 plugins testing with package managers on Ubuntu + +on: + workflow_call: + inputs: + build_mode: + description: "Build type (CMAKE_BUILD_TYPE)" + required: true + type: string + hdf5_tag: + description: "HDF5 git tag to use" + required: false + default: "develop" + type: string + +permissions: + contents: read + +jobs: + # Install and test against filter libraries that are available from APT. + # Currently installs and tests against the following filters: + # - Blosc2 + # - JPEG + # - ZFP (Temporarily disabled until H5Z-ZFP CMake is fixed) + # + # The following filters are not yet tested against due to either missing packages or + # lack of ability for CMake to find the installed packages currently (CMake doesn't + # include a module for finding the package and the package doesn't include a CMake + # configuration file): + # - Bitgroom + # - Bitround + # - Bitshuffle + # - Blosc + # - Bzip2 + # - LZ4 + # - LZF + # - Zstandard + # + # No special testing of libaec and zlib(-ng) is currently performed, but they + # are installed and HDF5 is built with them. It is assumed that testing with + # libaec and zlib(-ng) is performed in the HDF5 repository instead. + build_and_test: + name: "Ubuntu GCC" + runs-on: ubuntu-latest + steps: + - name: Install filter libraries + run: | + sudo apt-get update + #sudo apt-get install libblosc-dev + sudo apt-get install libblosc2-dev + sudo apt-get install libjpeg-dev + sudo apt-get install libaec-dev + #sudo apt-get install liblz4-dev + #sudo apt-get install liblzf-dev + #sudo apt-get install libzfp-dev + sudo apt-get install zlib1g-dev + #sudo apt-get install libzstd-dev + + - name: Get sources for HDF5 plugins project + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Build HDF5 + run: | + cd ${{ github.workspace }}/hdf5 + mkdir build + cd build + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/hdf5_build \ + -DBUILD_STATIC_LIBS=OFF \ + -DBUILD_TESTING=OFF \ + -DHDF5_ENABLE_ZLIB_SUPPORT=ON \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + .. + cmake --build . --parallel 4 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + - name: Build HDF5 plugins project + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + # TODO: Re-enable ZFP testing once CMake logic is fixed + cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DHDF5_DIR=${{ github.workspace }}/hdf5_build/cmake \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC2=ON \ + -DENABLE_JPEG=ON \ + -DENABLE_ZFP=OFF \ + -DENABLE_BITGROOM=OFF \ + -DENABLE_BITROUND=OFF \ + -DENABLE_BLOSC=OFF \ + -DENABLE_BSHUF=OFF \ + -DENABLE_BZIP2=OFF \ + -DENABLE_LZ4=OFF \ + -DENABLE_LZF=OFF \ + -DENABLE_ZSTD=OFF \ + $GITHUB_WORKSPACE + cmake --build . --parallel 4 --config ${{ inputs.build_mode }} + + - name: Test HDF5 plugins project + run: | + cd "${{ runner.workspace }}/build" + ctest . --output-on-failure --parallel 4 -C ${{ inputs.build_mode }} diff --git a/.github/workflows/main-package-managers-win.yml b/.github/workflows/main-package-managers-win.yml new file mode 100644 index 000000000..60a338667 --- /dev/null +++ b/.github/workflows/main-package-managers-win.yml @@ -0,0 +1,160 @@ +name: HDF5 plugins testing with package managers on Windows + +on: + workflow_call: + inputs: + build_mode: + description: "Build type (CMAKE_BUILD_TYPE)" + required: true + type: string + hdf5_tag: + description: "HDF5 git tag to use" + required: false + default: "develop" + type: string + zlib_type: + description: "Type of zlib to use ('zlib' (default) or 'zlib-ng')" + required: false + default: "zlib" + type: string + +permissions: + contents: read + +jobs: + # Install and test against filter libraries that are available from vcpkg. + # Currently installs and tests against the following filters: + # - Blosc + # - Blosc2 + # - JPEG + # - LZ4 + # - ZFP (Temporarily disabled until H5Z-ZFP CMake is fixed) + # - Zstandard + # + # The following filters are not yet tested against due to either missing packages or + # lack of ability for CMake to find the installed packages currently (CMake doesn't + # include a module for finding the package and the package doesn't include a CMake + # configuration file): + # - Bitgroom + # - Bitround + # - Bitshuffle + # - Bzip2 + # - LZF + # + # No special testing of libaec and zlib(-ng) is currently performed, but they + # are installed and HDF5 is built with them. It is assumed that testing with + # libaec and zlib(-ng) is performed in the HDF5 repository instead. + build_and_test: + name: "Windows MSVC" + runs-on: windows-latest + steps: + - name: Install filter libraries + run: | + vcpkg install blosc + vcpkg install blosc2 + #vcpkg install bzip2 + vcpkg install libaec + vcpkg install libjpeg-turbo + vcpkg install lz4 + #vcpkg install liblzf + #vcpkg install zfp + vcpkg install zstd + + - name: Install zlib + if: ${{ inputs.zlib_type == 'zlib' }} + run: vcpkg install zlib + + - name: Install zlib-ng + if: ${{ inputs.zlib_type == 'zlib-ng' }} + run: vcpkg install zlib-ng + + - name: Get sources for HDF5 plugins project + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + + - name: Get sources for HDF5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + with: + repository: HDFGroup/hdf5 + ref: "${{ inputs.hdf5_tag }}" + path: ${{ github.workspace }}/hdf5 + + - name: Set zlib-ng option + id: set_zlibng_option + shell: pwsh + run: | + if ("${{ inputs.zlib_type }}" -eq "zlib-ng") { + "zlibng_option=ON" >> $env:GITHUB_OUTPUT + } + else { + "zlibng_option=OFF" >> $env:GITHUB_OUTPUT + } + + - name: Set environment for MSVC + run: | + # Set these environment variables so CMake picks the correct compiler + echo "CXX=cl.exe" >> $GITHUB_ENV + echo "CC=cl.exe" >> $GITHUB_ENV + + - name: Build HDF5 + shell: bash + run: | + cd "${{ github.workspace }}/hdf5" + mkdir build + cd build + cmake \ + -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/hdf5_build" \ + -DBUILD_STATIC_LIBS=OFF \ + -DBUILD_TESTING=OFF \ + -DHDF5_ENABLE_ZLIB_SUPPORT=ON \ + -DHDF5_ENABLE_SZIP_SUPPORT=ON \ + -DHDF5_USE_ZLIB_NG=${{ steps.set_zlibng_option.outputs.zlibng_option }} \ + .. + cmake --build . --parallel 4 --config ${{ inputs.build_mode }} + cmake --install . --config ${{ inputs.build_mode }} + + - name: Build HDF5 plugins project + shell: bash + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + # TODO: Re-enable ZFP testing once CMake logic is fixed + cmake \ + -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake \ + -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \ + -DHDF5_DIR="${{ github.workspace }}/hdf5_build/cmake" \ + -DH5PL_BUILD_TESTING=ON \ + -DH5PL_BUILD_EXAMPLES=ON \ + -DENABLE_BLOSC=ON \ + -DENABLE_BLOSC2=ON \ + -DENABLE_BZIP2=OFF \ + -DENABLE_JPEG=ON \ + -DENABLE_LZ4=ON \ + -DENABLE_LZF=OFF \ + -DENABLE_ZFP=OFF \ + -DENABLE_ZSTD=ON \ + -DENABLE_BITGROOM=OFF \ + -DENABLE_BITROUND=OFF \ + -DENABLE_BSHUF=OFF \ + $GITHUB_WORKSPACE + cmake --build . --parallel 4 --config ${{ inputs.build_mode }} + + # Add vcpkg-installed .dlls and filter library .dlls to PATH + - name: Set PATH + shell: pwsh + run: | + if ("${{ inputs.build_mode }}" -eq "Debug") { + "$env:VCPKG_INSTALLATION_ROOT/installed/x64-windows/debug/bin/" | Out-File -FilePath "$env:GITHUB_PATH" -Append + "${{ runner.workspace }}/build/bin/Debug" | Out-File -FilePath "$env:GITHUB_PATH" -Append + } + else { + "$env:VCPKG_INSTALLATION_ROOT/installed/x64-windows/bin/" | Out-File -FilePath "$env:GITHUB_PATH" -Append + "${{ runner.workspace }}/build/bin/Release" | Out-File -FilePath "$env:GITHUB_PATH" -Append + } + + - name: Test HDF5 plugins project + shell: bash + run: | + cd "${{ runner.workspace }}/build" + ctest . --output-on-failure --parallel 4 -C ${{ inputs.build_mode }} diff --git a/.github/workflows/main-package-managers.yml b/.github/workflows/main-package-managers.yml new file mode 100644 index 000000000..b599b51ef --- /dev/null +++ b/.github/workflows/main-package-managers.yml @@ -0,0 +1,43 @@ +name: HDF5 plugins testing with package managers + +on: + workflow_call: + inputs: + build_mode: + description: "Build type (CMAKE_BUILD_TYPE)" + required: true + type: string + hdf5_tag: + description: "HDF5 git tag to use" + required: false + default: "develop" + type: string + zlib_type: + description: "Type of zlib to use ('zlib' (default) or 'zlib-ng')" + required: false + default: "zlib" + type: string + +permissions: + contents: read + +jobs: + build_and_test_ubuntu: + uses: ./.github/workflows/main-package-managers-ubuntu.yml + with: + build_mode: ${{ inputs.build_mode }} + hdf5_tag: ${{ inputs.hdf5_tag }} + + build_and_test_win: + uses: ./.github/workflows/main-package-managers-win.yml + with: + build_mode: ${{ inputs.build_mode }} + hdf5_tag: ${{ inputs.hdf5_tag }} + zlib_type: ${{ inputs.zlib_type }} + + build_and_test_mac: + uses: ./.github/workflows/main-package-managers-mac.yml + with: + build_mode: ${{ inputs.build_mode }} + hdf5_tag: ${{ inputs.hdf5_tag }} + zlib_type: ${{ inputs.zlib_type }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..a96290dcb --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,61 @@ +name: HDF5 plugins testing + +# Run CI at 06:00 CDT (11:00 UTC) on Monday, for pull requests or on demand +on: + schedule: + - cron: "0 11 * * 1" + workflow_dispatch: + inputs: + hdf5_tag: + description: "HDF5 git tag to use" + required: false + default: "develop" + type: string + zlib_type: + description: "Type of zlib to use ('zlib' (default) or 'zlib-ng')" + required: false + default: "zlib" + type: string + pull_request: + branches: [ "master" ] + +# Using concurrency to cancel any in-progress job or run +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + test-with-package-managers: + strategy: + matrix: + build_mode: ["Release", "Debug"] + + name: "Test with filter libraries installed with package managers" + + # Don't run the action if the commit message says to skip CI + if: "!contains(github.event.head_commit.message, 'skip-ci')" + + uses: ./.github/workflows/main-package-managers.yml + with: + build_mode: ${{ matrix.build_mode }} + hdf5_tag: ${{ inputs.hdf5_tag }} + zlib_type: ${{ inputs.zlib_type }} + + test-with-fetchcontent: + strategy: + matrix: + build_mode: ["Release", "Debug"] + + name: "Test with filter libraries built with CMake's FetchContent" + + # Don't run the action if the commit message says to skip CI + if: "!contains(github.event.head_commit.message, 'skip-ci')" + + uses: ./.github/workflows/main-fetchcontent.yml + with: + build_mode: ${{ matrix.build_mode }} + hdf5_tag: ${{ inputs.hdf5_tag }} + zlib_type: ${{ inputs.zlib_type }} diff --git a/BITGROOM/CMakeLists.txt b/BITGROOM/CMakeLists.txt index c051e7758..5c16a0ba5 100644 --- a/BITGROOM/CMakeLists.txt +++ b/BITGROOM/CMakeLists.txt @@ -38,7 +38,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${BITGROOM_PACKAGE_NAME}) +BASIC_SETTINGS (H5${BITGROOM_PACKAGE_NAME}) set (H5BITGROOM_VERS_MAJOR 1) set (H5BITGROOM_VERS_MINOR 0) diff --git a/BITGROOM/config/cmake/HDFMacros.cmake b/BITGROOM/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BITGROOM/config/cmake/HDFMacros.cmake +++ b/BITGROOM/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BITGROOM/config/cmake/HDFPluginMacros.cmake b/BITGROOM/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/BITGROOM/config/cmake/HDFPluginMacros.cmake +++ b/BITGROOM/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/BITGROOM/config/cmake/binex/config/cmake/HDFMacros.cmake b/BITGROOM/config/cmake/binex/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BITGROOM/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/BITGROOM/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BITGROOM/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/BITGROOM/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/BITGROOM/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/BITGROOM/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/BITGROOM/config/cmake/binex/config/cmake/runTest.cmake b/BITGROOM/config/cmake/binex/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/BITGROOM/config/cmake/binex/config/cmake/runTest.cmake +++ b/BITGROOM/config/cmake/binex/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BITGROOM/config/cmake/binex/example/CMakeLists.txt b/BITGROOM/config/cmake/binex/example/CMakeLists.txt index 433e6740f..d2d77cb49 100644 --- a/BITGROOM/config/cmake/binex/example/CMakeLists.txt +++ b/BITGROOM/config/cmake/binex/example/CMakeLists.txt @@ -192,7 +192,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD BITGROOM - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32022,1,5,3,4,0,0,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32022,0,5,3,4,0,0,0 -l CHUNK=4x8) endif () endif () diff --git a/BITGROOM/config/cmake/binex/example/testfiles/h5repack_layout.h5-ud_convert.ddl b/BITGROOM/config/cmake/binex/example/testfiles/h5repack_layout.h5-ud_convert.ddl index bf7f66223..dd4ae1308 100644 --- a/BITGROOM/config/cmake/binex/example/testfiles/h5repack_layout.h5-ud_convert.ddl +++ b/BITGROOM/config/cmake/binex/example/testfiles/h5repack_layout.h5-ud_convert.ddl @@ -5,13 +5,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -26,13 +23,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -47,13 +41,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -68,13 +59,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -89,13 +77,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, H5S_UNLIMITED ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -110,13 +95,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -131,13 +113,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET diff --git a/BITGROOM/config/cmake/runTest.cmake b/BITGROOM/config/cmake/runTest.cmake index e314af90f..edf46a867 100755 --- a/BITGROOM/config/cmake/runTest.cmake +++ b/BITGROOM/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BITGROOM/example/CMakeLists.txt b/BITGROOM/example/CMakeLists.txt index f269b6733..6aaa2d549 100755 --- a/BITGROOM/example/CMakeLists.txt +++ b/BITGROOM/example/CMakeLists.txt @@ -153,8 +153,8 @@ if (H5PL_BUILD_TESTING) -D "TEST_OUTPUT=${testname}.${resultfile}.out" -D "TEST_REFERENCE=${testname}.${resultfile}.tst" -D "TEST_LIBRARY_DIRECTORY=${TESTLIBDIR}" - #-D "TEST_ENV_VAR=HDF5_PLUGIN_PATH" - #-D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}/plugins" + -D "TEST_ENV_VAR=HDF5_PLUGIN_PATH" + -D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}/plugins" -P "${H5BITGROOM_RESOURCES_DIR}/runTest.cmake" ) set_tests_properties (H5BITGROOM_UD-${testname} PROPERTIES @@ -203,7 +203,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5BITGROOM_ENCODER) #UD BITGROOM - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32022,1,5,3,4,0,0,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32022,0,5,3,4,0,0,0 -l CHUNK=4x8) endif () endif () diff --git a/BITGROOM/example/testfiles/h5repack_layout.h5-ud_convert.ddl b/BITGROOM/example/testfiles/h5repack_layout.h5-ud_convert.ddl index bf7f66223..dd4ae1308 100644 --- a/BITGROOM/example/testfiles/h5repack_layout.h5-ud_convert.ddl +++ b/BITGROOM/example/testfiles/h5repack_layout.h5-ud_convert.ddl @@ -5,13 +5,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -26,13 +23,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -47,13 +41,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -68,13 +59,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -89,13 +77,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, H5S_UNLIMITED ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -110,13 +95,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -131,13 +113,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32022 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET diff --git a/BITROUND/CMakeLists.txt b/BITROUND/CMakeLists.txt index eca4322e3..768fc3e5a 100644 --- a/BITROUND/CMakeLists.txt +++ b/BITROUND/CMakeLists.txt @@ -38,7 +38,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${BITROUND_PACKAGE_NAME}) +BASIC_SETTINGS (H5${BITROUND_PACKAGE_NAME}) set (H5BITROUND_VERS_MAJOR 1) set (H5BITROUND_VERS_MINOR 0) diff --git a/BITROUND/config/cmake/HDFMacros.cmake b/BITROUND/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BITROUND/config/cmake/HDFMacros.cmake +++ b/BITROUND/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BITROUND/config/cmake/HDFPluginMacros.cmake b/BITROUND/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/BITROUND/config/cmake/HDFPluginMacros.cmake +++ b/BITROUND/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/BITROUND/config/cmake/binex/config/cmake/HDFMacros.cmake b/BITROUND/config/cmake/binex/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BITROUND/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/BITROUND/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BITROUND/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/BITROUND/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/BITROUND/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/BITROUND/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/BITROUND/config/cmake/binex/config/cmake/runTest.cmake b/BITROUND/config/cmake/binex/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/BITROUND/config/cmake/binex/config/cmake/runTest.cmake +++ b/BITROUND/config/cmake/binex/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BITROUND/config/cmake/binex/example/CMakeLists.txt b/BITROUND/config/cmake/binex/example/CMakeLists.txt index f233dd32e..95d00a803 100644 --- a/BITROUND/config/cmake/binex/example/CMakeLists.txt +++ b/BITROUND/config/cmake/binex/example/CMakeLists.txt @@ -198,7 +198,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD BITROUND - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32023,1,5,3,4,0,0,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32023,0,5,3,4,0,0,0 -l CHUNK=4x8) endif () endif () diff --git a/BITROUND/config/cmake/binex/example/testfiles/h5repack_layout.h5-ud_convert.ddl b/BITROUND/config/cmake/binex/example/testfiles/h5repack_layout.h5-ud_convert.ddl index 570d02224..dd4ae1308 100644 --- a/BITROUND/config/cmake/binex/example/testfiles/h5repack_layout.h5-ud_convert.ddl +++ b/BITROUND/config/cmake/binex/example/testfiles/h5repack_layout.h5-ud_convert.ddl @@ -5,13 +5,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -26,13 +23,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -47,13 +41,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -68,13 +59,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -89,13 +77,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, H5S_UNLIMITED ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -110,13 +95,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -131,13 +113,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET diff --git a/BITROUND/config/cmake/runTest.cmake b/BITROUND/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/BITROUND/config/cmake/runTest.cmake +++ b/BITROUND/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BITROUND/example/CMakeLists.txt b/BITROUND/example/CMakeLists.txt index 5e354e014..a6370fc2e 100644 --- a/BITROUND/example/CMakeLists.txt +++ b/BITROUND/example/CMakeLists.txt @@ -159,8 +159,8 @@ if (H5PL_BUILD_TESTING) -D "TEST_OUTPUT=${testname}.${resultfile}.out" -D "TEST_REFERENCE=${testname}.${resultfile}.tst" -D "TEST_LIBRARY_DIRECTORY=${TESTLIBDIR}" - #-D "TEST_ENV_VAR=HDF5_PLUGIN_PATH" - #-D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}/plugins" + -D "TEST_ENV_VAR=HDF5_PLUGIN_PATH" + -D "TEST_ENV_VALUE=${CMAKE_BINARY_DIR}/plugins" -P "${H5BITROUND_RESOURCES_DIR}/runTest.cmake" ) set_tests_properties (H5BITROUND_UD-${testname} PROPERTIES @@ -209,7 +209,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5BITROUND_ENCODER) #UD BITROUND - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32023,1,5,3,4,0,0,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32023,0,5,3,4,0,0,0 -l CHUNK=4x8) endif () endif () diff --git a/BITROUND/example/testfiles/h5repack_layout.h5-ud_convert.ddl b/BITROUND/example/testfiles/h5repack_layout.h5-ud_convert.ddl index 570d02224..dd4ae1308 100644 --- a/BITROUND/example/testfiles/h5repack_layout.h5-ud_convert.ddl +++ b/BITROUND/example/testfiles/h5repack_layout.h5-ud_convert.ddl @@ -5,13 +5,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -26,13 +23,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -47,13 +41,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -68,13 +59,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -89,13 +77,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, H5S_UNLIMITED ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -110,13 +95,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET @@ -131,13 +113,10 @@ GROUP "/" { DATASPACE SIMPLE { ( 40, 20 ) / ( 40, 20 ) } STORAGE_LAYOUT { CHUNKED ( 4, 8 ) - SIZE 3840 (0.833:1 COMPRESSION) + SIZE 3840 } FILTERS { - USER_DEFINED_FILTER { - FILTER_ID 32023 - PARAMS { 3 4 0 0 0 } - } + NONE } FILLVALUE { FILL_TIME H5D_FILL_TIME_IFSET diff --git a/BLOSC/CMakeLists.txt b/BLOSC/CMakeLists.txt index ef1ffd334..657cfc3b0 100644 --- a/BLOSC/CMakeLists.txt +++ b/BLOSC/CMakeLists.txt @@ -38,7 +38,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${BLOSC_PACKAGE_NAME}) +BASIC_SETTINGS (H5${BLOSC_PACKAGE_NAME}) # parse the full version numbers from blosc_version.h file(READ ${CMAKE_CURRENT_SOURCE_DIR}/blosc_version.h _vers_h_contents) @@ -183,11 +183,16 @@ if (HDF_ENABLE_BLOSC_SUPPORT) if (NOT H5_BLOSC_HEADER) if (NOT BLOSC_USE_EXTERNAL) find_package (BLOSC NAMES ${BLOSC_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static) - if (NOT BLOSC_FOUND) - find_package (BLOSC) # Legacy find - if (BLOSC_FOUND) - set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${BLOSC_LIBRARIES}) + if (BLOSC_FOUND) + if (TARGET blosc_static) + set (BLOSC_LIBRARIES blosc_static) + elseif (TARGET blosc_shared) + set (BLOSC_LIBRARIES blosc_shared) + else () + message (FATAL_ERROR "Found blosc, but expected targets blosc_ were missing") endif () + else () + find_package (BLOSC) # Legacy find endif () endif () if (BLOSC_FOUND) diff --git a/BLOSC/config/CacheURLs.cmake b/BLOSC/config/CacheURLs.cmake index 967c196ef..aeed686ea 100644 --- a/BLOSC/config/CacheURLs.cmake +++ b/BLOSC/config/CacheURLs.cmake @@ -15,11 +15,12 @@ # EXTERNAL cache entries ######################## +set (HDF5_BLOSC_VERSION "1.21.6" CACHE INTERNAL "Version of Blosc to use when building from external source") set (BLOSC_GIT_URL "https://github.com/Blosc/c-blosc.git" CACHE STRING "Use BLOSC from Github" FORCE) -set (BLOSC_GIT_BRANCH "master" CACHE STRING "" FORCE) +set (BLOSC_GIT_BRANCH "main" CACHE STRING "" FORCE) set (BLOSC_TGZ_ORIGPATH "https://github.com/Blosc/c-blosc/archive/refs/tags" CACHE STRING "Use PLUGINS from original location" FORCE) -set (BLOSC_TGZ_NAME "c-blosc-1.21.6.tar.gz" CACHE STRING "Use BLOSC from compressed file" FORCE) +set (BLOSC_TGZ_NAME "c-blosc-${HDF5_BLOSC_VERSION}.tar.gz" CACHE STRING "Use BLOSC from compressed file" FORCE) set (BLOSC_ZLIB_GIT_URL "https://github.com/madler/zlib.git" CACHE STRING "Use ZLIB from GitHub repository" FORCE) set (BLOSC_ZLIB_GIT_BRANCH "develop" CACHE STRING "" FORCE) diff --git a/BLOSC/config/cmake/H5BLOSCMacros.cmake b/BLOSC/config/cmake/H5BLOSCMacros.cmake index ca8f062f9..c1e0a7852 100644 --- a/BLOSC/config/cmake/H5BLOSCMacros.cmake +++ b/BLOSC/config/cmake/H5BLOSCMacros.cmake @@ -28,6 +28,9 @@ macro (EXTERNAL_BLOSC_LIBRARY compress_type) ) endif () + set (BUILD_TESTS OFF CACHE BOOL "" FORCE) + set (BUILD_FUZZERS OFF CACHE BOOL "" FORCE) + set (BUILD_BENCHMARKS OFF CACHE BOOL "" FORCE) set (PREFER_EXTERNAL_SNAPPY OFF CACHE BOOL "" FORCE) set (PREFER_EXTERNAL_ZLIB OFF CACHE BOOL "" FORCE) set (PREFER_EXTERNAL_ZSTD OFF CACHE BOOL "" FORCE) diff --git a/BLOSC/config/cmake/HDFMacros.cmake b/BLOSC/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BLOSC/config/cmake/HDFMacros.cmake +++ b/BLOSC/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BLOSC/config/cmake/HDFPluginMacros.cmake b/BLOSC/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/BLOSC/config/cmake/HDFPluginMacros.cmake +++ b/BLOSC/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/BLOSC/config/cmake/binex/config/cmake/HDFMacros.cmake b/BLOSC/config/cmake/binex/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BLOSC/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/BLOSC/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BLOSC/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/BLOSC/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/BLOSC/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/BLOSC/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/BLOSC/config/cmake/binex/config/cmake/runTest.cmake b/BLOSC/config/cmake/binex/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/BLOSC/config/cmake/binex/config/cmake/runTest.cmake +++ b/BLOSC/config/cmake/binex/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BLOSC/config/cmake/binex/example/CMakeLists.txt b/BLOSC/config/cmake/binex/example/CMakeLists.txt index a85c5ee9c..4569df5a0 100644 --- a/BLOSC/config/cmake/binex/example/CMakeLists.txt +++ b/BLOSC/config/cmake/binex/example/CMakeLists.txt @@ -192,7 +192,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD BLOSC - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32001,0,0) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32001,0,0) endif () endif () diff --git a/BLOSC/config/cmake/runTest.cmake b/BLOSC/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/BLOSC/config/cmake/runTest.cmake +++ b/BLOSC/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BLOSC/example/CMakeLists.txt b/BLOSC/example/CMakeLists.txt index 2c42e4321..493962d8c 100644 --- a/BLOSC/example/CMakeLists.txt +++ b/BLOSC/example/CMakeLists.txt @@ -211,18 +211,18 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5BLOSC_ENCODER) # ...UD BLOSC - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32001,0,0) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32001,0,0) # ...BLOSC_BLOSCLZ - ADD_H5_UD_TEST (ud_convert_lz 0 h5repack_layout.h5 -v -f UD=32001,0,7,0,0,0,0,5,1,0) + ADD_H5_UD_TEST (ud_convert_lz 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32001,0,7,0,0,0,0,5,1,0) # ...BLOSC_LZ4 - ADD_H5_UD_TEST (ud_convert_lz4 0 h5repack_layout.h5 -v -f UD=32001,0,7,0,0,0,0,5,1,1) + ADD_H5_UD_TEST (ud_convert_lz4 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32001,0,7,0,0,0,0,5,1,1) # ...BLOSC_LZ4HC - ADD_H5_UD_TEST (ud_convert_lz4hc 0 h5repack_layout.h5 -v -f UD=32001,0,7,0,0,0,0,5,1,2) + ADD_H5_UD_TEST (ud_convert_lz4hc 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32001,0,7,0,0,0,0,5,1,2) # ...BLOSC_SNAPPY # ADD_H5_UD_TEST (ud_convert_snappy 0 h5repack_layout.h5 -v -f UD=32001,0,7,0,0,0,0,0,0,3) # ...BLOSC_ZLIB - ADD_H5_UD_TEST (ud_convert_zlib 0 h5repack_layout.h5 -v -f UD=32001,0,7,0,0,0,0,5,1,4) + ADD_H5_UD_TEST (ud_convert_zlib 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32001,0,7,0,0,0,0,5,1,4) # ...BLOSC_ZSTD - ADD_H5_UD_TEST (ud_convert_zstd 0 h5repack_layout.h5 -v -f UD=32001,0,7,0,0,0,0,5,1,5) + ADD_H5_UD_TEST (ud_convert_zstd 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32001,0,7,0,0,0,0,5,1,5) endif () endif () diff --git a/BLOSC2/CMakeLists.txt b/BLOSC2/CMakeLists.txt index 4629c6cab..f37d39ea5 100644 --- a/BLOSC2/CMakeLists.txt +++ b/BLOSC2/CMakeLists.txt @@ -38,7 +38,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${BLOSC2_PACKAGE_NAME}) +BASIC_SETTINGS (H5${BLOSC2_PACKAGE_NAME}) # parse the full version numbers from blosc2_version.h file(READ ${CMAKE_CURRENT_SOURCE_DIR}/blosc2_version.h _vers_h_contents) @@ -126,12 +126,19 @@ option (HDF_ENABLE_BLOSC2_SUPPORT "Enable blosc2" ON) if (HDF_ENABLE_BLOSC2_SUPPORT) if (NOT H5_BLOSC2_HEADER) if (NOT BLOSC2_USE_EXTERNAL) - find_package (BLOSC2 NAMES ${BLOSC2_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static) - if (NOT BLOSC2_FOUND) - find_package (BLOSC2) # Legacy find - if (BLOSC2_FOUND) - set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${BLOSC2_LIBRARIES}) + find_package (BLOSC2 NAMES ${BLOSC2_PACKAGE_NAME}${HDF_PACKAGE_EXT}) + if (BLOSC2_FOUND) + if (TARGET Blosc2::blosc2) + set (BLOSC2_LIBRARIES Blosc2::blosc2) + elseif (TARGET Blosc2::blosc2_static) + set (BLOSC2_LIBRARIES Blosc2::blosc2_static) + elseif (TARGET Blosc2::blosc2_shared) + set (BLOSC2_LIBRARIES Blosc2::blosc2_shared) + else () + message (FATAL_ERROR "Found Blosc2, but expected targets Blosc2::blosc2(_) were missing") endif () + else () + find_package (BLOSC2) # Legacy find endif () endif () if (BLOSC2_FOUND) diff --git a/BLOSC2/config/CacheURLs.cmake b/BLOSC2/config/CacheURLs.cmake index 646ae305d..35686e8f9 100644 --- a/BLOSC2/config/CacheURLs.cmake +++ b/BLOSC2/config/CacheURLs.cmake @@ -15,11 +15,12 @@ # EXTERNAL cache entries ######################## +set (HDF5_BLOSC2_VERSION "2.17.1" CACHE INTERNAL "Version of Blosc2 to use when building from external source") set (BLOSC2_GIT_URL "https://github.com/Blosc/c-blosc2.git" CACHE STRING "Use BLOSC2 from Github" FORCE) -set (BLOSC2_GIT_BRANCH "master" CACHE STRING "" FORCE) +set (BLOSC2_GIT_BRANCH "main" CACHE STRING "" FORCE) set (BLOSC2_TGZ_ORIGPATH "https://github.com/Blosc/c-blosc2/archive/refs/tags" CACHE STRING "Use PLUGINS from original location" FORCE) -set (BLOSC2_TGZ_NAME "c-blosc2-2.17.1.tar.gz" CACHE STRING "Use BLOSC2 from compressed file" FORCE) +set (BLOSC2_TGZ_NAME "c-blosc2-${HDF5_BLOSC2_VERSION}.tar.gz" CACHE STRING "Use BLOSC2 from compressed file" FORCE) set (BLOSC2_ZLIB_GIT_URL "https://github.com/madler/zlib.git" CACHE STRING "Use ZLIB from GitHub repository" FORCE) set (BLOSC2_ZLIB_GIT_BRANCH "develop" CACHE STRING "" FORCE) diff --git a/BLOSC2/config/cmake/HDFMacros.cmake b/BLOSC2/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BLOSC2/config/cmake/HDFMacros.cmake +++ b/BLOSC2/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BLOSC2/config/cmake/HDFPluginMacros.cmake b/BLOSC2/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/BLOSC2/config/cmake/HDFPluginMacros.cmake +++ b/BLOSC2/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/BLOSC2/config/cmake/binex/config/cmake/HDFMacros.cmake b/BLOSC2/config/cmake/binex/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BLOSC2/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/BLOSC2/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BLOSC2/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/BLOSC2/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/BLOSC2/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/BLOSC2/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/BLOSC2/config/cmake/binex/config/cmake/runTest.cmake b/BLOSC2/config/cmake/binex/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/BLOSC2/config/cmake/binex/config/cmake/runTest.cmake +++ b/BLOSC2/config/cmake/binex/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BLOSC2/config/cmake/binex/example/CMakeLists.txt b/BLOSC2/config/cmake/binex/example/CMakeLists.txt index 4c7d37595..83f828273 100644 --- a/BLOSC2/config/cmake/binex/example/CMakeLists.txt +++ b/BLOSC2/config/cmake/binex/example/CMakeLists.txt @@ -192,7 +192,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD BLOSC2 - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32026,0,0) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32026,0,0) endif () endif () diff --git a/BLOSC2/config/cmake/cacheinit.cmake b/BLOSC2/config/cmake/cacheinit.cmake index 3be5b1a3d..38857ba91 100644 --- a/BLOSC2/config/cmake/cacheinit.cmake +++ b/BLOSC2/config/cmake/cacheinit.cmake @@ -23,7 +23,7 @@ set (HDF5_PACKAGE_NAME "hdf5" CACHE STRING "Name of HDF5 package" FORCE) set (HDF5_NAMESPACE "hdf5::" CACHE STRING "Name space of HDF5 library" FORCE) -set (BLOSC2_PACKAGE_NAME "blosc2" CACHE STRING "Name of BLOSC2 package" FORCE) +set (BLOSC2_PACKAGE_NAME "Blosc2" CACHE STRING "Name of BLOSC2 package" FORCE) set (H5BLOSC2_CPACK_ENABLE ON CACHE BOOL "Enable the CPACK include and components" FORCE) set (BLOSC2_ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of BLOSC2_ZLIB package" FORCE) diff --git a/BLOSC2/config/cmake/runTest.cmake b/BLOSC2/config/cmake/runTest.cmake index 18095362a..ebee7300b 100644 --- a/BLOSC2/config/cmake/runTest.cmake +++ b/BLOSC2/config/cmake/runTest.cmake @@ -40,14 +40,12 @@ message (STATUS "COMMAND: ${TEST_EMULATOR} ${TEST_PROGRAM} ${TEST_ARGS}") if (TEST_LIBRARY_DIRECTORY) if (WIN32) set (ENV{PATH} "$ENV{PATH};${TEST_LIBRARY_DIRECTORY}") - set (ENV{HDF5_PLUGIN_PATH} "${TEST_LIBRARY_DIRECTORY}/plugins:${TEST_LIBRARY_DIRECTORY}/plugin:$ENV{HDF5_PLUGIN_PATH}") elseif (APPLE) set (ENV{DYLD_LIBRARY_PATH} "$ENV{DYLD_LIBRARY_PATH}:${TEST_LIBRARY_DIRECTORY}") - set (ENV{HDF5_PLUGIN_PATH} "${TEST_LIBRARY_DIRECTORY}/plugins:$ENV{HDF5_PLUGIN_PATH}") else () set (ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}:${TEST_LIBRARY_DIRECTORY}") - set (ENV{HDF5_PLUGIN_PATH} "${TEST_LIBRARY_DIRECTORY}/plugins:$ENV{HDF5_PLUGIN_PATH}") endif () + set (ENV{HDF5_PLUGIN_PATH} "${TEST_LIBRARY_DIRECTORY}/plugins:${TEST_LIBRARY_DIRECTORY}/plugin:$ENV{HDF5_PLUGIN_PATH}") endif () if (TEST_ENV_VAR) @@ -66,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -78,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -96,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -254,12 +250,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BLOSC2/example/CMakeLists.txt b/BLOSC2/example/CMakeLists.txt index 75c4154ba..8fc47b8b0 100644 --- a/BLOSC2/example/CMakeLists.txt +++ b/BLOSC2/example/CMakeLists.txt @@ -213,18 +213,18 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5BLOSC2_ENCODER) # ...UD BLOSC2 - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32026,0,0) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32026,0,0) # ...BLOSC2_BLOSC2LZ - ADD_H5_UD_TEST (ud_convert_lz 0 h5repack_layout.h5 -v -f UD=32026,0,7,0,0,0,0,5,1,0) + ADD_H5_UD_TEST (ud_convert_lz 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32026,0,7,0,0,0,0,5,1,0) # ...BLOSC2_LZ4 - ADD_H5_UD_TEST (ud_convert_lz4 0 h5repack_layout.h5 -v -f UD=32026,0,7,0,0,0,0,5,1,1) + ADD_H5_UD_TEST (ud_convert_lz4 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32026,0,7,0,0,0,0,5,1,1) # ...BLOSC2_LZ4HC - ADD_H5_UD_TEST (ud_convert_lz4hc 0 h5repack_layout.h5 -v -f UD=32026,0,7,0,0,0,0,5,1,2) + ADD_H5_UD_TEST (ud_convert_lz4hc 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32026,0,7,0,0,0,0,5,1,2) # ...BLOSC2_SNAPPY - # ADD_H5_UD_TEST (ud_convert_snappy 0 h5repack_layout.h5 -v -f UD=32026,0,7,0,0,0,0,0,0,3) + # ADD_H5_UD_TEST (ud_convert_snappy 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32026,0,7,0,0,0,0,0,0,3) # ...BLOSC2_ZLIB - ADD_H5_UD_TEST (ud_convert_zlib 0 h5repack_layout.h5 -v -f UD=32026,0,7,0,0,0,0,5,1,4) + ADD_H5_UD_TEST (ud_convert_zlib 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32026,0,7,0,0,0,0,5,1,4) # ...BLOSC2_ZSTD - ADD_H5_UD_TEST (ud_convert_zstd 0 h5repack_layout.h5 -v -f UD=32026,0,7,0,0,0,0,5,1,5) + ADD_H5_UD_TEST (ud_convert_zstd 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32026,0,7,0,0,0,0,5,1,5) endif () endif () diff --git a/BSHUF/CMakeLists.txt b/BSHUF/CMakeLists.txt index fc0d6c645..9f42668c4 100644 --- a/BSHUF/CMakeLists.txt +++ b/BSHUF/CMakeLists.txt @@ -38,7 +38,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${BSHUF_PACKAGE_NAME}) +BASIC_SETTINGS (H5${BSHUF_PACKAGE_NAME}) set (H5BSHUF_VERS_MAJOR 1) set (H5BSHUF_VERS_MINOR 0) diff --git a/BSHUF/config/cmake/HDFMacros.cmake b/BSHUF/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BSHUF/config/cmake/HDFMacros.cmake +++ b/BSHUF/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BSHUF/config/cmake/HDFPluginMacros.cmake b/BSHUF/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/BSHUF/config/cmake/HDFPluginMacros.cmake +++ b/BSHUF/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/BSHUF/config/cmake/binex/config/cmake/HDFMacros.cmake b/BSHUF/config/cmake/binex/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BSHUF/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/BSHUF/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BSHUF/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/BSHUF/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/BSHUF/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/BSHUF/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/BSHUF/config/cmake/binex/config/cmake/runTest.cmake b/BSHUF/config/cmake/binex/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/BSHUF/config/cmake/binex/config/cmake/runTest.cmake +++ b/BSHUF/config/cmake/binex/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BSHUF/config/cmake/binex/example/CMakeLists.txt b/BSHUF/config/cmake/binex/example/CMakeLists.txt index 96b2f9bb8..9d4d641aa 100644 --- a/BSHUF/config/cmake/binex/example/CMakeLists.txt +++ b/BSHUF/config/cmake/binex/example/CMakeLists.txt @@ -192,7 +192,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD LZ$ - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32008,1,3,0,0,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32008,0,3,0,0,0 -l CHUNK=4x8) endif () endif () diff --git a/BSHUF/config/cmake/runTest.cmake b/BSHUF/config/cmake/runTest.cmake index e314af90f..edf46a867 100755 --- a/BSHUF/config/cmake/runTest.cmake +++ b/BSHUF/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BSHUF/example/CMakeLists.txt b/BSHUF/example/CMakeLists.txt index 6edfdf480..cc9c3a4cf 100755 --- a/BSHUF/example/CMakeLists.txt +++ b/BSHUF/example/CMakeLists.txt @@ -201,7 +201,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5BSHUF_ENCODER) #UD BSHUF - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32008,1,3,0,0,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32008,0,3,0,0,0 -l CHUNK=4x8) endif () endif () diff --git a/BZIP2/CMakeLists.txt b/BZIP2/CMakeLists.txt index b63616940..0220cae89 100644 --- a/BZIP2/CMakeLists.txt +++ b/BZIP2/CMakeLists.txt @@ -38,7 +38,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${BZ2_PACKAGE_NAME}) +BASIC_SETTINGS (H5${BZ2_PACKAGE_NAME}) set (H5BZ2_VERS_MAJOR 1) set (H5BZ2_VERS_MINOR 0) diff --git a/BZIP2/config/cmake/HDFMacros.cmake b/BZIP2/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BZIP2/config/cmake/HDFMacros.cmake +++ b/BZIP2/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BZIP2/config/cmake/HDFPluginMacros.cmake b/BZIP2/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/BZIP2/config/cmake/HDFPluginMacros.cmake +++ b/BZIP2/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/BZIP2/config/cmake/binex/config/cmake/HDFMacros.cmake b/BZIP2/config/cmake/binex/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/BZIP2/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/BZIP2/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/BZIP2/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/BZIP2/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/BZIP2/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/BZIP2/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/BZIP2/config/cmake/binex/config/cmake/runTest.cmake b/BZIP2/config/cmake/binex/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/BZIP2/config/cmake/binex/config/cmake/runTest.cmake +++ b/BZIP2/config/cmake/binex/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BZIP2/config/cmake/binex/example/CMakeLists.txt b/BZIP2/config/cmake/binex/example/CMakeLists.txt index fb542e74a..bb7e46333 100644 --- a/BZIP2/config/cmake/binex/example/CMakeLists.txt +++ b/BZIP2/config/cmake/binex/example/CMakeLists.txt @@ -192,7 +192,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD BZIP2 - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=307,0,1,9) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=307,0,1,9) endif () endif () diff --git a/BZIP2/config/cmake/runTest.cmake b/BZIP2/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/BZIP2/config/cmake/runTest.cmake +++ b/BZIP2/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/BZIP2/example/CMakeLists.txt b/BZIP2/example/CMakeLists.txt index ce27aaf88..f33d06c7a 100644 --- a/BZIP2/example/CMakeLists.txt +++ b/BZIP2/example/CMakeLists.txt @@ -201,7 +201,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5BZ2_ENCODER) #UD BZIP2 - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=307,0,1,9) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=307,0,1,9) endif () endif () diff --git a/CMakeLists.txt b/CMakeLists.txt index d431edfeb..8255ecb17 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,10 @@ if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0") cmake_policy(SET CMP0135 NEW) endif() +if (NOT DEFINED HDF5_PACKAGE_NAME) + set (HDF5_PACKAGE_NAME "hdf5") +endif () + #----------------------------------------------------------------------------- # Basic H5PL stuff here #----------------------------------------------------------------------------- @@ -40,7 +44,7 @@ SET_HDF_BUILD_TYPE() set (H5PL_EXPORTED_TARGETS "") if (NOT DEFINED PL_PACKAGE_NAME) - set (PL_PACKAGE_NAME "pl") + set (PL_PACKAGE_NAME "h5pl") endif () BASIC_SETTINGS (${PL_PACKAGE_NAME}) @@ -131,7 +135,7 @@ elseif (APPLE) #if (CMAKE_C_COMPILER_ID MATCHES "Intel[Ll][Ll][Vv][Mm]") # FILTER_OPTION (BLOSC2) #else - if (NOT CMAKE_C_COMPILER_ID MATCHES "Intel" AND NOT CMAKE_C_COMPILER_ID MATCHES "Apple[Cc]lang") + if (NOT CMAKE_C_COMPILER_ID MATCHES "Intel") FILTER_OPTION (BLOSC2) else () set (ENABLE_BLOSC2 OFF CACHE BOOL "" FORCE) diff --git a/CMakePresets.json b/CMakePresets.json index 54690b7a0..12f2ae695 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -24,7 +24,7 @@ "cacheVariables": { "PLUGIN_TGZ_NAME": {"type": "STRING", "value": "hdf5_plugins-master.tar.gz"}, "PLUGIN_PACKAGE_NAME": {"type": "STRING", "value": "pl"}, - "PL_PACKAGE_NAME": "pl", + "PL_PACKAGE_NAME": "h5pl", "HDF5_NAMESPACE": {"type": "STRING", "value": "hdf5::"}, "HDF5_PACKAGE_NAME": {"type": "STRING", "value": "hdf5"}, "BITGROOM_TGZ_NAME": {"type": "STRING", "value": "bitgroom-1.0.tar.gz"}, @@ -39,7 +39,7 @@ "BLOSC_ZLIB_TGZ_NAME": {"type": "STRING", "value": "zlib-1.3.1.tar.gz"}, "BLOSC_ZLIB_PACKAGE_NAME": {"type": "STRING", "value": "zlib"}, "BLOSC2_TGZ_NAME": {"type": "STRING", "value": "c-blosc2-2.17.1.tar.gz"}, - "BLOSC2_PACKAGE_NAME": {"type": "STRING", "value": "blosc2"}, + "BLOSC2_PACKAGE_NAME": {"type": "STRING", "value": "Blosc2"}, "BLOSC2_ZLIB_TGZ_NAME": {"type": "STRING", "value": "zlib-1.3.1.tar.gz"}, "BLOSC2_ZLIB_PACKAGE_NAME": {"type": "STRING", "value": "zlib"}, "BZ2_TGZ_NAME": {"type": "STRING", "value": "bzip2-bzip2-1.0.8.tar.gz"}, diff --git a/JPEG/CMakeLists.txt b/JPEG/CMakeLists.txt index 698fd3416..9e14145bd 100644 --- a/JPEG/CMakeLists.txt +++ b/JPEG/CMakeLists.txt @@ -38,7 +38,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${JPEG_PACKAGE_NAME}) +BASIC_SETTINGS (H5${JPEG_PACKAGE_NAME}) set (H5JPEG_VERS_MAJOR 1) set (H5JPEG_VERS_MINOR 0) diff --git a/JPEG/config/cmake/HDFMacros.cmake b/JPEG/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/JPEG/config/cmake/HDFMacros.cmake +++ b/JPEG/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/JPEG/config/cmake/HDFPluginMacros.cmake b/JPEG/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/JPEG/config/cmake/HDFPluginMacros.cmake +++ b/JPEG/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/JPEG/config/cmake/binex/config/cmake/HDFMacros.cmake b/JPEG/config/cmake/binex/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/JPEG/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/JPEG/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/JPEG/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/JPEG/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/JPEG/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/JPEG/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/JPEG/config/cmake/binex/config/cmake/runTest.cmake b/JPEG/config/cmake/binex/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/JPEG/config/cmake/binex/config/cmake/runTest.cmake +++ b/JPEG/config/cmake/binex/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/JPEG/config/cmake/binex/example/CMakeLists.txt b/JPEG/config/cmake/binex/example/CMakeLists.txt index 1492a1978..d393a2e39 100644 --- a/JPEG/config/cmake/binex/example/CMakeLists.txt +++ b/JPEG/config/cmake/binex/example/CMakeLists.txt @@ -192,7 +192,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD JPEG - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32019,0,4,100,40,20,0) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32019,0,4,100,40,20,0) endif () endif () diff --git a/JPEG/config/cmake/runTest.cmake b/JPEG/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/JPEG/config/cmake/runTest.cmake +++ b/JPEG/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/LZ4/CMakeLists.txt b/LZ4/CMakeLists.txt index 21cc0090f..23548fc8c 100644 --- a/LZ4/CMakeLists.txt +++ b/LZ4/CMakeLists.txt @@ -38,7 +38,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${LZ4_PACKAGE_NAME}) +BASIC_SETTINGS (H5${LZ4_PACKAGE_NAME}) set (H5LZ4_VERS_MAJOR 1) set (H5LZ4_VERS_MINOR 0) @@ -107,11 +107,14 @@ endif () if (NOT H5_LZ4_HEADER) if (NOT LZ4_USE_EXTERNAL) find_package (LZ4 NAMES ${LZ4_PACKAGE_NAME}) - if (NOT LZ4_FOUND) - find_package (LZ4) # Legacy find - if (LZ4_FOUND) - set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${LZ4_LIBRARIES}) + if (LZ4_FOUND) + if (TARGET lz4::lz4) + set (LZ4_LIBRARIES lz4::lz4) + else () + message (FATAL_ERROR "Found lz4, but expected target lz4::lz4 was missing") endif () + else () + find_package (LZ4) # Legacy find endif () endif () if (LZ4_FOUND) diff --git a/LZ4/config/cmake/HDFMacros.cmake b/LZ4/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/LZ4/config/cmake/HDFMacros.cmake +++ b/LZ4/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/LZ4/config/cmake/HDFPluginMacros.cmake b/LZ4/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/LZ4/config/cmake/HDFPluginMacros.cmake +++ b/LZ4/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/LZ4/config/cmake/binex/config/cmake/HDFMacros.cmake b/LZ4/config/cmake/binex/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/LZ4/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/LZ4/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/LZ4/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/LZ4/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/LZ4/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/LZ4/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/LZ4/config/cmake/binex/config/cmake/runTest.cmake b/LZ4/config/cmake/binex/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/LZ4/config/cmake/binex/config/cmake/runTest.cmake +++ b/LZ4/config/cmake/binex/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/LZ4/config/cmake/binex/example/CMakeLists.txt b/LZ4/config/cmake/binex/example/CMakeLists.txt index 63279e8ec..60b705a15 100644 --- a/LZ4/config/cmake/binex/example/CMakeLists.txt +++ b/LZ4/config/cmake/binex/example/CMakeLists.txt @@ -192,7 +192,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD LZ4 - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32004,0,1,3 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32004,0,1,3 -l CHUNK=4x8) endif () endif () diff --git a/LZ4/config/cmake/runTest.cmake b/LZ4/config/cmake/runTest.cmake index e314af90f..edf46a867 100755 --- a/LZ4/config/cmake/runTest.cmake +++ b/LZ4/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/LZ4/example/CMakeLists.txt b/LZ4/example/CMakeLists.txt index 94e00c982..4d4264139 100755 --- a/LZ4/example/CMakeLists.txt +++ b/LZ4/example/CMakeLists.txt @@ -201,7 +201,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5LZ4_ENCODER) #UD LZ4 - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32004,0,1,3 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32004,0,1,3 -l CHUNK=4x8) endif () endif () diff --git a/LZF/CMakeLists.txt b/LZF/CMakeLists.txt index fcc89a3a2..0cc14e61a 100644 --- a/LZF/CMakeLists.txt +++ b/LZF/CMakeLists.txt @@ -38,7 +38,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${LZF_PACKAGE_NAME}) +BASIC_SETTINGS (H5${LZF_PACKAGE_NAME}) set (H5LZF_VERS_MAJOR 1) set (H5LZF_VERS_MINOR 0) diff --git a/LZF/config/cmake/HDFMacros.cmake b/LZF/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/LZF/config/cmake/HDFMacros.cmake +++ b/LZF/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/LZF/config/cmake/HDFPluginMacros.cmake b/LZF/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/LZF/config/cmake/HDFPluginMacros.cmake +++ b/LZF/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/LZF/config/cmake/binex/config/cmake/HDFMacros.cmake b/LZF/config/cmake/binex/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/LZF/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/LZF/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/LZF/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/LZF/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/LZF/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/LZF/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/LZF/config/cmake/binex/config/cmake/runTest.cmake b/LZF/config/cmake/binex/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/LZF/config/cmake/binex/config/cmake/runTest.cmake +++ b/LZF/config/cmake/binex/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/LZF/config/cmake/binex/example/CMakeLists.txt b/LZF/config/cmake/binex/example/CMakeLists.txt index e7e0cee5a..02f8e2cb4 100644 --- a/LZF/config/cmake/binex/example/CMakeLists.txt +++ b/LZF/config/cmake/binex/example/CMakeLists.txt @@ -192,7 +192,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD LZ$ - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32000,1,3,0,0,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32000,0,3,0,0,0 -l CHUNK=4x8) endif () endif () diff --git a/LZF/config/cmake/runTest.cmake b/LZF/config/cmake/runTest.cmake index e314af90f..edf46a867 100755 --- a/LZF/config/cmake/runTest.cmake +++ b/LZF/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/LZF/example/CMakeLists.txt b/LZF/example/CMakeLists.txt index 820f34e1f..e2d14d23e 100755 --- a/LZF/example/CMakeLists.txt +++ b/LZF/example/CMakeLists.txt @@ -158,6 +158,11 @@ if (H5PL_BUILD_TESTING) -P "${H5LZF_RESOURCES_DIR}/runTest.cmake" ) set_tests_properties (H5LZF_UD-${testname} PROPERTIES DEPENDS H5LZF_UD-${testname}-clearall-objects) + if ("H5LZF_UD-${testname}" STREQUAL "H5LZF_UD-ud_convert") + # LZF filter currently returns a failure during testing + set_tests_properties (H5LZF_UD-${testname} PROPERTIES DISABLED TRUE) + endif () + add_test ( NAME H5LZF_UD-h5dump-${testname} COMMAND "${CMAKE_COMMAND}" @@ -176,6 +181,10 @@ if (H5PL_BUILD_TESTING) WORKING_DIRECTORY "${PROJECT_BINARY_DIR}" DEPENDS H5LZF_UD-${testname}) set (last_test "H5LZF_UD-h5dump-${testname}") + if ("H5LZF_UD-h5dump-${testname}" STREQUAL "H5LZF_UD-h5dump-ud_convert") + # LZF filter currently returns a failure during testing + set_tests_properties (H5LZF_UD-h5dump-${testname} PROPERTIES DISABLED TRUE) + endif () endif () endmacro () @@ -201,7 +210,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5LZF_ENCODER) #UD LZF - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32000,1,3,0,0,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32000,0,3,0,0,0 -l CHUNK=4x8) endif () endif () diff --git a/ZFP/CMakeLists.txt b/ZFP/CMakeLists.txt index 8b7a01fda..4047f8e35 100644 --- a/ZFP/CMakeLists.txt +++ b/ZFP/CMakeLists.txt @@ -60,7 +60,7 @@ if (NOT H5ZFP_PACKAGE_NAME) set(H5ZFP_PACKAGE_NAME "zfp") endif() -BASIC_SETTINGS(${H5ZFP_PACKAGE_NAME}) +BASIC_SETTINGS(H5${H5ZFP_PACKAGE_NAME}) #----------------------------------------------------------------------------- # Version information (read from H5Z-ZFP) diff --git a/ZFP/config/cmake/HDFMacros.cmake b/ZFP/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/ZFP/config/cmake/HDFMacros.cmake +++ b/ZFP/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/ZFP/config/cmake/HDFPluginMacros.cmake b/ZFP/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/ZFP/config/cmake/HDFPluginMacros.cmake +++ b/ZFP/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/ZFP/config/cmake/binex/config/cmake/HDFMacros.cmake b/ZFP/config/cmake/binex/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/ZFP/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/ZFP/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/ZFP/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/ZFP/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/ZFP/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/ZFP/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/ZFP/config/cmake/binex/config/cmake/runTest.cmake b/ZFP/config/cmake/binex/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/ZFP/config/cmake/binex/config/cmake/runTest.cmake +++ b/ZFP/config/cmake/binex/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/ZFP/config/cmake/binex/example/CMakeLists.txt b/ZFP/config/cmake/binex/example/CMakeLists.txt index f773515aa..6c21f4f38 100644 --- a/ZFP/config/cmake/binex/example/CMakeLists.txt +++ b/ZFP/config/cmake/binex/example/CMakeLists.txt @@ -196,7 +196,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD ZFP - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32013,1,0,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32013,0,0,0 -l CHUNK=4x8) endif () endif () diff --git a/ZFP/config/cmake/runTest.cmake b/ZFP/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/ZFP/config/cmake/runTest.cmake +++ b/ZFP/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/ZFP/example/CMakeLists.txt b/ZFP/example/CMakeLists.txt index 3df866973..53e58fd8c 100644 --- a/ZFP/example/CMakeLists.txt +++ b/ZFP/example/CMakeLists.txt @@ -274,7 +274,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5ZFP_ENCODER) #UD ZFP - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32013,1,0,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32013,0,0,0 -l CHUNK=4x8) #UD ZFP accuracy mode ADD_H5_UD_MASK_TEST (ud_mesh_convert 0 mesh.h5 --enable-error-stack -v -f UD=32013,0,6,3,0,3539053052,1062232653,0,0 -l X,Y,Z,Indexes:CHUNK=217 diff --git a/ZSTD/CMakeLists.txt b/ZSTD/CMakeLists.txt index 40d7a7dca..7492ec8b4 100644 --- a/ZSTD/CMakeLists.txt +++ b/ZSTD/CMakeLists.txt @@ -38,7 +38,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${ZSTD_PACKAGE_NAME}) +BASIC_SETTINGS (H5${ZSTD_PACKAGE_NAME}) set (H5ZSTD_VERS_MAJOR 1) set (H5ZSTD_VERS_MINOR 0) @@ -100,10 +100,18 @@ endif () # zstd Library Settings #----------------------------------------------------------------------------- if (NOT ZSTD_USE_EXTERNAL) - set (FIND_ZSTD_COMPONENTS static) - find_package (ZSTD NAMES ${ZSTD_PACKAGE_NAME} COMPONENTS ${FIND_ZSTD_COMPONENTS}) - message (STATUS "ZSTD C libs: static:${ZSTD_static_FOUND}") - if (NOT ZSTD_FOUND) + find_package (ZSTD NAMES ${ZSTD_PACKAGE_NAME}) + if (ZSTD_FOUND) + if (TARGET zstd::libzstd) + set (ZSTD_LIBRARIES zstd::libzstd) + elseif (TARGET zstd::libzstd_static) + set (ZSTD_LIBRARIES zstd::libzstd_static) + elseif (TARGET zstd::libzstd_shared) + set (ZSTD_LIBRARIES zstd::libzstd_shared) + else () + message (FATAL_ERROR "Found zstd, but expected targets zstd::libzstd(_) were missing") + endif () + else () find_package (ZSTD) # Legacy find endif () endif () diff --git a/ZSTD/config/CacheURLs.cmake b/ZSTD/config/CacheURLs.cmake index 27d610879..eddbf4e72 100644 --- a/ZSTD/config/CacheURLs.cmake +++ b/ZSTD/config/CacheURLs.cmake @@ -15,8 +15,9 @@ # EXTERNAL cache entries ######################## -set (ZSTD_GIT_URL "https://github.com/facebook/zstd.git" CACHE STRING "Use ZSTD from GitHub repository" FORCE) +set (HDF5_ZSTD_VERSION "1.5.7" CACHE INTERNAL "Version of Zstd to use when building from external source") +set (ZSTD_GIT_URL "https://github.com/facebook/zstd.git" CACHE STRING "Use ZSTD from GitHub repository" FORCE) set (ZSTD_GIT_BRANCH "dev" CACHE STRING "" FORCE) -set (ZSTD_TGZ_ORIGPATH "https://github.com/facebook/zstd/releases/download/v1.5.7" CACHE STRING "Use PLUGINS from original location" FORCE) -set (ZSTD_TGZ_NAME "zstd-1.5.7.tar.gz" CACHE STRING "Use ZSTD from compressed file" FORCE) +set (ZSTD_TGZ_ORIGPATH "https://github.com/facebook/zstd/releases/download/v${HDF5_ZSTD_VERSION}" CACHE STRING "Use PLUGINS from original location" FORCE) +set (ZSTD_TGZ_NAME "zstd-${HDF5_ZSTD_VERSION}.tar.gz" CACHE STRING "Use ZSTD from compressed file" FORCE) diff --git a/ZSTD/config/cmake/H5ZSTDMacros.cmake b/ZSTD/config/cmake/H5ZSTDMacros.cmake index 2bc580fdf..d2d8aad67 100644 --- a/ZSTD/config/cmake/H5ZSTDMacros.cmake +++ b/ZSTD/config/cmake/H5ZSTDMacros.cmake @@ -18,12 +18,11 @@ macro (EXTERNAL_ZSTD_LIBRARY compress_type) GIT_REPOSITORY ${ZSTD_URL} GIT_TAG ${ZSTD_BRANCH} SOURCE_SUBDIR build/cmake - #SOURCE_SUBDIR this-directory-does-not-exist PATCH_COMMAND ${CMAKE_COMMAND} -E copy - ${H5ZSTD_SOURCE_DIR}/config/CMakeLists.txt + ${H5ZSTD_SOURCE_DIR}/config/patches/CMakeLists.txt /build/cmake/CMakeLists.txt && ${CMAKE_COMMAND} -E copy - ${H5ZSTD_SOURCE_DIR}/config/libCMakeLists.txt + ${H5ZSTD_SOURCE_DIR}/config/patches/libCMakeLists.txt /build/cmake/lib/CMakeLists.txt ) elseif (${compress_type} MATCHES "TGZ") @@ -32,10 +31,10 @@ macro (EXTERNAL_ZSTD_LIBRARY compress_type) URL_HASH "" SOURCE_SUBDIR build/cmake PATCH_COMMAND ${CMAKE_COMMAND} -E copy - ${H5ZSTD_SOURCE_DIR}/config/CMakeLists.txt + ${H5ZSTD_SOURCE_DIR}/config/patches/v${HDF5_ZSTD_VERSION}-CMakeLists.txt /build/cmake/CMakeLists.txt && ${CMAKE_COMMAND} -E copy - ${H5ZSTD_SOURCE_DIR}/config/libCMakeLists.txt + ${H5ZSTD_SOURCE_DIR}/config/patches/libCMakeLists.txt /build/cmake/lib/CMakeLists.txt ) endif () @@ -49,6 +48,10 @@ macro (EXTERNAL_ZSTD_LIBRARY compress_type) # Make subproject to use 'BUILD_TESTING=OFF' setting. set (BUILD_TESTING OFF CACHE INTERNAL "Build Unit Testing" FORCE) + set (ZSTD_BUILD_PROGRAMS OFF) + set (ZSTD_BUILD_CONTRIB OFF) + set (ZSTD_BUILD_TESTS OFF) + FetchContent_MakeAvailable (ZSTD) # Restore the old value of the parameter diff --git a/ZSTD/config/cmake/HDFMacros.cmake b/ZSTD/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/ZSTD/config/cmake/HDFMacros.cmake +++ b/ZSTD/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/ZSTD/config/cmake/HDFPluginMacros.cmake b/ZSTD/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/ZSTD/config/cmake/HDFPluginMacros.cmake +++ b/ZSTD/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/ZSTD/config/cmake/binex/config/cmake/HDFMacros.cmake b/ZSTD/config/cmake/binex/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/ZSTD/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/ZSTD/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/ZSTD/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/ZSTD/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/ZSTD/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/ZSTD/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/ZSTD/config/cmake/binex/config/cmake/runTest.cmake b/ZSTD/config/cmake/binex/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/ZSTD/config/cmake/binex/config/cmake/runTest.cmake +++ b/ZSTD/config/cmake/binex/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/ZSTD/config/cmake/binex/example/CMakeLists.txt b/ZSTD/config/cmake/binex/example/CMakeLists.txt index 7aecc6d4a..1da1d1094 100644 --- a/ZSTD/config/cmake/binex/example/CMakeLists.txt +++ b/ZSTD/config/cmake/binex/example/CMakeLists.txt @@ -192,7 +192,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD ZSTD - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32015,1,5) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32015,0,5) endif () endif () diff --git a/ZSTD/config/cmake/runTest.cmake b/ZSTD/config/cmake/runTest.cmake index e314af90f..edf46a867 100644 --- a/ZSTD/config/cmake/runTest.cmake +++ b/ZSTD/config/cmake/runTest.cmake @@ -64,7 +64,6 @@ if (NOT TEST_INPUT) OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) else () # run the test program with stdin, capture the stdout/stderr and the result var @@ -76,7 +75,6 @@ else () OUTPUT_FILE ${TEST_OUTPUT} ERROR_FILE ${TEST_OUTPUT}.err OUTPUT_VARIABLE TEST_OUT - ERROR_VARIABLE TEST_ERROR ) endif () @@ -94,21 +92,21 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}") # if the .err file exists and ERRROR_APPEND is enabled if (EXISTS "${TEST_FOLDER}/${TEST_OUTPUT}.err") - file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM) - list (LENGTH TEST_STREAM test_len) + file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_ERROR) + list (LENGTH TEST_ERROR test_len) if (test_len GREATER 0) if (TEST_MASK_FILE) - STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}") + STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_ERROR "${TEST_ERROR}") endif () # remove special output - string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_STREAM "${TEST_STREAM}") + string (REGEX REPLACE "^.*_pmi_alps[^\n]+\n" "" TEST_ERROR "${TEST_ERROR}") if (NOT ERROR_APPEND) # write back to original .err file - file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}") + file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_ERROR}") else () # append error output to the stdout output file - file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}") + file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_ERROR}") endif () endif () endif () @@ -251,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/ZSTD/config/libCMakeLists.txt b/ZSTD/config/libCMakeLists.txt deleted file mode 100644 index 426a0d2d3..000000000 --- a/ZSTD/config/libCMakeLists.txt +++ /dev/null @@ -1,160 +0,0 @@ -# ################################################################ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under both the BSD-style license (found in the -# LICENSE file in the root directory of this source tree) and the GPLv2 (found -# in the COPYING file in the root directory of this source tree). -# ################################################################ - -project(libzstd C ASM) - -set(CMAKE_INCLUDE_CURRENT_DIR TRUE) -option(ZSTD_BUILD_STATIC "BUILD STATIC LIBRARIES" ON) -option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" ON) -option(ZSTD_BUILD_COMPRESSION "BUILD COMPRESSION MODULE" ON) -option(ZSTD_BUILD_DECOMPRESSION "BUILD DECOMPRESSION MODULE" ON) -option(ZSTD_BUILD_DICTBUILDER "BUILD DICTBUILDER MODULE" ON) -option(ZSTD_BUILD_DEPRECATED "BUILD DEPRECATED MODULE" OFF) - -set(ZSTDLIB_VISIBLE "" CACHE STRING "Visibility for ZSTDLIB API") -set(ZSTDERRORLIB_VISIBLE "" CACHE STRING "Visibility for ZSTDERRORLIB_VISIBLE API") -set(ZDICTLIB_VISIBLE "" CACHE STRING "Visibility for ZDICTLIB_VISIBLE API") -set(ZSTDLIB_STATIC_API "" CACHE STRING "Visibility for ZSTDLIB_STATIC_API API") -set(ZDICTLIB_STATIC_API "" CACHE STRING "Visibility for ZDICTLIB_STATIC_API API") - -set_property(CACHE ZSTDLIB_VISIBLE PROPERTY STRINGS "" "hidden" "default" "protected" "internal") -set_property(CACHE ZSTDERRORLIB_VISIBLE PROPERTY STRINGS "" "hidden" "default" "protected" "internal") -set_property(CACHE ZDICTLIB_VISIBLE PROPERTY STRINGS "" "hidden" "default" "protected" "internal") -set_property(CACHE ZSTDLIB_STATIC_API PROPERTY STRINGS "" "hidden" "default" "protected" "internal") -set_property(CACHE ZDICTLIB_STATIC_API PROPERTY STRINGS "" "hidden" "default" "protected" "internal") - -file(GLOB CommonSources ${LIBRARY_DIR}/common/*.c) -file(GLOB CompressSources ${LIBRARY_DIR}/compress/*.c) -file(GLOB DecompressSources ${LIBRARY_DIR}/decompress/*.c) -if (MSVC) - add_compile_options(-DZSTD_DISABLE_ASM) -else () - if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|AMD64.*|x86_64.*|X86_64.*") - set(DecompressSources ${DecompressSources} ${LIBRARY_DIR}/decompress/huf_decompress_amd64.S) - else() - add_compile_options(-DZSTD_DISABLE_ASM) - endif() -endif () -file(GLOB DictBuilderSources ${LIBRARY_DIR}/dictBuilder/*.c) -file(GLOB DeprecatedSources ${LIBRARY_DIR}/deprecated/*.c) -file(GLOB PublicHeaders ${LIBRARY_DIR}/*.h) -file(GLOB CommonHeaders ${LIBRARY_DIR}/common/*.h) -file(GLOB CompressHeaders ${LIBRARY_DIR}/compress/*.h) -file(GLOB DecompressHeaders ${LIBRARY_DIR}/decompress/*.h) -file(GLOB DictBuilderHeaders ${LIBRARY_DIR}/dictBuilder/*.h) -file(GLOB DeprecatedHeaders ${LIBRARY_DIR}/deprecated/*.h) - -set(Sources ${CommonSources}) -set(Headers ${PublicHeaders} ${CommonHeaders}) -if (ZSTD_BUILD_COMPRESSION) - set(Sources ${Sources} ${CompressSources}) - set(Headers ${Headers} ${CompressHeaders}) -endif() -if (ZSTD_BUILD_DECOMPRESSION) - set(Sources ${Sources} ${DecompressSources}) - set(Headers ${Headers} ${DecompressHeaders}) -endif() -if (ZSTD_BUILD_DICTBUILDER) - set(Sources ${Sources} ${DictBuilderSources}) - set(Headers ${Headers} ${DictBuilderHeaders}) -endif() -if (ZSTD_BUILD_DEPRECATED) - set(Sources ${Sources} ${DeprecatedSources}) - set(Headers ${Headers} ${DeprecatedHeaders}) -endif() - -if (ZSTD_LEGACY_SUPPORT) - set(LIBRARY_LEGACY_DIR ${LIBRARY_DIR}/legacy) - - set(Sources ${Sources} - ${LIBRARY_LEGACY_DIR}/zstd_v01.c - ${LIBRARY_LEGACY_DIR}/zstd_v02.c - ${LIBRARY_LEGACY_DIR}/zstd_v03.c - ${LIBRARY_LEGACY_DIR}/zstd_v04.c - ${LIBRARY_LEGACY_DIR}/zstd_v05.c - ${LIBRARY_LEGACY_DIR}/zstd_v06.c - ${LIBRARY_LEGACY_DIR}/zstd_v07.c) - - set(Headers ${Headers} - ${LIBRARY_LEGACY_DIR}/zstd_legacy.h - ${LIBRARY_LEGACY_DIR}/zstd_v01.h - ${LIBRARY_LEGACY_DIR}/zstd_v02.h - ${LIBRARY_LEGACY_DIR}/zstd_v03.h - ${LIBRARY_LEGACY_DIR}/zstd_v04.h - ${LIBRARY_LEGACY_DIR}/zstd_v05.h - ${LIBRARY_LEGACY_DIR}/zstd_v06.h - ${LIBRARY_LEGACY_DIR}/zstd_v07.h) -endif () - -if (MSVC) - set(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/libzstd-dll) - set(PlatformDependResources ${MSVC_RESOURCE_DIR}/libzstd-dll.rc) -endif () - -# Explicitly set the language to C for all files, including ASM files. -# Our assembly expects to be compiled by a C compiler, and is only enabled for -# __GNUC__ compatible compilers. Otherwise all the ASM code is disabled by -# macros. -if(NOT CMAKE_ASM_COMPILER STREQUAL CMAKE_C_COMPILER) - set_source_files_properties(${Sources} PROPERTIES LANGUAGE C) -endif() - -macro (add_definition target var) - if (NOT ("${${var}}" STREQUAL "")) - set_property(TARGET ${target} APPEND PROPERTY COMPILE_DEFINITIONS "${var}=__attribute__((visibility(\"${${var}}\")))") - endif () -endmacro () - -# Define directories containing the library's public headers -set(PUBLIC_INCLUDE_DIRS ${LIBRARY_DIR}) - -# Split project to static and shared libraries build -set(library_targets) -if (ZSTD_BUILD_STATIC) - add_library(libzstd_static STATIC ${Sources} ${Headers}) - target_include_directories(libzstd_static INTERFACE $) - list(APPEND library_targets libzstd_static) - if (ZSTD_MULTITHREAD_SUPPORT) - set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD") - if (UNIX) - target_link_libraries(libzstd_static ${THREADS_LIBS}) - endif () - endif () - add_definition(libzstd_static ZSTDLIB_VISIBLE) - add_definition(libzstd_static ZSTDERRORLIB_VISIBLE) - add_definition(libzstd_static ZDICTLIB_VISIBLE) - add_definition(libzstd_static ZSTDLIB_STATIC_API) - add_definition(libzstd_static ZDICTLIB_STATIC_API) -endif () -add_library(libzstd INTERFACE) -target_link_libraries(libzstd INTERFACE libzstd_static) -list(APPEND library_targets libzstd) - -# Add specific compile definitions for MSVC project -if (MSVC) - if (ZSTD_BUILD_STATIC) - set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_HEAPMODE=0;_CRT_SECURE_NO_WARNINGS") - endif () -endif () - -# With MSVC static library needs to be renamed to avoid conflict with import library -if (MSVC OR (WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT MINGW)) - set(STATIC_LIBRARY_BASE_NAME zstd_static) -else () - set(STATIC_LIBRARY_BASE_NAME zstd) -endif () - -# Define static and shared library names -if (ZSTD_BUILD_STATIC) - set_target_properties( - libzstd_static - PROPERTIES - POSITION_INDEPENDENT_CODE On - OUTPUT_NAME ${STATIC_LIBRARY_BASE_NAME}) -endif () diff --git a/ZSTD/config/patches/CMakeLists.txt b/ZSTD/config/patches/CMakeLists.txt new file mode 100644 index 000000000..73f989382 --- /dev/null +++ b/ZSTD/config/patches/CMakeLists.txt @@ -0,0 +1,93 @@ +# ################################################################ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +cmake_minimum_required(VERSION 3.10 FATAL_ERROR) + +# As of 2018-12-26 ZSTD has been validated to build with cmake version 3.13.2 new policies. +# Set and use the newest cmake policies that are validated to work +set(ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION "3") +set(ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION "13") #Policies never changed at PATCH level +if( "${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}" EQUAL "${CMAKE_MAJOR_VERSION}" AND + "${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}" GREATER "${CMAKE_MINOR_VERSION}") + set(ZSTD_CMAKE_POLICY_VERSION "${CMAKE_VERSION}") +else() + set(ZSTD_CMAKE_POLICY_VERSION "${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}.${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}.0") +endif() +cmake_policy(VERSION ${ZSTD_CMAKE_POLICY_VERSION}) + +#----------------------------------------------------------------------------- +# Setup CMake environment +#----------------------------------------------------------------------------- +set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") + +# Define project paths +set(ZSTD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..") +set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) + +#----------------------------------------------------------------------------- +# Configure CMake policies and version +#----------------------------------------------------------------------------- +include(ZstdVersion) + +#----------------------------------------------------------------------------- +# Project declaration +#----------------------------------------------------------------------------- +project(zstd + VERSION "${ZSTD_FULL_VERSION}" + LANGUAGES C # Main library is in C and ASM, ASM is enabled conditionally + HOMEPAGE_URL "${zstd_HOMEPAGE_URL}" + DESCRIPTION "${zstd_DESCRIPTION}" +) + +#----------------------------------------------------------------------------- +# Build type configuration +#----------------------------------------------------------------------------- +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message(STATUS "Setting build type to 'Release' as none was specified.") + set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") +endif() + +#----------------------------------------------------------------------------- +# Include standard modules +#----------------------------------------------------------------------------- +include(GNUInstallDirs) + +#----------------------------------------------------------------------------- +# Display installation information +#----------------------------------------------------------------------------- +message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") +message(STATUS "CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}") + +#----------------------------------------------------------------------------- +# Configure build options +#----------------------------------------------------------------------------- +include(ZstdOptions) + +#----------------------------------------------------------------------------- +# Configure compilation flags +#----------------------------------------------------------------------------- +include(AddZstdCompilationFlags) +ADD_ZSTD_COMPILATION_FLAGS(ON ZSTD_ENABLE_CXX ON) + +#----------------------------------------------------------------------------- +# Configure dependencies +#----------------------------------------------------------------------------- +include(ZstdDependencies) + +#----------------------------------------------------------------------------- +# Configure build targets +#----------------------------------------------------------------------------- +include(ZstdBuild) + +#----------------------------------------------------------------------------- +# Configure package generation +#----------------------------------------------------------------------------- +#include(ZstdPackage) diff --git a/ZSTD/config/patches/libCMakeLists.txt b/ZSTD/config/patches/libCMakeLists.txt new file mode 100644 index 000000000..41234a236 --- /dev/null +++ b/ZSTD/config/patches/libCMakeLists.txt @@ -0,0 +1,295 @@ +# ################################################################ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ################################################################ + +project(libzstd C) # ASM language is conditionally enabled where supported + +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) +option(ZSTD_BUILD_STATIC "BUILD STATIC LIBRARIES" ON) +option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" ON) +option(ZSTD_BUILD_COMPRESSION "BUILD COMPRESSION MODULE" ON) +option(ZSTD_BUILD_DECOMPRESSION "BUILD DECOMPRESSION MODULE" ON) +option(ZSTD_BUILD_DICTBUILDER "BUILD DICTBUILDER MODULE" ON) +option(ZSTD_BUILD_DEPRECATED "BUILD DEPRECATED MODULE" OFF) + +set(ZSTDLIB_VISIBLE "" CACHE STRING "Visibility for ZSTDLIB API") +set(ZSTDERRORLIB_VISIBLE "" CACHE STRING "Visibility for ZSTDERRORLIB_VISIBLE API") +set(ZDICTLIB_VISIBLE "" CACHE STRING "Visibility for ZDICTLIB_VISIBLE API") +set(ZSTDLIB_STATIC_API "" CACHE STRING "Visibility for ZSTDLIB_STATIC_API API") +set(ZDICTLIB_STATIC_API "" CACHE STRING "Visibility for ZDICTLIB_STATIC_API API") + +set_property(CACHE ZSTDLIB_VISIBLE PROPERTY STRINGS "" "hidden" "default" "protected" "internal") +set_property(CACHE ZSTDERRORLIB_VISIBLE PROPERTY STRINGS "" "hidden" "default" "protected" "internal") +set_property(CACHE ZDICTLIB_VISIBLE PROPERTY STRINGS "" "hidden" "default" "protected" "internal") +set_property(CACHE ZSTDLIB_STATIC_API PROPERTY STRINGS "" "hidden" "default" "protected" "internal") +set_property(CACHE ZDICTLIB_STATIC_API PROPERTY STRINGS "" "hidden" "default" "protected" "internal") + +if(NOT ZSTD_BUILD_SHARED AND NOT ZSTD_BUILD_STATIC) + message(SEND_ERROR "You need to build at least one flavor of libzstd") +endif() + +file(GLOB CommonSources ${LIBRARY_DIR}/common/*.c) +file(GLOB CompressSources ${LIBRARY_DIR}/compress/*.c) +file(GLOB DecompressSources ${LIBRARY_DIR}/decompress/*.c) +if (MSVC) + add_compile_options(-DZSTD_DISABLE_ASM) +else () + if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|AMD64.*|x86_64.*|X86_64.*" AND ${ZSTD_HAS_NOEXECSTACK}) + enable_language(ASM) + set(DecompressSources ${DecompressSources} ${LIBRARY_DIR}/decompress/huf_decompress_amd64.S) + else() + add_compile_options(-DZSTD_DISABLE_ASM) + endif() +endif () +file(GLOB DictBuilderSources ${LIBRARY_DIR}/dictBuilder/*.c) +file(GLOB DeprecatedSources ${LIBRARY_DIR}/deprecated/*.c) + +file(GLOB PublicHeaders ${LIBRARY_DIR}/*.h) +file(GLOB CommonHeaders ${LIBRARY_DIR}/common/*.h) +file(GLOB CompressHeaders ${LIBRARY_DIR}/compress/*.h) +file(GLOB DecompressHeaders ${LIBRARY_DIR}/decompress/*.h) +file(GLOB DictBuilderHeaders ${LIBRARY_DIR}/dictBuilder/*.h) +file(GLOB DeprecatedHeaders ${LIBRARY_DIR}/deprecated/*.h) + +set(Sources ${CommonSources}) +set(Headers ${PublicHeaders} ${CommonHeaders}) +if (ZSTD_BUILD_COMPRESSION) + set(Sources ${Sources} ${CompressSources}) + set(Headers ${Headers} ${CompressHeaders}) +endif() +if (ZSTD_BUILD_DECOMPRESSION) + set(Sources ${Sources} ${DecompressSources}) + set(Headers ${Headers} ${DecompressHeaders}) +endif() +if (ZSTD_BUILD_DICTBUILDER) + set(Sources ${Sources} ${DictBuilderSources}) + set(Headers ${Headers} ${DictBuilderHeaders}) +endif() +if (ZSTD_BUILD_DEPRECATED) + set(Sources ${Sources} ${DeprecatedSources}) + set(Headers ${Headers} ${DeprecatedHeaders}) +endif() + +if (ZSTD_LEGACY_SUPPORT) + set(LIBRARY_LEGACY_DIR ${LIBRARY_DIR}/legacy) + + set(Sources ${Sources} + ${LIBRARY_LEGACY_DIR}/zstd_v01.c + ${LIBRARY_LEGACY_DIR}/zstd_v02.c + ${LIBRARY_LEGACY_DIR}/zstd_v03.c + ${LIBRARY_LEGACY_DIR}/zstd_v04.c + ${LIBRARY_LEGACY_DIR}/zstd_v05.c + ${LIBRARY_LEGACY_DIR}/zstd_v06.c + ${LIBRARY_LEGACY_DIR}/zstd_v07.c) + + set(Headers ${Headers} + ${LIBRARY_LEGACY_DIR}/zstd_legacy.h + ${LIBRARY_LEGACY_DIR}/zstd_v01.h + ${LIBRARY_LEGACY_DIR}/zstd_v02.h + ${LIBRARY_LEGACY_DIR}/zstd_v03.h + ${LIBRARY_LEGACY_DIR}/zstd_v04.h + ${LIBRARY_LEGACY_DIR}/zstd_v05.h + ${LIBRARY_LEGACY_DIR}/zstd_v06.h + ${LIBRARY_LEGACY_DIR}/zstd_v07.h) +endif () + +if (MSVC AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")) + set(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/libzstd-dll) + set(PlatformDependResources ${MSVC_RESOURCE_DIR}/libzstd-dll.rc) +else() + set(PlatformDependResources) +endif () + +# Explicitly set the language to C for all files, including ASM files. +# Our assembly expects to be compiled by a C compiler, and is only enabled for +# __GNUC__ compatible compilers. Otherwise all the ASM code is disabled by +# macros. +if(NOT CMAKE_ASM_COMPILER STREQUAL CMAKE_C_COMPILER) + set_source_files_properties(${Sources} PROPERTIES LANGUAGE C) +endif() + +macro (add_definition target var) + if (NOT ("${${var}}" STREQUAL "")) + target_compile_definitions(${target} PUBLIC "${var}=__attribute__((visibility(\"${${var}}\")))") + endif () +endmacro () + +# Define directories containing the library's public headers +set(PUBLIC_INCLUDE_DIRS ${LIBRARY_DIR}) +set(CMAKE_RC_FLAGS "${CMAKE_RC_FLAGS} /I \"${LIBRARY_DIR}\"") +# Split project to static and shared libraries build +if (ZSTD_BUILD_SHARED) + add_library(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources}) + target_include_directories(libzstd_shared INTERFACE $) + if (ZSTD_MULTITHREAD_SUPPORT) + target_compile_definitions(libzstd_shared PUBLIC ZSTD_MULTITHREAD) + if (UNIX) + target_link_libraries(libzstd_shared ${THREADS_LIBS}) + endif () + endif () + add_definition(libzstd_shared ZSTDLIB_VISIBLE) + add_definition(libzstd_shared ZSTDERRORLIB_VISIBLE) + add_definition(libzstd_shared ZDICTLIB_VISIBLE) +endif () +if (ZSTD_BUILD_STATIC) + add_library(libzstd_static STATIC ${Sources} ${Headers}) + target_include_directories(libzstd_static INTERFACE $) + if (ZSTD_MULTITHREAD_SUPPORT) + target_compile_definitions(libzstd_static PUBLIC ZSTD_MULTITHREAD) + if (UNIX) + target_link_libraries(libzstd_static ${THREADS_LIBS}) + endif () + endif () + add_definition(libzstd_static ZSTDLIB_VISIBLE) + add_definition(libzstd_static ZSTDERRORLIB_VISIBLE) + add_definition(libzstd_static ZDICTLIB_VISIBLE) + add_definition(libzstd_static ZSTDLIB_STATIC_API) + add_definition(libzstd_static ZDICTLIB_STATIC_API) +endif () +if (ZSTD_BUILD_SHARED AND NOT ZSTD_BUILD_STATIC) + if (NOT BUILD_SHARED_LIBS) + message(WARNING "BUILD_SHARED_LIBS is OFF, but ZSTD_BUILD_SHARED is ON and ZSTD_BUILD_STATIC is OFF, which takes precedence, so libzstd is a shared library") + endif () + add_library(libzstd INTERFACE) + target_link_libraries(libzstd INTERFACE libzstd_shared) +endif () +if (ZSTD_BUILD_STATIC AND NOT ZSTD_BUILD_SHARED) + if (BUILD_SHARED_LIBS) + message(WARNING "BUILD_SHARED_LIBS is ON, but ZSTD_BUILD_SHARED is OFF and ZSTD_BUILD_STATIC is ON, which takes precedence, is set so libzstd is a static library") + endif () + add_library(libzstd INTERFACE) + target_link_libraries(libzstd INTERFACE libzstd_static) +endif () +if (ZSTD_BUILD_SHARED AND ZSTD_BUILD_STATIC) + # If both ZSTD_BUILD_SHARED and ZSTD_BUILD_STATIC are set, which is the + # default, fallback to using BUILD_SHARED_LIBS to determine whether to + # set libzstd to static or shared. + if (BUILD_SHARED_LIBS) + add_library(libzstd INTERFACE) + target_link_libraries(libzstd INTERFACE libzstd_shared) + else () + add_library(libzstd INTERFACE) + target_link_libraries(libzstd INTERFACE libzstd_static) + endif () +endif () + +# Add specific compile definitions for MSVC project +if (MSVC) + if (ZSTD_BUILD_SHARED) + set_property(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_DLL_EXPORT=1;ZSTD_HEAPMODE=0;_CONSOLE;_CRT_SECURE_NO_WARNINGS") + endif () + if (ZSTD_BUILD_STATIC) + set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_HEAPMODE=0;_CRT_SECURE_NO_WARNINGS") + endif () +endif () + +# With MSVC static library needs to be renamed to avoid conflict with import library +if (MSVC OR (WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT MINGW)) + set(STATIC_LIBRARY_BASE_NAME zstd_static) +else () + set(STATIC_LIBRARY_BASE_NAME zstd) +endif () + +# Define static and shared library names +if (ZSTD_BUILD_SHARED) + set_target_properties( + libzstd_shared + PROPERTIES + OUTPUT_NAME zstd + VERSION ${ZSTD_FULL_VERSION} + SOVERSION ${zstd_VERSION_MAJOR}) + + if (ZSTD_FRAMEWORK) + set_target_properties( + libzstd_shared + PROPERTIES + FRAMEWORK TRUE + FRAMEWORK_VERSION "${ZSTD_FULL_VERSION}" + PRODUCT_BUNDLE_IDENTIFIER "github.com/facebook/zstd" + XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" + PUBLIC_HEADER "${PublicHeaders}" + OUTPUT_NAME "zstd" + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "" + XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO" + XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO" + MACOSX_FRAMEWORK_IDENTIFIER "github.com/facebook/zstd" + MACOSX_FRAMEWORK_BUNDLE_VERSION "${ZSTD_FULL_VERSION}" + MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${ZSTD_SHORT_VERSION}" + MACOSX_RPATH TRUE + RESOURCE ${PublicHeaders}) + endif () +endif () + +if (ZSTD_BUILD_STATIC) + set_target_properties( + libzstd_static + PROPERTIES + POSITION_INDEPENDENT_CODE On + OUTPUT_NAME ${STATIC_LIBRARY_BASE_NAME}) + + if (ZSTD_FRAMEWORK) + set_target_properties( + libzstd_static + PROPERTIES + FRAMEWORK TRUE + FRAMEWORK_VERSION "${ZSTD_FULL_VERSION}" + PRODUCT_BUNDLE_IDENTIFIER "github.com/facebook/zstd/${STATIC_LIBRARY_BASE_NAME}" + XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" + PUBLIC_HEADER "${PublicHeaders}" + OUTPUT_NAME "${STATIC_LIBRARY_BASE_NAME}" + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "" + XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO" + XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO" + MACOSX_FRAMEWORK_IDENTIFIER "github.com/facebook/zstd/${STATIC_LIBRARY_BASE_NAME}" + MACOSX_FRAMEWORK_BUNDLE_VERSION "${ZSTD_FULL_VERSION}" + MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${ZSTD_SHORT_VERSION}" + MACOSX_RPATH TRUE + RESOURCE ${PublicHeaders}) + endif () +endif () + +# pkg-config +include(JoinPaths) # can be replaced by cmake_path(APPEND) in CMake 3.20 +set(PREFIX "${CMAKE_INSTALL_PREFIX}") +set(EXEC_PREFIX "\${prefix}") +join_paths(LIBDIR "\${exec_prefix}" "${CMAKE_INSTALL_LIBDIR}") +join_paths(INCLUDEDIR "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}") +set(LIBS_PRIVATE "${THREADS_LIBS}") +set(VERSION "${zstd_VERSION}") + +configure_file("${LIBRARY_DIR}/libzstd.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libzstd.pc" @ONLY) +#install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libzstd.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + +# install target +#install(FILES ${PublicHeaders} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + +#foreach(target_suffix IN ITEMS "_shared" "_static" "") +# if(TARGET "libzstd${target_suffix}") +# install(TARGETS "libzstd${target_suffix}" +# EXPORT "zstdExports${target_suffix}" +# INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +# ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" +# LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" +# RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" +# BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" +# FRAMEWORK DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT runtime OPTIONAL +# PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +# ) +# endif() +#endforeach() + +# uninstall target +#if (NOT TARGET uninstall) +# configure_file( +# "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" +# "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" +# IMMEDIATE @ONLY) +# +# add_custom_target(uninstall +# COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) +#endif () diff --git a/ZSTD/config/CMakeLists.txt b/ZSTD/config/patches/v1.5.7-CMakeLists.txt similarity index 64% rename from ZSTD/config/CMakeLists.txt rename to ZSTD/config/patches/v1.5.7-CMakeLists.txt index 4f190aa9d..5a40e59f6 100644 --- a/ZSTD/config/CMakeLists.txt +++ b/ZSTD/config/patches/v1.5.7-CMakeLists.txt @@ -7,14 +7,14 @@ # in the COPYING file in the root directory of this source tree). # ################################################################ -cmake_minimum_required(VERSION 3.18 FATAL_ERROR) +cmake_minimum_required(VERSION 3.10 FATAL_ERROR) # As of 2018-12-26 ZSTD has been validated to build with cmake version 3.13.2 new policies. # Set and use the newest cmake policies that are validated to work set(ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION "3") set(ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION "13") #Policies never changed at PATCH level -if( "${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}" EQUAL "${CMAKE_MAJOR_VERSION}" AND - "${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}" GREATER "${CMAKE_MINOR_VERSION}") +if("${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}" EQUAL "${CMAKE_MAJOR_VERSION}" AND + "${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}" GREATER "${CMAKE_MINOR_VERSION}") set(ZSTD_CMAKE_POLICY_VERSION "${CMAKE_VERSION}") else() set(ZSTD_CMAKE_POLICY_VERSION "${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}.${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}.0") @@ -30,12 +30,16 @@ set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib) include(GetZstdLibraryVersion) GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h zstd_VERSION_MAJOR zstd_VERSION_MINOR zstd_VERSION_PATCH) +set(ZSTD_SHORT_VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}") +set(ZSTD_FULL_VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}") + project(zstd - VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}" + VERSION "${ZSTD_FULL_VERSION}" LANGUAGES C # Main library is in C ASM # And ASM CXX # Testing contributed code also utilizes CXX ) + message(STATUS "ZSTD VERSION: ${zstd_VERSION}") set(zstd_HOMEPAGE_URL "https://facebook.github.io/zstd") set(zstd_DESCRIPTION "Zstandard is a real-time compression algorithm, providing high compression ratios.") @@ -81,8 +85,17 @@ else () add_definitions(-DZSTD_LEGACY_SUPPORT=0) endif () +if (APPLE) + option(ZSTD_FRAMEWORK "Build as Apple Frameworks" OFF) +endif () + if (ANDROID) set(ZSTD_MULTITHREAD_SUPPORT_DEFAULT OFF) + # Old versions of bionic libc don't have fseeko/ftello + if ((NOT ${ANDROID_PLATFORM_LEVEL}) OR ${ANDROID_PLATFORM_LEVEL} VERSION_LESS 24) + message(STATUS "Setting compile definitions for old Android API") + add_compile_definitions(LIBC_NO_FSEEKO) + endif () else() set(ZSTD_MULTITHREAD_SUPPORT_DEFAULT ON) endif() @@ -96,11 +109,16 @@ else () message(STATUS "ZSTD_MULTITHREAD_SUPPORT is disabled") endif () -option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" OFF) +option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" ON) option(ZSTD_BUILD_CONTRIB "BUILD CONTRIB" OFF) # Respect the conventional CMake option for enabling tests if it was specified on the first configure +if (BUILD_TESTING) + set(ZSTD_BUILD_TESTS_default ON) +else() set(ZSTD_BUILD_TESTS_default OFF) +endif() +option(ZSTD_BUILD_TESTS "BUILD TESTS" ${ZSTD_BUILD_TESTS_default}) if (MSVC) option(ZSTD_USE_STATIC_RUNTIME "LINK TO STATIC RUN-TIME LIBRARIES" OFF) endif () @@ -127,7 +145,7 @@ if (ZSTD_MULTITHREAD_SUPPORT AND UNIX) set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) endif() - if(CMAKE_USE_PTHREADS_INIT) + if (CMAKE_USE_PTHREADS_INIT) set(THREADS_LIBS "${CMAKE_THREAD_LIBS_INIT}") else() message(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads") @@ -139,6 +157,31 @@ endif () #----------------------------------------------------------------------------- add_subdirectory(lib) +option(ZSTD_PROGRAMS_LINK_SHARED "PROGRAMS LINK SHARED" OFF) + +if (ZSTD_BUILD_PROGRAMS) + if (NOT ZSTD_BUILD_STATIC AND NOT ZSTD_PROGRAMS_LINK_SHARED) + message(SEND_ERROR "You need to build static library to build zstd CLI") + elseif(NOT ZSTD_BUILD_SHARED AND ZSTD_PROGRAMS_LINK_SHARED) + message(SEND_ERROR "You need to build shared library to build zstd CLI") + endif () + + add_subdirectory(programs) +endif () + +if (ZSTD_BUILD_TESTS) + enable_testing() + if (NOT ZSTD_BUILD_STATIC) + message(SEND_ERROR "You need to build static library to build tests") + endif () + + add_subdirectory(tests) +endif () + +if (ZSTD_BUILD_CONTRIB) + add_subdirectory(contrib) +endif () + #----------------------------------------------------------------------------- # Add clean-all target #----------------------------------------------------------------------------- @@ -146,3 +189,40 @@ add_custom_target(clean-all COMMAND ${CMAKE_BUILD_TOOL} clean COMMAND rm -rf ${CMAKE_BINARY_DIR}/ ) + +#----------------------------------------------------------------------------- +# Generate Package Config files +# +# This section is based on the boiler plate code from: +# https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-packages +#----------------------------------------------------------------------------- +#include(CMakePackageConfigHelpers) +#write_basic_package_version_file( +# "${CMAKE_CURRENT_BINARY_DIR}/zstdConfigVersion.cmake" +# VERSION ${zstd_VERSION} +# COMPATIBILITY SameMajorVersion +# ) + +# A Package Config file that works from the build directory +#export(EXPORT zstdExports +# FILE "${CMAKE_CURRENT_BINARY_DIR}/zstdTargets.cmake" +# NAMESPACE zstd:: +# ) + +# A Package Config file that works from the installation directory +#set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/zstd) +#install(EXPORT zstdExports +# FILE zstdTargets.cmake +# NAMESPACE zstd:: +# DESTINATION ${ConfigPackageLocation} +# ) +#configure_package_config_file( +# zstdConfig.cmake.in +# "${CMAKE_CURRENT_BINARY_DIR}/zstdConfig.cmake" +# INSTALL_DESTINATION ${ConfigPackageLocation} +#) +#install(FILES +# "${CMAKE_CURRENT_BINARY_DIR}/zstdConfig.cmake" +# "${CMAKE_CURRENT_BINARY_DIR}/zstdConfigVersion.cmake" +# DESTINATION ${ConfigPackageLocation} +# ) diff --git a/community/MAFISC/CMakeLists.txt b/community/MAFISC/CMakeLists.txt index 307497204..af99395e3 100644 --- a/community/MAFISC/CMakeLists.txt +++ b/community/MAFISC/CMakeLists.txt @@ -37,7 +37,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${MAFISC_PACKAGE_NAME}) +BASIC_SETTINGS (H5${MAFISC_PACKAGE_NAME}) #----------------------------------------------------------------------------- # Specific H5MAFISC here diff --git a/community/MAFISC/config/cmake/HDFMacros.cmake b/community/MAFISC/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/community/MAFISC/config/cmake/HDFMacros.cmake +++ b/community/MAFISC/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/community/MAFISC/config/cmake/HDFPluginMacros.cmake b/community/MAFISC/config/cmake/HDFPluginMacros.cmake index 74bfe385d..57a444628 100644 --- a/community/MAFISC/config/cmake/HDFPluginMacros.cmake +++ b/community/MAFISC/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories diff --git a/community/MAFISC/config/cmake/binex/config/cmake/HDFMacros.cmake b/community/MAFISC/config/cmake/binex/config/cmake/HDFMacros.cmake index d6eb18929..f6b6bff38 100644 --- a/community/MAFISC/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/community/MAFISC/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -458,7 +458,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/community/MAFISC/config/cmake/binex/example/CMakeLists.txt b/community/MAFISC/config/cmake/binex/example/CMakeLists.txt index dedbc68b9..0bdbae83c 100644 --- a/community/MAFISC/config/cmake/binex/example/CMakeLists.txt +++ b/community/MAFISC/config/cmake/binex/example/CMakeLists.txt @@ -196,7 +196,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5PL_ENCODER) #UD MAFISC$ - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32002,0,1,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32002,0,1,0 -l CHUNK=4x8) endif () endif () diff --git a/community/MAFISC/example/CMakeLists.txt b/community/MAFISC/example/CMakeLists.txt index f8b55f50e..55e86a3c2 100755 --- a/community/MAFISC/example/CMakeLists.txt +++ b/community/MAFISC/example/CMakeLists.txt @@ -205,7 +205,7 @@ if (H5PL_BUILD_TESTING) if (NOT DISABLE_H5MAFISC_ENCODER) #UD MAFISC - ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32002,0,1,0 -l CHUNK=4x8) + ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32002,0,1,0 -l CHUNK=4x8) endif () endif () diff --git a/community/SZ/CMakeLists.txt b/community/SZ/CMakeLists.txt index 3331a9f81..269a979d4 100644 --- a/community/SZ/CMakeLists.txt +++ b/community/SZ/CMakeLists.txt @@ -37,7 +37,7 @@ if (NOT H5PL_RESOURCES_DIR) SET_HDF_BUILD_TYPE() endif () -BASIC_SETTINGS (${SZ_PACKAGE_NAME}) +BASIC_SETTINGS (H5${SZ_PACKAGE_NAME}) set (H5SZ_VERS_MAJOR 1) set (H5SZ_VERS_MINOR 0) diff --git a/community/SZ/config/cmake/HDFMacros.cmake b/community/SZ/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/community/SZ/config/cmake/HDFMacros.cmake +++ b/community/SZ/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/community/SZ/config/cmake/HDFPluginMacros.cmake b/community/SZ/config/cmake/HDFPluginMacros.cmake index 74bfe385d..57a444628 100644 --- a/community/SZ/config/cmake/HDFPluginMacros.cmake +++ b/community/SZ/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories diff --git a/community/SZ/config/cmake/binex/config/cmake/HDFMacros.cmake b/community/SZ/config/cmake/binex/config/cmake/HDFMacros.cmake index d6eb18929..f6b6bff38 100644 --- a/community/SZ/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/community/SZ/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -458,7 +458,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/community/SZ/config/cmake/binex/example/CMakeLists.txt b/community/SZ/config/cmake/binex/example/CMakeLists.txt index 7613e39c3..6938ea000 100644 --- a/community/SZ/config/cmake/binex/example/CMakeLists.txt +++ b/community/SZ/config/cmake/binex/example/CMakeLists.txt @@ -196,7 +196,7 @@ if (H5PL_BUILD_TESTING) # skip because SZ filter is for floating point and ints compression ratio could vary slightly #if (NOT DISABLE_H5PL_ENCODER) # #UD SZ - # ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32017,1,5,2,7,20,40,0 -l CHUNK=4x8) + # ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32017,0,5,2,7,20,40,0 -l CHUNK=4x8) #endif () endif () diff --git a/community/SZ/example/CMakeLists.txt b/community/SZ/example/CMakeLists.txt index 8c364b0d0..9774ca950 100755 --- a/community/SZ/example/CMakeLists.txt +++ b/community/SZ/example/CMakeLists.txt @@ -206,7 +206,7 @@ if (H5PL_BUILD_TESTING) # skip because SZ filter is for floating point and ints compression ratio could vary slightly #if (NOT DISABLE_H5SZ_ENCODER) # #UD SZ - # ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 -v -f UD=32017,1,5,2,7,20,40,0 -l CHUNK=4x8) + # ADD_H5_UD_TEST (ud_convert 0 h5repack_layout.h5 --enable-error-stack -v -f UD=32017,0,5,2,7,20,40,0 -l CHUNK=4x8) #endif () endif () diff --git a/config/CacheURLs.cmake b/config/CacheURLs.cmake index 4f24a4f25..4978263d3 100644 --- a/config/CacheURLs.cmake +++ b/config/CacheURLs.cmake @@ -41,11 +41,12 @@ set (BSHUF_PACKAGE_NAME "bshuf" CACHE STRING "Name of BSHUF package" FORCE) ############################# blosc ################################################ +set (HDF5_BLOSC_VERSION "1.21.6" CACHE INTERNAL "Version of Blosc to use when building from external source") set (BLOSC_GIT_URL "https://github.com/Blosc/c-blosc.git" CACHE STRING "Use BLOSC from Github repository" FORCE) set (BLOSC_GIT_BRANCH "main" CACHE STRING "" FORCE) set (BLOSC_TGZ_ORIGPATH "https://github.com/Blosc/c-blosc/archive/refs/tags" CACHE STRING "Use PLUGINS from original location" FORCE) -set (BLOSC_TGZ_NAME "c-blosc-1.21.6.tar.gz" CACHE STRING "Use BLOSC from compressed file" FORCE) +set (BLOSC_TGZ_NAME "c-blosc-${HDF5_BLOSC_VERSION}.tar.gz" CACHE STRING "Use BLOSC from compressed file" FORCE) set (BLOSC_PACKAGE_NAME "blosc" CACHE STRING "Name of BLOSC package" FORCE) @@ -59,13 +60,14 @@ set (BLOSC_ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of BLOSC_ZLIB package" FO ############################# blosc2 ################################################ +set (HDF5_BLOSC2_VERSION "2.17.1" CACHE INTERNAL "Version of Blosc2 to use when building from external source") set (BLOSC2_GIT_URL "https://github.com/Blosc/c-blosc2.git" CACHE STRING "Use BLOSC2 from Github repository" FORCE) set (BLOSC2_GIT_BRANCH "main" CACHE STRING "" FORCE) set (BLOSC2_TGZ_ORIGPATH "https://github.com/Blosc/c-blosc2/archive/refs/tags" CACHE STRING "Use PLUGINS from original location" FORCE) -set (BLOSC2_TGZ_NAME "c-blosc2-2.17.1.tar.gz" CACHE STRING "Use BLOSC2 from compressed file" FORCE) +set (BLOSC2_TGZ_NAME "c-blosc2-${HDF5_BLOSC2_VERSION}.tar.gz" CACHE STRING "Use BLOSC2 from compressed file" FORCE) -set (BLOSC2_PACKAGE_NAME "blosc2" CACHE STRING "Name of BLOSC2 package" FORCE) +set (BLOSC2_PACKAGE_NAME "Blosc2" CACHE STRING "Name of BLOSC2 package" FORCE) set (BLOSC2_ZLIB_GIT_URL "https://github.com/madler/zlib.git" CACHE STRING "Use ZLIB from GitHub repository" FORCE) set (BLOSC2_ZLIB_GIT_BRANCH "develop" CACHE STRING "" FORCE) @@ -138,10 +140,11 @@ set (ZFP_PACKAGE_NAME "zfp" CACHE STRING "Name of ZFP package" FORCE) ############################# zstd ################################################ -set (ZSTD_GIT_URL "https://github.com/facebook/zstd.git" CACHE STRING "Use ZSTD from GitHub repository" FORCE) +set (HDF5_ZSTD_VERSION "1.5.7" CACHE INTERNAL "Version of Zstd to use when building from external source") +set (ZSTD_GIT_URL "https://github.com/facebook/zstd.git" CACHE STRING "Use ZSTD from GitHub repository" FORCE) set (ZSTD_GIT_BRANCH "dev" CACHE STRING "" FORCE) -set (ZSTD_TGZ_ORIGPATH "https://github.com/facebook/zstd/releases/download/v1.5.7" CACHE STRING "Use PLUGINS from original location" FORCE) -set (ZSTD_TGZ_NAME "zstd-1.5.7.tar.gz" CACHE STRING "Use ZSTD from compressed file" FORCE) +set (ZSTD_TGZ_ORIGPATH "https://github.com/facebook/zstd/releases/download/v${HDF5_ZSTD_VERSION}" CACHE STRING "Use PLUGINS from original location" FORCE) +set (ZSTD_TGZ_NAME "zstd-${HDF5_ZSTD_VERSION}.tar.gz" CACHE STRING "Use ZSTD from compressed file" FORCE) set (ZSTD_PACKAGE_NAME "zstd" CACHE STRING "Name of ZSTD package" FORCE) diff --git a/config/cmake/HDFMacros.cmake b/config/cmake/HDFMacros.cmake index dfe3e51b6..60e69e7d0 100644 --- a/config/cmake/HDFMacros.cmake +++ b/config/cmake/HDFMacros.cmake @@ -461,7 +461,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/config/cmake/HDFPluginMacros.cmake b/config/cmake/HDFPluginMacros.cmake index 18442f396..207de025d 100644 --- a/config/cmake/HDFPluginMacros.cmake +++ b/config/cmake/HDFPluginMacros.cmake @@ -14,10 +14,10 @@ macro (BASIC_SETTINGS varname) string (TOUPPER ${varname} PLUGIN_PACKAGE_VARNAME) string (TOLOWER ${varname} PLUGIN_VARNAME) - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE "h5${PLUGIN_VARNAME}") - set (H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "h5${PLUGIN_VARNAME}") - string (TOUPPER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) - string (TOLOWER ${H5${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE "${PLUGIN_VARNAME}") + set (${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME "${PLUGIN_VARNAME}") + string (TOUPPER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_PACKAGE_NAME) + string (TOLOWER ${${PLUGIN_PACKAGE_VARNAME}_PACKAGE_NAME} PLUGIN_NAME) set (CMAKE_NO_SYSTEM_FROM_IMPORTED 1) #----------------------------------------------------------------------------- @@ -101,7 +101,7 @@ macro (BASIC_SETTINGS varname) if (NOT ${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR) set (${PLUGIN_PACKAGE_NAME}_INSTALL_DOC_DIR ${${PLUGIN_PACKAGE_NAME}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") + message(VERBOSE "Final: ${${PLUGIN_PACKAGE_NAME}_INSTALL_LIB_DIR}") #----------------------------------------------------------------------------- # Setup output Directories @@ -226,9 +226,10 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () + get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) + set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) set (H5PL_HDF5_LINK_LIBS ${H5PL_HDF5_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) - set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib) if (${link_hdf}) #plugin source needs to be linked with HDF5 set (H5PL_LINK_LIBS ${H5PL_LINK_LIBS} ${HDF5_C_SHARED_LIBRARY}) diff --git a/config/cmake/binex/config/cmake/HDFMacros.cmake b/config/cmake/binex/config/cmake/HDFMacros.cmake index d6eb18929..f6b6bff38 100644 --- a/config/cmake/binex/config/cmake/HDFMacros.cmake +++ b/config/cmake/binex/config/cmake/HDFMacros.cmake @@ -458,7 +458,7 @@ macro (HDF_DIR_PATHS package_prefix) if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) endif () - message(STATUS "Final: ${${package_prefix}_INSTALL_DOC_DIR}") + message(VERBOSE "Final: ${${package_prefix}_INSTALL_DOC_DIR}") # Always use full RPATH, i.e. don't skip the full RPATH for the build tree set (CMAKE_SKIP_BUILD_RPATH OFF) diff --git a/config/cmake/binex/config/cmake/HDFPluginMacros.cmake b/config/cmake/binex/config/cmake/HDFPluginMacros.cmake index 1f4036df1..9131edc5a 100644 --- a/config/cmake/binex/config/cmake/HDFPluginMacros.cmake +++ b/config/cmake/binex/config/cmake/HDFPluginMacros.cmake @@ -196,13 +196,6 @@ macro (HDF5_SUPPORT link_hdf) set (H5PL_HDF5_DUMP_EXECUTABLE $) set (H5PL_HDF5_REPACK_EXECUTABLE $) else () - if (HDF5_BUILD_MODE) - string (TOUPPER "_${HDF5_BUILD_MODE}" UPPER_BUILD_TYPE) - elseif (HDF_CFG_NAME) - string (TOUPPER "_${HDF_CFG_NAME}" UPPER_BUILD_TYPE) - else () - set (UPPER_BUILD_TYPE "") - endif () get_filename_component (_LIBRARY_PATH ${HDF5_INCLUDE_DIR} DIRECTORY) set (HDF5_LIBRARY_PATH "${_LIBRARY_PATH}/lib") if (USE_SHARED_LIBS AND HDF5_shared_C_FOUND) diff --git a/config/cmake/binex/config/cmake/runTest.cmake b/config/cmake/binex/config/cmake/runTest.cmake index aa9a74360..edf46a867 100644 --- a/config/cmake/binex/config/cmake/runTest.cmake +++ b/config/cmake/binex/config/cmake/runTest.cmake @@ -249,12 +249,22 @@ if (NOT TEST_SKIP_COMPARE) endif () math (EXPR _FP_LEN "${len_ref} - 1") foreach (line RANGE 0 ${_FP_LEN}) - list (GET test_act ${line} str_act) - list (GET test_ref ${line} str_ref) - if (NOT str_act STREQUAL str_ref) - if (str_act) - set (TEST_COMPARE_RESULT 1) - message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + if (line GREATER_EQUAL len_act) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}") + set (TEST_COMPARE_RESULT 1) + break () + elseif (line GREATER_EQUAL len_ref) + message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}") + set (TEST_COMPARE_RESULT 1) + break () + else () + list (GET test_act ${line} str_act) + list (GET test_ref ${line} str_ref) + if (NOT str_act STREQUAL str_ref) + if (str_act) + set (TEST_COMPARE_RESULT 1) + message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n") + endif () endif () endif () endforeach () diff --git a/config/cmake/cacheinit.cmake b/config/cmake/cacheinit.cmake index 098dc1f08..f52c5cc25 100644 --- a/config/cmake/cacheinit.cmake +++ b/config/cmake/cacheinit.cmake @@ -18,7 +18,6 @@ set (USE_SHARED_LIBS ON CACHE BOOL "Use Shared Libraries" FORCE) set (H5PL_BUILD_TESTING ON CACHE BOOL "Build h5pl Unit Testing" FORCE) -set (H5PL_H5PL_BUILD_TESTING ON CACHE BOOL "Enable h5pl examples" FORCE) set (H5PL_BUILD_EXAMPLES ON CACHE BOOL "Build h5pl Examples" FORCE) @@ -29,5 +28,4 @@ set (HDF5_NAMESPACE "hdf5::" CACHE STRING "Name space of HDF5 library" FORCE) set (H5PL_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO GIT TGZ)" FORCE) set_property (CACHE H5PL_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO GIT TGZ) -set (PL_PACKAGE_NAME "pl" CACHE STRING "Name of plugins package" FORCE) set (H5PL_CPACK_ENABLE ON CACHE BOOL "Enable the CPACK include and components" FORCE) diff --git a/docs/INSTALL_With_CMake.txt b/docs/INSTALL_With_CMake.txt index 22d99ffeb..f42724924 100644 --- a/docs/INSTALL_With_CMake.txt +++ b/docs/INSTALL_With_CMake.txt @@ -446,7 +446,7 @@ These five steps are described in detail below. set (BLOSC2_GIT_BRANCH "main" CACHE STRING "" FORCE) set (BLOSC2_TGZ_ORIGPATH "https://github.com/Blosc/c-blosc2/archive/refs/tags" CACHE STRING "Use PLUGINS from original location" FORCE) set (BLOSC2_TGZ_NAME "c-blosc2-2.17.1.tar.gz" CACHE STRING "Use BLOSC2 from compressed file" FORCE) - set (BLOSC2_PACKAGE_NAME "blosc2" CACHE STRING "Name of BLOSC2 package" FORCE) + set (BLOSC2_PACKAGE_NAME "Blosc2" CACHE STRING "Name of BLOSC2 package" FORCE) set (BLOSC2_ZLIB_GIT_URL "https://github.com/madler/zlib.git" CACHE STRING "Use ZLIB from GitHub repository" FORCE) set (BLOSC2_ZLIB_GIT_BRANCH "develop" CACHE STRING "" FORCE) set (BLOSC2_ZLIB_TGZ_ORIGPATH "https://github.com/madler/zlib/releases/download/v1.3.1" CACHE STRING "Use PLUGINS from original location" FORCE)