summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2023-05-21 03:50:57 (GMT)
committerGitHub <noreply@github.com>2023-05-21 03:50:57 (GMT)
commit4bb3cad3823c107dbc24479d9879fcd4adeab9f3 (patch)
treeb6dfa8c9225bc7d18bb68331d351dd1b655291ef
parentec4c67733fa55771edc8102a13adc2ab0b7522ad (diff)
downloadhdf5-4bb3cad3823c107dbc24479d9879fcd4adeab9f3.zip
hdf5-4bb3cad3823c107dbc24479d9879fcd4adeab9f3.tar.gz
hdf5-4bb3cad3823c107dbc24479d9879fcd4adeab9f3.tar.bz2
Add DT workflows and update windows preset (#2967)
* Add DT workflows and update windows preset * Stagger check time
-rw-r--r--.github/workflows/cmake-ctest.yml217
-rw-r--r--.github/workflows/daily-build.yml28
-rw-r--r--.github/workflows/tarball.yml105
-rw-r--r--CMakePresets.json253
-rw-r--r--config/cmake-presets/hidden-presets.json491
-rw-r--r--config/cmake/LIBAEC/CMakeLists.txt12
-rw-r--r--config/cmake/ZLIB/CMakeLists.txt18
-rw-r--r--config/toolchain/aarch64.cmake8
-rw-r--r--release_docs/INSTALL_CMake.txt101
-rw-r--r--release_docs/RELEASE.txt9
10 files changed, 1226 insertions, 16 deletions
diff --git a/.github/workflows/cmake-ctest.yml b/.github/workflows/cmake-ctest.yml
new file mode 100644
index 0000000..bb84130
--- /dev/null
+++ b/.github/workflows/cmake-ctest.yml
@@ -0,0 +1,217 @@
+name: hdf5 1.10 ctest runs
+
+# Controls when the action will run. Triggers the workflow on a schedule
+on:
+ workflow_call:
+ inputs:
+ file_base:
+ description: "The common base name of the source tarballs"
+ required: true
+ type: string
+
+# A workflow run is made up of one or more jobs that can run sequentially or
+# in parallel
+jobs:
+ build_and_test_win:
+ # Windows w/ MSVC + CMake
+ #
+ name: "Windows MSVC CTest"
+ runs-on: windows-latest
+ steps:
+ - name: Install Dependencies (Windows)
+ run: choco install ninja
+
+ - name: Enable Developer Command Prompt
+ uses: ilammy/msvc-dev-cmd@v1.12.1
+
+ - name: Set file base name (Windows)
+ id: set-file-base
+ run: |
+ FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
+ echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
+ shell: bash
+
+ # Get files created by release script
+ - name: Get zip-tarball (Windows)
+ uses: actions/download-artifact@v3
+ with:
+ name: zip-tarball
+ path: ${{ github.workspace }}
+
+ - name: using powershell
+ shell: pwsh
+ run: Get-Location
+
+ - name: List files for the space (Windows)
+ run: |
+ Get-ChildItem -Path ${{ github.workspace }}
+ Get-ChildItem -Path ${{ runner.workspace }}
+ shell: pwsh
+
+ - name: Uncompress source (Windows)
+ working-directory: ${{ github.workspace }}
+ run: 7z x ${{ steps.set-file-base.outputs.FILE_BASE }}.zip
+ shell: bash
+
+ - name: Run ctest (Windows)
+ run: |
+ cd "${{ runner.workspace }}/hdf5/hdfsrc"
+ cmake --workflow --preset=ci-StdShar-MSVC --fresh
+ shell: bash
+
+ - name: Publish binary (Windows)
+ id: publish-ctest-binary
+ run: |
+ mkdir "${{ runner.workspace }}/build"
+ mkdir "${{ runner.workspace }}/build/hdf5"
+ Copy-Item -Path ${{ runner.workspace }}/hdf5/hdfsrc/COPYING -Destination ${{ runner.workspace }}/build/hdf5/
+ Copy-Item -Path ${{ runner.workspace }}/hdf5/hdfsrc/COPYING_LBNL_HDF5 -Destination ${{ runner.workspace }}/build/hdf5/
+ Copy-Item -Path ${{ runner.workspace }}/hdf5/hdfsrc/README.md -Destination ${{ runner.workspace }}/build/hdf5/
+ Copy-Item -Path ${{ runner.workspace }}/hdf5/build/ci-StdShar-MSVC/* -Destination ${{ runner.workspace }}/build/hdf5/ -Include *.zip
+ cd "${{ runner.workspace }}/build"
+ 7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win_vs2022.zip hdf5
+ shell: pwsh
+
+ - name: List files in the space (Windows)
+ run: |
+ Get-ChildItem -Path ${{ github.workspace }}
+ Get-ChildItem -Path ${{ runner.workspace }}
+ shell: pwsh
+
+ # Save files created by ctest script
+ - name: Save published binary (Windows)
+ uses: actions/upload-artifact@v3
+ with:
+ name: zip-vs2022-binary
+ path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-win_vs2022.zip
+ if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
+
+ build_and_test_linux:
+ # Linux (Ubuntu) w/ gcc + CMake
+ #
+ name: "Ubuntu gcc CMake"
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install CMake Dependencies (Linux)
+ run: sudo apt-get install ninja-build
+
+ - name: Set file base name (Linux)
+ id: set-file-base
+ run: |
+ FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
+ echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
+
+ # Get files created by release script
+ - name: Get tgz-tarball (Linux)
+ uses: actions/download-artifact@v3
+ with:
+ name: tgz-tarball
+ path: ${{ github.workspace }}
+
+ - name: List files for the space (Linux)
+ run: |
+ ls ${{ github.workspace }}
+ ls ${{ runner.workspace }}
+
+ - name: Uncompress source (Linux)
+ run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz
+
+ - name: Run ctest (Linux)
+ run: |
+ cd "${{ runner.workspace }}/hdf5/hdfsrc"
+ cmake --workflow --preset=ci-StdShar-GNUC --fresh
+ shell: bash
+
+ - name: Publish binary (Linux)
+ id: publish-ctest-binary
+ run: |
+ mkdir "${{ runner.workspace }}/build"
+ mkdir "${{ runner.workspace }}/build/hdf5"
+ cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING ${{ runner.workspace }}/build/hdf5
+ cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING_LBNL_HDF5 ${{ runner.workspace }}/build/hdf5
+ cp ${{ runner.workspace }}/hdf5/hdfsrc/README.md ${{ runner.workspace }}/build/hdf5
+ cp ${{ runner.workspace }}/hdf5/build/ci-StdShar-GNUC/*.tar.gz ${{ runner.workspace }}/build/hdf5
+ cd "${{ runner.workspace }}/build"
+ tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204.tar.gz hdf5
+ shell: bash
+
+ - name: List files in the space (Linux)
+ run: |
+ ls ${{ github.workspace }}
+ ls ${{ runner.workspace }}
+
+ # Save files created by ctest script
+ - name: Save published binary (Linux)
+ uses: actions/upload-artifact@v3
+ with:
+ name: tgz-ubuntu-2204-binary
+ path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2204.tar.gz
+ if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
+
+ build_and_test_mac:
+ # MacOS w/ Clang + CMake
+ #
+ name: "MacOS Clang CMake"
+ runs-on: macos-11
+ steps:
+ - name: Install Dependencies (MacOS)
+ run: brew install ninja
+
+ - name: Set file base name (MacOS)
+ id: set-file-base
+ run: |
+ FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
+ echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
+
+ # Get files created by release script
+ - name: Get tgz-tarball (MacOS)
+ uses: actions/download-artifact@v3
+ with:
+ name: tgz-tarball
+ path: ${{ github.workspace }}
+
+ - name: List files for the space (MacOS)
+ run: |
+ ls ${{ github.workspace }}
+ ls ${{ runner.workspace }}
+
+ - name: Uncompress source (MacOS)
+ run: tar -zxvf ${{ github.workspace }}/${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz
+
+ # symlinks the compiler executables to a common location
+ - name: Setup GNU Fortran
+ uses: modflowpy/install-gfortran-action@v1
+
+ - name: Run ctest (MacOS)
+ id: run-ctest
+ run: |
+ cd "${{ runner.workspace }}/hdf5/hdfsrc"
+ cmake --workflow --preset=ci-StdShar-Clang --fresh
+ shell: bash
+
+ - name: Publish binary (MacOS)
+ id: publish-ctest-binary
+ run: |
+ mkdir "${{ runner.workspace }}/build"
+ mkdir "${{ runner.workspace }}/build/hdf5"
+ cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING ${{ runner.workspace }}/build/hdf5
+ cp ${{ runner.workspace }}/hdf5/hdfsrc/COPYING_LBNL_HDF5 ${{ runner.workspace }}/build/hdf5
+ cp ${{ runner.workspace }}/hdf5/hdfsrc/README.md ${{ runner.workspace }}/build/hdf5
+ cp ${{ runner.workspace }}/hdf5/build/ci-StdShar-Clang/*.tar.gz ${{ runner.workspace }}/build/hdf5
+ cd "${{ runner.workspace }}/build"
+ tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}-osx12.tar.gz hdf5
+ shell: bash
+
+ - name: List files in the space (MacOS)
+ run: |
+ ls ${{ github.workspace }}
+ ls ${{ runner.workspace }}
+
+ # Save files created by ctest script
+ - name: Save published binary (MacOS)
+ uses: actions/upload-artifact@v3
+ with:
+ name: tgz-osx12-binary
+ path: ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-osx12.tar.gz
+ if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
+
diff --git a/.github/workflows/daily-build.yml b/.github/workflows/daily-build.yml
new file mode 100644
index 0000000..87ea15a
--- /dev/null
+++ b/.github/workflows/daily-build.yml
@@ -0,0 +1,28 @@
+name: hdf5 1.10 daily build
+
+# Controls when the action will run. Triggers the workflow on a schedule
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: "10 0 * * *"
+
+# A workflow run is made up of one or more jobs that can run sequentially or
+# in parallel.
+jobs:
+ call-workflow-tarball:
+ uses: ./.github/workflows/tarball.yml
+
+ call-workflow-ctest:
+ needs: call-workflow-tarball
+ uses: ./.github/workflows/cmake-ctest.yml
+ with:
+ file_base: ${{ needs.call-workflow-tarball.outputs.file_base }}
+ if: ${{ needs.call-workflow-tarball.outputs.has_changes == 'true' }}
+
+ call-workflow-release:
+ needs: call-workflow-ctest
+ uses: ./.github/workflows/release.yml
+ with:
+ file_base: ${{ needs.call-workflow-tarball.outputs.file_base }}
+ if: ${{ needs.call-workflow-tarball.outputs.has_changes == 'true' }}
+
diff --git a/.github/workflows/tarball.yml b/.github/workflows/tarball.yml
new file mode 100644
index 0000000..235d95a
--- /dev/null
+++ b/.github/workflows/tarball.yml
@@ -0,0 +1,105 @@
+name: hdf5 1.10 tarball
+
+# Controls when the action will run. Triggers the workflow on a schedule
+on:
+ workflow_call:
+ outputs:
+ has_changes:
+ description: "Whether there were changes the previous day"
+ value: ${{ jobs.check_commits.outputs.has_changes }}
+ file_base:
+ description: "The common base name of the source tarballs"
+ value: ${{ jobs.create_tarball.outputs.file_base }}
+
+# A workflow run is made up of one or more jobs that can run sequentially or
+# in parallel
+jobs:
+ check_commits:
+ name: Check for recent commits
+ runs-on: ubuntu-latest
+ outputs:
+ has_changes: ${{ steps.check-new-commits.outputs.has-new-commits }}
+ branch_ref: ${{ steps.get-branch-name.outputs.BRANCH_REF }}
+ branch_sha: ${{ steps.get-branch-sha.outputs.BRANCH_SHA }}
+ steps:
+ - name: Get branch name
+ id: get-branch-name
+ env:
+ GITHUB_REF: ${{ github.ref }}
+ GITHUB_REF_NAME: ${{ github.ref_name }}
+ GITHUB_HEAD_REF: ${{ github.head_ref }}
+ #run: echo "${{ env.GITHUB_REF_NAME }} | grep -P '[0-9]+/merge' &> /dev/null && BRANCH_REF=${{ env.GITHUB_HEAD_REF }} || BRANCH_REF=${{ env.GITHUB_REF_NAME }}" >> $GITHUB_OUTPUT
+ run: echo "BRANCH_REF=${{ env.GITHUB_HEAD_REF || env.GITHUB_REF_NAME }}" >> $GITHUB_OUTPUT
+
+ - name: Get branch sha
+ id: get-branch-sha
+ env:
+ GITHUB_SHA: ${{ github.sha }}
+ GITHUB_WF_SHA: ${{ github.workflow_sha }}
+ run: |
+ SHORT_SHA=$(echo "${{ env.GITHUB_WF_SHA }}" | cut -c1-7)
+ echo "BRANCH_SHA=$SHORT_SHA" >> $GITHUB_OUTPUT
+
+ - name: Check for changed source
+ id: check-new-commits
+ uses: adriangl/check-new-commits-action@v1
+ with:
+ seconds: 86400 # One day in seconds
+ branch: '${{ steps.get-branch-name.outputs.branch_ref }}'
+
+ - run: echo "You have ${{ steps.check-new-commits.outputs.new-commits-number }} new commit(s) in ${{ steps.get-branch-name.outputs.BRANCH_REF }} ✅!"
+ if: ${{ steps.check-new-commits.outputs.has-new-commits == 'true' }}
+
+ - run: echo "Short commit sha is ${{ steps.get-branch-sha.outputs.BRANCH_SHA }}!"
+
+ create_tarball:
+ name: Create a source tarball
+ runs-on: ubuntu-latest
+ needs: check_commits
+ if: ${{ needs.check_commits.outputs.has_changes == 'true' }}
+ outputs:
+ file_base: ${{ steps.set-file-base.outputs.FILE_BASE }}
+ steps:
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - name: Get Sources
+ uses: actions/checkout@v3
+ with:
+ path: hdfsrc
+
+ - name: Install Autotools Dependencies (Linux, serial)
+ run: |
+ sudo apt update
+ sudo apt install automake autoconf libtool libtool-bin gzip dos2unix
+
+ - name: Set file base name
+ id: set-file-base
+ run: |
+ FILE_NAME_BASE=$(echo "hdf5-${{ needs.check_commits.outputs.branch_ref }}-${{ needs.check_commits.outputs.branch_sha }}")
+ echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
+
+ - name: Run release script
+ id: run-release-script
+ run: |
+ cd "$GITHUB_WORKSPACE/hdfsrc"
+ bin/bbrelease -d $GITHUB_WORKSPACE --branch ${{ needs.check_commits.outputs.branch_ref }} --revision gzip zip
+ shell: bash
+
+ - name: List files in the repository
+ run: |
+ ls ${{ github.workspace }}
+ ls $GITHUB_WORKSPACE
+
+ # Save files created by release script
+ - name: Save tgz-tarball
+ uses: actions/upload-artifact@v3
+ with:
+ name: tgz-tarball
+ path: ${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz
+ if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
+
+ - name: Save zip-tarball
+ uses: actions/upload-artifact@v3
+ with:
+ name: zip-tarball
+ path: ${{ steps.set-file-base.outputs.FILE_BASE }}.zip
+ if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
diff --git a/CMakePresets.json b/CMakePresets.json
new file mode 100644
index 0000000..66f31a4
--- /dev/null
+++ b/CMakePresets.json
@@ -0,0 +1,253 @@
+{
+ "version": 6,
+ "include": [
+ "config/cmake-presets/hidden-presets.json"
+ ],
+ "configurePresets": [
+ {
+ "name": "ci-base-tgz",
+ "hidden": true,
+ "inherits": "ci-base",
+ "cacheVariables": {
+ "HDF5_ALLOW_EXTERNAL_SUPPORT": "NO",
+ "TGZPATH": {"type": "STRING", "value": "${sourceParentDir}/temp"}
+ }
+ },
+ {
+ "name": "ci-StdCompression",
+ "hidden": true,
+ "inherits": "ci-base-tgz",
+ "cacheVariables": {
+ "HDF5_ENABLE_Z_LIB_SUPPORT": "ON",
+ "HDF5_ENABLE_SZIP_SUPPORT": "ON",
+ "HDF5_ENABLE_SZIP_ENCODING": "ON",
+ "BUILD_ZLIB_WITH_FETCHCONTENT": "ON",
+ "ZLIB_PACKAGE_NAME": {"type": "STRING", "value": "zlib"},
+ "ZLIB_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/madler/zlib/releases/download/v1.2.13"},
+ "ZLIB_TGZ_ORIGNAME": {"type": "STRING", "value": "zlib-1.2.13.tar.gz"},
+ "ZLIB_USE_LOCALCONTENT": "OFF",
+ "BUILD_SZIP_WITH_FETCHCONTENT": "ON",
+ "LIBAEC_PACKAGE_NAME": {"type": "STRING", "value": "libaec"},
+ "LIBAEC_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6"},
+ "LIBAEC_TGZ_ORIGNAME": {"type": "STRING", "value": "libaec-1.0.6.tar.gz"},
+ "LIBAEC_USE_LOCALCONTENT": "OFF"
+ }
+ },
+ {
+ "name": "ci-base-plugins",
+ "hidden": true,
+ "inherits": "ci-base-tgz",
+ "cacheVariables": {
+ "PLUGIN_TGZ_NAME": {"type": "STRING", "value": "hdf5_plugins-1.14.0.tar.gz"},
+ "PLUGIN_PACKAGE_NAME": {"type": "STRING", "value": "pl"},
+ "BSHUF_TGZ_NAME": {"type": "STRING", "value": "bitshuffle.tar.gz"},
+ "BSHUF_PACKAGE_NAME": {"type": "STRING", "value": "bshuf"},
+ "BLOSC_TGZ_NAME": {"type": "STRING", "value": "c-blosc.tar.gz"},
+ "BLOSC_PACKAGE_NAME": {"type": "STRING", "value": "blosc"},
+ "BLOSC_ZLIB_TGZ_NAME": {"type": "STRING", "value": "ZLib.tar.gz"},
+ "BLOSC_ZLIB_PACKAGE_NAME": {"type": "STRING", "value": "zlib"},
+ "BZ2_TGZ_NAME": {"type": "STRING", "value": "BZ2.tar.gz"},
+ "BZ2_PACKAGE_NAME": {"type": "STRING", "value": "bz2"},
+ "FPZIP_TGZ_NAME": {"type": "STRING", "value": "fpzip.tar.gz"},
+ "FPZIP_PACKAGE_NAME": {"type": "STRING", "value": "fpzip"},
+ "JPEG_TGZ_NAME": {"type": "STRING", "value": "JPEG.tar.gz"},
+ "JPEG_PACKAGE_NAME": {"type": "STRING", "value": "jpeg"},
+ "BUILD_LZ4_LIBRARY_SOURCE": "ON",
+ "LZ4_TGZ_NAME": {"type": "STRING", "value": "lz4.tar.gz"},
+ "LZ4_PACKAGE_NAME": {"type": "STRING", "value": "lz4"},
+ "LZF_TGZ_NAME": {"type": "STRING", "value": "lzf.tar.gz"},
+ "LZF_PACKAGE_NAME": {"type": "STRING", "value": "lzf"},
+ "SZ_TGZ_NAME": {"type": "STRING", "value": "szf.tar.gz"},
+ "SZ_PACKAGE_NAME": {"type": "STRING", "value": "SZ"},
+ "ZFP_TGZ_NAME": {"type": "STRING", "value": "zfp.tar.gz"},
+ "ZFP_PACKAGE_NAME": {"type": "STRING", "value": "zfp"},
+ "ZSTD_TGZ_NAME": {"type": "STRING", "value": "zstd.tar.gz"},
+ "ZSTD_PACKAGE_NAME": {"type": "STRING", "value": "zstd"}
+ }
+ },
+ {
+ "name": "ci-StdPlugins",
+ "hidden": true,
+ "inherits": ["ci-base-plugins", "ci-base-tgz"],
+ "cacheVariables": {
+ "HDF5_ENABLE_PLUGIN_SUPPORT": "ON",
+ "PLUGIN_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/HDFGroup/hdf5_plugins/archive/refs/tags"},
+ "PLUGIN_TGZ_ORIGNAME": {"type": "STRING", "value": "hdf5_plugins-1.14.0.tar.gz"}
+ }
+ },
+ {
+ "name": "ci-StdExamples",
+ "hidden": true,
+ "inherits": "ci-base",
+ "cacheVariables": {
+ "HDF5_PACK_EXAMPLES": "ON",
+ "HDF5_EXAMPLES_COMPRESSED": {"type": "STRING", "value": "hdf5-examples-2.0.3.tar.gz"},
+ "HDF5_EXAMPLES_COMPRESSED_DIR": {"type": "STRING", "value": "${sourceParentDir}/temp"},
+ "EXAMPLES_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/HDFGroup/hdf5-examples/archive/refs/tags/"},
+ "EXAMPLES_TGZ_ORIGNAME": {"type": "STRING", "value": "2.0.3.tar.gz"},
+ "EXAMPLES_DOWNLOAD": "ON"
+ }
+ },
+ {
+ "name": "ci-StdShar",
+ "hidden": true,
+ "inherits": "ci-StdCompression",
+ "cacheVariables": {
+ "HDF_PACKAGE_NAMESPACE": {"type": "STRING", "value": "hdf5::"},
+ "HDF5_INSTALL_MOD_FORTRAN": "NO",
+ "HDF5_BUILD_GENERATORS": "ON",
+ "HDF5_ENABLE_ALL_WARNINGS": "ON",
+ "HDF5_MINGW_STATIC_GCC_LIBS": "ON",
+ "HDF_TEST_EXPRESS": "2"
+ }
+ },
+ {
+ "name": "ci-StdShar-MSVC",
+ "description": "MSVC Standard Config for x64 (Release)",
+ "inherits": [
+ "ci-x64-Release-MSVC",
+ "ci-CPP",
+ "ci-Java",
+ "ci-StdShar",
+ "ci-StdExamples"
+ ]
+ },
+ {
+ "name": "ci-StdShar-MSVC-Fortran",
+ "description": "MSVC Standard Config for x64 (Release)",
+ "inherits": [
+ "ci-x64-Release-MSVC",
+ "ci-CPP",
+ "ci-Fortran",
+ "ci-Java",
+ "ci-StdShar",
+ "ci-StdExamples"
+ ]
+ },
+ {
+ "name": "ci-StdShar-Clang",
+ "description": "Clang Standard Config for x64 (Release)",
+ "inherits": [
+ "ci-x64-Release-Clang",
+ "ci-CPP",
+ "ci-Fortran",
+ "ci-Java",
+ "ci-StdShar",
+ "ci-StdExamples"
+ ]
+ },
+ {
+ "name": "ci-StdShar-GNUC",
+ "description": "GNUC Standard Config for x64 (Release)",
+ "inherits": [
+ "ci-x64-Release-GNUC",
+ "ci-CPP",
+ "ci-Fortran",
+ "ci-Java",
+ "ci-StdShar",
+ "ci-StdExamples"
+ ]
+ }
+ ],
+ "buildPresets": [
+ {
+ "name": "ci-StdShar-MSVC",
+ "description": "MSVC Standard Build for x64 (Release)",
+ "configurePreset": "ci-StdShar-MSVC",
+ "inherits": [
+ "ci-x64-Release-MSVC"
+ ]
+ },
+ {
+ "name": "ci-StdShar-Clang",
+ "description": "Clang Standard Build for x64 (Release)",
+ "configurePreset": "ci-StdShar-Clang",
+ "inherits": [
+ "ci-x64-Release-Clang"
+ ]
+ },
+ {
+ "name": "ci-StdShar-GNUC",
+ "description": "GNUC Standard Build for x64 (Release)",
+ "configurePreset": "ci-StdShar-GNUC",
+ "verbose": false,
+ "inherits": [
+ "ci-x64-Release-GNUC"
+ ]
+ }
+ ],
+ "testPresets": [
+ {
+ "name": "ci-StdShar-MSVC",
+ "configurePreset": "ci-StdShar-MSVC",
+ "inherits": [
+ "ci-x64-Release-MSVC"
+ ],
+ "filter": {
+ "exclude": {
+ "name": "H5DUMP-tfloatsattrs"
+ }
+ }
+ },
+ {
+ "name": "ci-StdShar-Clang",
+ "configurePreset": "ci-StdShar-Clang",
+ "inherits": [
+ "ci-x64-Release-Clang"
+ ]
+ },
+ {
+ "name": "ci-StdShar-GNUC",
+ "configurePreset": "ci-StdShar-GNUC",
+ "inherits": [
+ "ci-x64-Release-GNUC"
+ ]
+ }
+ ],
+ "packagePresets": [
+ {
+ "name": "ci-StdShar-MSVC",
+ "configurePreset": "ci-StdShar-MSVC",
+ "inherits": "ci-x64-Release-MSVC"
+ },
+ {
+ "name": "ci-StdShar-Clang",
+ "configurePreset": "ci-StdShar-Clang",
+ "inherits": "ci-x64-Release-Clang"
+ },
+ {
+ "name": "ci-StdShar-GNUC",
+ "configurePreset": "ci-StdShar-GNUC",
+ "inherits": "ci-x64-Release-GNUC"
+ }
+ ],
+ "workflowPresets": [
+ {
+ "name": "ci-StdShar-MSVC",
+ "steps": [
+ {"type": "configure", "name": "ci-StdShar-MSVC"},
+ {"type": "build", "name": "ci-StdShar-MSVC"},
+ {"type": "test", "name": "ci-StdShar-MSVC"},
+ {"type": "package", "name": "ci-StdShar-MSVC"}
+ ]
+ },
+ {
+ "name": "ci-StdShar-Clang",
+ "steps": [
+ {"type": "configure", "name": "ci-StdShar-Clang"},
+ {"type": "build", "name": "ci-StdShar-Clang"},
+ {"type": "test", "name": "ci-StdShar-Clang"},
+ {"type": "package", "name": "ci-StdShar-Clang"}
+ ]
+ },
+ {
+ "name": "ci-StdShar-GNUC",
+ "steps": [
+ {"type": "configure", "name": "ci-StdShar-GNUC"},
+ {"type": "build", "name": "ci-StdShar-GNUC"},
+ {"type": "test", "name": "ci-StdShar-GNUC"},
+ {"type": "package", "name": "ci-StdShar-GNUC"}
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/config/cmake-presets/hidden-presets.json b/config/cmake-presets/hidden-presets.json
new file mode 100644
index 0000000..c616e7d
--- /dev/null
+++ b/config/cmake-presets/hidden-presets.json
@@ -0,0 +1,491 @@
+{
+ "version": 6,
+ "configurePresets": [
+ {
+ "name": "ci-base",
+ "displayName": "Basic Config",
+ "description": "Basic build using Ninja generator",
+ "generator": "Ninja",
+ "hidden": true,
+ "binaryDir": "${sourceParentDir}/build/${presetName}",
+ "installDir": "${sourceParentDir}/install/${presetName}"
+ },
+ {
+ "name": "ci-x64",
+ "architecture": {
+ "value": "x64",
+ "strategy": "external"
+ },
+ "hidden": true
+ },
+ {
+ "name": "ci-x86",
+ "architecture": {
+ "value": "x86",
+ "strategy": "external"
+ },
+ "hidden": true
+ },
+ {
+ "name": "ci-Debug",
+ "cacheVariables": {
+ "CMAKE_BUILD_TYPE": "Debug"
+ },
+ "hidden": true
+ },
+ {
+ "name": "ci-Release",
+ "cacheVariables": {
+ "CMAKE_BUILD_TYPE": "RelWithDebInfo",
+ "HDF5_BUILD_DOC": "ON"
+ },
+ "hidden": true
+ },
+ {
+ "name": "ci-MSVC",
+ "hidden": true,
+ "cacheVariables": {
+ "CMAKE_C_COMPILER": "cl",
+ "CMAKE_CXX_COMPILER": "cl"
+ },
+ "toolset": {
+ "value": "host=x64",
+ "strategy": "external"
+ },
+ "condition": {
+ "type": "equals",
+ "lhs": "${hostSystemName}",
+ "rhs": "Windows"
+ }
+ },
+ {
+ "name": "ci-Clang",
+ "hidden": true,
+ "cacheVariables": {
+ "CMAKE_TOOLCHAIN_FILE": "config/toolchain/clang.cmake"
+ },
+ "toolset": {
+ "value": "host=x64",
+ "strategy": "external"
+ }
+ },
+ {
+ "name": "ci-GNUC",
+ "hidden": true,
+ "cacheVariables": {
+ "CMAKE_TOOLCHAIN_FILE": "config/toolchain/gcc.cmake"
+ },
+ "condition": {
+ "type": "equals",
+ "lhs": "${hostSystemName}",
+ "rhs": "Linux"
+ },
+ "toolset": {
+ "value": "host=x64",
+ "strategy": "external"
+ }
+ },
+ {
+ "name": "ci-Intel",
+ "hidden": true,
+ "cacheVariables": {
+ "CMAKE_TOOLCHAIN_FILE": "config/toolchain/intel.cmake"
+ },
+ "toolset": {
+ "value": "host=x64",
+ "strategy": "external"
+ }
+ },
+ {
+ "name": "ci-Fortran-Clang",
+ "hidden": true,
+ "cacheVariables": {
+ "CMAKE_Fortran_COMPILER": "gfortran"
+ },
+ "condition": {
+ "type": "matches",
+ "string": "${presetName}",
+ "regex": ".*-Clang"
+ }
+ },
+ {
+ "name": "ci-Fortran",
+ "hidden": true,
+ "inherits": "ci-Fortran-Clang",
+ "cacheVariables": {
+ "HDF5_BUILD_FORTRAN": "ON"
+ },
+ "toolset": {
+ "value": "host=x64",
+ "strategy": "external"
+ }
+ },
+ {
+ "name": "ci-CPP",
+ "hidden": true,
+ "cacheVariables": {
+ "HDF5_BUILD_CPP_LIB": "ON"
+ }
+ },
+ {
+ "name": "ci-Java",
+ "hidden": true,
+ "cacheVariables": {
+ "HDF5_BUILD_JAVA": "ON"
+ },
+ "toolset": {
+ "value": "host=x64",
+ "strategy": "external"
+ }
+ },
+ {
+ "name": "ci-x64-Debug-MSVC",
+ "description": "MSVC for x64 (Debug)",
+ "hidden": true,
+ "inherits": [
+ "ci-base",
+ "ci-x64",
+ "ci-Debug",
+ "ci-MSVC"
+ ]
+ },
+ {
+ "name": "ci-x64-Release-MSVC",
+ "description": "MSVC for x64 (Release)",
+ "hidden": true,
+ "inherits": [
+ "ci-base",
+ "ci-x64",
+ "ci-Release",
+ "ci-MSVC"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-Clang",
+ "description": "Clang/LLVM for x64 (Debug)",
+ "hidden": true,
+ "inherits": [
+ "ci-base",
+ "ci-x64",
+ "ci-Debug",
+ "ci-Clang"
+ ]
+ },
+ {
+ "name": "ci-x64-Release-Clang",
+ "description": "Clang/LLVM for x64 (Release)",
+ "hidden": true,
+ "inherits": [
+ "ci-base",
+ "ci-x64",
+ "ci-Release",
+ "ci-Clang"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-GNUC",
+ "description": "GNUC for x64 (Debug)",
+ "hidden": true,
+ "inherits": [
+ "ci-base",
+ "ci-x64",
+ "ci-Debug",
+ "ci-GNUC"
+ ]
+ },
+ {
+ "name": "ci-x64-Release-GNUC",
+ "description": "GNUC for x64 (Release)",
+ "hidden": true,
+ "inherits": [
+ "ci-base",
+ "ci-x64",
+ "ci-Release",
+ "ci-GNUC"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-MSVC-asan",
+ "description": "x64-Debug-MSVC with /fsanitize=address",
+ "hidden": true,
+ "inherits": "ci-x64-Debug-MSVC",
+ "cacheVariables": {
+ "USE_SANITIZER": "Address",
+ "HDF5_ENABLE_SANITIZERS": "ON"
+ }
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-asan",
+ "hidden": true,
+ "inherits": "ci-x64-Debug-GNUC",
+ "cacheVariables": {
+ "USE_SANITIZER": "Address",
+ "HDF5_ENABLE_SANITIZERS": "ON"
+ }
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-tsan",
+ "hidden": true,
+ "inherits": "ci-x64-Debug-GNUC",
+ "cacheVariables": {
+ "USE_SANITIZER": "Thread",
+ "HDF5_ENABLE_SANITIZERS": "ON"
+ }
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-lsan",
+ "hidden": true,
+ "inherits": "ci-x64-Debug-GNUC",
+ "cacheVariables": {
+ "USE_SANITIZER": "Leak",
+ "HDF5_ENABLE_SANITIZERS": "ON"
+ }
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-ubsan",
+ "hidden": true,
+ "inherits": "ci-x64-Debug-GNUC",
+ "cacheVariables": {
+ "USE_SANITIZER": "Undefined",
+ "HDF5_ENABLE_SANITIZERS": "ON"
+ }
+ }
+ ],
+ "buildPresets": [
+ {
+ "name": "ci-base",
+ "configurePreset": "ci-base",
+ "hidden": true,
+ "verbose": true,
+ "jobs": 8
+ },
+ {
+ "name": "ci-x64-Debug-MSVC",
+ "configurePreset": "ci-x64-Debug-MSVC",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Release-MSVC",
+ "configurePreset": "ci-x64-Release-MSVC",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-Clang",
+ "configurePreset": "ci-x64-Debug-Clang",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Release-Clang",
+ "configurePreset": "ci-x64-Release-Clang",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-GNUC",
+ "configurePreset": "ci-x64-Debug-GNUC",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Release-GNUC",
+ "configurePreset": "ci-x64-Release-GNUC",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-MSVC-asan",
+ "configurePreset": "ci-x64-Debug-MSVC-asan",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-asan",
+ "configurePreset": "ci-x64-Debug-GNUC-asan",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-tsan",
+ "configurePreset": "ci-x64-Debug-GNUC-tsan",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-lsan",
+ "configurePreset": "ci-x64-Debug-GNUC-lsan",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-ubsan",
+ "configurePreset": "ci-x64-Debug-GNUC-ubsan",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ }
+ ],
+ "testPresets": [
+ {
+ "name": "ci-base",
+ "configurePreset": "ci-base",
+ "output": {
+ "outputOnFailure": false,
+ "shortProgress": true,
+ "verbosity": "verbose"
+ },
+ "hidden": true,
+ "execution": {
+ "noTestsAction": "error",
+ "timeout": 180,
+ "jobs": 8
+ }
+ },
+ {
+ "name": "ci-x64-Debug-MSVC",
+ "configurePreset": "ci-x64-Debug-MSVC",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Release-MSVC",
+ "configurePreset": "ci-x64-Release-MSVC",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-Clang",
+ "configurePreset": "ci-x64-Debug-Clang",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Release-Clang",
+ "configurePreset": "ci-x64-Release-Clang",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-GNUC",
+ "configurePreset": "ci-x64-Debug-GNUC",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Release-GNUC",
+ "configurePreset": "ci-x64-Release-GNUC",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-MSVC-asan",
+ "configurePreset": "ci-x64-Debug-MSVC-asan",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-asan",
+ "configurePreset": "ci-x64-Debug-GNUC-asan",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-tsan",
+ "configurePreset": "ci-x64-Debug-GNUC-tsan",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-lsan",
+ "configurePreset": "ci-x64-Debug-GNUC-lsan",
+ "hidden": true,
+ "inherits": [
+ "ci-base"
+ ]
+ },
+ {
+ "name": "ci-x64-Debug-GNUC-ubsan",
+ "configurePreset": "ci-x64-Debug-GNUC-ubsan",
+ "inherits": [
+ "ci-base"
+ ]
+ }
+ ],
+ "packagePresets": [
+ {
+ "name": "ci-base",
+ "hidden": true,
+ "output": {
+ "verbose": true
+ }
+ },
+ {
+ "name": "ci-x64-Release-MSVC",
+ "configurePreset": "ci-x64-Release-MSVC",
+ "hidden": true,
+ "inherits": "ci-base",
+ "generators": [
+ "ZIP"
+ ]
+ },
+ {
+ "name": "ci-x64-Release-Clang",
+ "configurePreset": "ci-x64-Release-Clang",
+ "hidden": true,
+ "inherits": "ci-base",
+ "generators": [
+ "TGZ"
+ ]
+ },
+ {
+ "name": "ci-x64-Release-GNUC",
+ "configurePreset": "ci-x64-Release-GNUC",
+ "hidden": true,
+ "inherits": "ci-base",
+ "generators": [
+ "TGZ"
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/config/cmake/LIBAEC/CMakeLists.txt b/config/cmake/LIBAEC/CMakeLists.txt
index 212c9bf..fb650ec 100644
--- a/config/cmake/LIBAEC/CMakeLists.txt
+++ b/config/cmake/LIBAEC/CMakeLists.txt
@@ -369,6 +369,10 @@ if (WIN32)
find_program (WIX_EXECUTABLE candle PATHS "${CPACK_WIX_ROOT}/bin")
endif ()
+configure_file (${LIBAEC_SOURCE_DIR}/LICENSE.txt ${LIBAEC_BINARY_DIR}/LIBAEC_LICENSE.txt @ONLY)
+configure_file (${LIBAEC_SOURCE_DIR}/README.SZIP ${LIBAEC_BINARY_DIR}/LIBAEC_README.SZIP @ONLY)
+configure_file (${LIBAEC_SOURCE_DIR}/README.md ${LIBAEC_BINARY_DIR}/LIBAEC_README.md @ONLY)
+
#-----------------------------------------------------------------------------
# Set the cpack variables
#-----------------------------------------------------------------------------
@@ -383,9 +387,9 @@ if (NOT LIBAEC_EXTERNALLY_CONFIGURED)
set (CPACK_PACKAGE_VERSION_MAJOR "${LIBAEC_PACKAGE_VERSION_MAJOR}")
set (CPACK_PACKAGE_VERSION_MINOR "${LIBAEC_PACKAGE_VERSION_MINOR}")
set (CPACK_PACKAGE_VERSION_PATCH "")
- set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")
- set (CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.SZIP")
- set (CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
+ set (CPACK_RESOURCE_FILE_LICENSE "${LIBAEC_BINARY_DIR}/LIBAEC_LICENSE.txt")
+ set (CPACK_PACKAGE_DESCRIPTION_FILE "${LIBAEC_BINARY_DIR}/LIBAEC_README.SZIP")
+ set (CPACK_RESOURCE_FILE_README "${LIBAEC_BINARY_DIR}/LIBAEC_README.md")
set (CPACK_PACKAGE_RELOCATABLE TRUE)
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "libaec - Adaptive Entropy Coding library by Deutsches Klimarechenzentrum GmbH")
set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}")
@@ -419,7 +423,7 @@ if (NOT LIBAEC_EXTERNALLY_CONFIGURED)
endif ()
#WiX variables
set (CPACK_WIX_UNINSTALL "1")
- set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")
+ set (CPACK_RESOURCE_FILE_LICENSE "${LIBAEC_BINARY_DIR}/LIBAEC_LICENSE.txt")
elseif (APPLE)
list (APPEND CPACK_GENERATOR "STGZ")
list (APPEND CPACK_GENERATOR "DragNDrop")
diff --git a/config/cmake/ZLIB/CMakeLists.txt b/config/cmake/ZLIB/CMakeLists.txt
index c74ecea..5e42fb2 100644
--- a/config/cmake/ZLIB/CMakeLists.txt
+++ b/config/cmake/ZLIB/CMakeLists.txt
@@ -423,6 +423,16 @@ if (WIN32)
endif ()
#-----------------------------------------------------------------------------
+# Configure the LICENSE.txt file for the windows binary package
+#-----------------------------------------------------------------------------
+if (WIN32)
+ configure_file (${ZLIB_SOURCE_DIR}/LICENSE ${ZLIB_BINARY_DIR}/ZLIB_LICENSE.txt @ONLY)
+else ()
+ configure_file (${ZLIB_SOURCE_DIR}/LICENSE ${ZLIB_BINARY_DIR}/ZLIB_LICENSE @ONLY)
+endif ()
+configure_file (${ZLIB_SOURCE_DIR}/README ${ZLIB_BINARY_DIR}/ZLIB_README @ONLY)
+
+#-----------------------------------------------------------------------------
# Set the cpack variables
#-----------------------------------------------------------------------------
if (NOT ZLIB_EXTERNALLY_CONFIGURED)
@@ -436,9 +446,9 @@ if (NOT ZLIB_EXTERNALLY_CONFIGURED)
set (CPACK_PACKAGE_VERSION_MAJOR "${ZLIB_PACKAGE_VERSION_MAJOR}")
set (CPACK_PACKAGE_VERSION_MINOR "${ZLIB_PACKAGE_VERSION_MINOR}")
set (CPACK_PACKAGE_VERSION_PATCH "")
- set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/README")
- set (CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
- set (CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README")
+ set (CPACK_RESOURCE_FILE_LICENSE "${ZLIB_BINARY_DIR}/ZLIB_LICENSE")
+ set (CPACK_PACKAGE_DESCRIPTION_FILE "${ZLIB_BINARY_DIR}/ZLIB_README")
+ set (CPACK_RESOURCE_FILE_README "${ZLIB_BINARY_DIR}/ZLIB_README")
set (CPACK_PACKAGE_RELOCATABLE TRUE)
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "zlib Installation")
set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}")
@@ -472,7 +482,7 @@ if (NOT ZLIB_EXTERNALLY_CONFIGURED)
endif ()
#WiX variables
set (CPACK_WIX_UNINSTALL "1")
- set (CPACK_RESOURCE_FILE_LICENSE "${JPEG_BINARY_DIR}/README")
+ set (CPACK_RESOURCE_FILE_LICENSE "${ZLIB_BINARY_DIR}/ZLIB_LICENSE.txt")
elseif (APPLE)
list (APPEND CPACK_GENERATOR "STGZ")
list (APPEND CPACK_GENERATOR "DragNDrop")
diff --git a/config/toolchain/aarch64.cmake b/config/toolchain/aarch64.cmake
index 6996833..fd216a9 100644
--- a/config/toolchain/aarch64.cmake
+++ b/config/toolchain/aarch64.cmake
@@ -1,7 +1,7 @@
set(TOOLCHAIN_PREFIX aarch64-linux-gnu)
-set(ANDROID_NDK /opt/android-ndk-linux)
-set (CMAKE_SYSTEM_NAME Android)
-set (CMAKE_ANDROID_ARCH_ABI x86_64)
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR aarch64)
+#set (CMAKE_ANDROID_ARCH_ABI x86_64)
#set (CMAKE_ANDROID_STANDALONE_TOOLCHAIN ${ANDROID_NDK}/build/cmake/android.toolchain.cmake)
set (CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
set (CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
@@ -12,7 +12,7 @@ set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
-set (CMAKE_CROSSCOMPILING_EMULATOR qemu-aarch64)
+set(CMAKE_CROSSCOMPILING_EMULATOR "qemu-aarch64-static;-L;/usr/aarch64-linux-gnu/" CACHE FILEPATH "Path to the emulator for the target system.")
include_directories(/usr/${TOOLCHAIN_PREFIX}/include)
diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt
index 2208e5e..fa75527 100644
--- a/release_docs/INSTALL_CMake.txt
+++ b/release_docs/INSTALL_CMake.txt
@@ -14,6 +14,7 @@ Section VI: CMake option defaults for HDF5
Section VII: User Defined Options for HDF5 Libraries with CMake
Section VIII: User Defined Compile Flags for HDF5 Libraries with CMake
Section IX: Considerations for cross-compiling
+Section X: Using CMakePresets.json for compiling
************************************************************************
@@ -210,10 +211,10 @@ Notes: This short set of instructions is written for users who want to
5. Configure the C library, tools and tests with one of the following commands:
On Windows 32 bit
- cmake -G "Visual Studio 12 2013" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.10."X"
+ cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.10."X"
On Windows 64 bit
- cmake -G "Visual Studio 12 2013 Win64" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.10."X"
+ cmake -G "Visual Studio 16 2019 Win64" -A x64 -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.10."X"
On Linux and Mac
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ../hdf5-1.10."X"
@@ -616,7 +617,6 @@ These five steps are described in detail below.
set (ZFP_TGZ_NAME "zfp.tar.gz" CACHE STRING "Use ZFP from compressed file" FORCE)
set (ZFP_PACKAGE_NAME "zfp" CACHE STRING "Name of ZFP package" FORCE)
-
2. Configure the cache settings
2.1 Visual CMake users, click the Configure button. If this is the first time you are
@@ -639,7 +639,7 @@ These five steps are described in detail below.
2.2 Preferred command line example on Windows in c:\MyHDFstuff\hdf5\build directory:
- cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 12 2013" \
+ cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 16 2019" "-Ax64"\
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF \
-DCMAKE_BUILD_TYPE:STRING=Release ..
@@ -1021,6 +1021,99 @@ The HDF5 CMake variables;
HDF5_USE_PREGEN: set this to true
HDF5_USE_PREGEN_DIR: set this path to the preset H5Tinit.c file
+
+========================================================================
+X: Using CMakePresets.json for compiling
+========================================================================
+
+One problem that CMake users often face is sharing settings with other people for common
+ways to configure a project. This may be done to support CI builds, or for users who
+frequently use the same build. CMake supports two main files, CMakePresets.json and CMakeUserPresets.json,
+that allow users to specify common configure options and share them with others. CMake also supports
+files included with the include field.
+
+CMakePresets.json and CMakeUserPresets.json live in the project's root directory. They
+both have exactly the same format, and both are optional (though at least one must be
+present if --preset is specified). CMakePresets.json is meant to specify project-wide build
+details, while CMakeUserPresets.json is meant for developers to specify their own local build details.
+
+See CMake documentation for details: https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
+
+HDF-provided CMakePresets.json
+-------------------------------
+The CMakePresets.json provided by HDF requires CMake version 3.25, which supports package
+and workflow presets, and ninja build system. The top-level configuration group is intended to be
+a standard set of options to produce a package of shared and staic libraries and tools. Other configurations
+used for inheriting settings are in the included json file in "config/cmake-presets/hidden-presets.json".
+
+Available configurations presets can be displayed by executing:
+ cmake -S <path-to-source> --list-presets
+
+Using individual command presets (where <compiler-type> is GNUC or MSVC or Clang):
+ change directory to the hdf5 source folder
+ cmake --presets=ci-StdShar-<compiler-type>
+ cmake --build --presets=ci-StdShar-<compiler-type>
+ ctest --presets=ci-StdShar-<compiler-type>
+ cpack --presets=ci-StdShar-<compiler-type>
+
+
+Using the workflow preset to configure, build, test and package the standard configuration is:
+ change directory to the hdf5 source folder
+ execute "cmake --workflow --presets=ci-StdShar-<compiler-type> --fresh"
+ where <compiler-type> is GNUC or MSVC or Clang
+
+Creating your own configurations
+--------------------------------
+The quickest way is to copy CMakePresets.json to CMakeUserPresets.json and
+edit CMakeUserPresets.json configuration names from ci-* to my-*. Change the
+"configurePresets" section "inherits" field only for those that you have alternate
+options. Then change the "configurePreset" field entries in the "buildPresets",
+"testPresets", "packagePresets" sections to match your my-StdShar-<compiler-type>.
+And finally the names settings in the "workflowPresets" steps will also need the ci-* to my-* change.
+
+For instance, to change the support files to use a local directory, edit CMakeUserPresets.json:
+......
+ {
+ "name": "my-base-tgz",
+ "hidden": true,
+ "inherits": "ci-base",
+ "cacheVariables": {
+ "HDF5_ALLOW_EXTERNAL_SUPPORT": {"type": "STRING", "value": "TGZ"},
+ "TGZPATH": {"type": "STRING", "value": "${sourceParentDir}/temp"}
+ }
+ },
+ {
+ "name": "my-StdCompression",
+ "hidden": true,
+ "inherits": "my-base-tgz",
+ "cacheVariables": {
+......
+ {
+ "name": "my-StdShar",
+ "hidden": true,
+ "inherits": "my-StdCompression",
+ "cacheVariables": {
+......
+ {
+ "name": "my-StdShar-GNUC",
+ "description": "GNUC Standard Config for x64 (Release)",
+ "inherits": [
+ "ci-x64-Release-GNUC",
+ "ci-CPP",
+ "ci-Fortran",
+ "ci-Java",
+ "my-StdShar",
+ "my-StdExamples"
+ ]
+ }
+......
+
+
+Then you can change or add options for your specific case.
+
+
+
+
========================================================================
For further assistance, send email to help@hdfgroup.org
========================================================================
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 8cda997..63b75ed 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -49,6 +49,15 @@ New Features
Configuration:
-------------
+ - Added support for CMake presets file.
+
+ CMake supports two main files, CMakePresets.json and CMakeUserPresets.json,
+ that allow users to specify common configure options and share them with others.
+ HDF added a CMakePresets.json file of a typical configuration and support
+ file, config/cmake-presets/hidden-presets.json.
+ Also added a section to INSTALL_CMake.txt with very basic explanation of the
+ process to use CMakePresets.
+
- Enabled instrumentation of the library by default in CMake for parallel
debug builds