From 250d74c99e9be0da95047a2044b8fdb1e5360bb9 Mon Sep 17 00:00:00 2001 From: Allen Byrne <50328838+byrnHDF@users.noreply.github.com> Date: Tue, 3 Sep 2024 11:57:55 -0500 Subject: [PATCH] Add signing capability (#141) --- .github/workflows/cmake-ctest.yml | 137 ++++++++++++++++- .github/workflows/daily-build.yml | 3 + .github/workflows/release-files.yml | 43 +++++- .github/workflows/release.yml | 3 + .github/workflows/remove-files.yml | 3 + .github/workflows/tarball.yml | 1 + BLOSC/config/cmake/HDFMacros.cmake | 7 +- BLOSC/config/cmake/HDFPluginMacros.cmake | 5 + BLOSC/config/cmake/SignPackageFiles.cmake | 51 +++++++ BLOSC/config/cmake/distribution.entitlements | 16 ++ BLOSC/config/toolchain/aarch64.cmake | 10 +- BLOSC2/config/cmake/HDFMacros.cmake | 7 +- BLOSC2/config/cmake/HDFPluginMacros.cmake | 5 + BLOSC2/config/cmake/SignPackageFiles.cmake | 51 +++++++ BLOSC2/config/cmake/distribution.entitlements | 16 ++ BLOSC2/config/toolchain/aarch64.cmake | 10 +- BSHUF/config/cmake/HDFMacros.cmake | 7 +- BSHUF/config/cmake/HDFPluginMacros.cmake | 5 + BSHUF/config/cmake/SignPackageFiles.cmake | 51 +++++++ BSHUF/config/cmake/distribution.entitlements | 16 ++ BSHUF/config/toolchain/aarch64.cmake | 10 +- BZIP2/config/cmake/HDFMacros.cmake | 7 +- BZIP2/config/cmake/HDFPluginMacros.cmake | 5 + BZIP2/config/cmake/SignPackageFiles.cmake | 51 +++++++ BZIP2/config/cmake/distribution.entitlements | 16 ++ BZIP2/config/toolchain/aarch64.cmake | 10 +- CMakePresets.json | 69 ++++++++- JPEG/config/cmake/HDFMacros.cmake | 7 +- JPEG/config/cmake/HDFPluginMacros.cmake | 5 + JPEG/config/cmake/SignPackageFiles.cmake | 51 +++++++ JPEG/config/cmake/distribution.entitlements | 16 ++ JPEG/config/toolchain/aarch64.cmake | 10 +- LZ4/config/cmake/HDFMacros.cmake | 7 +- LZ4/config/cmake/HDFPluginMacros.cmake | 5 + LZ4/config/cmake/SignPackageFiles.cmake | 51 +++++++ LZ4/config/cmake/distribution.entitlements | 16 ++ LZ4/config/toolchain/aarch64.cmake | 10 +- LZF/config/cmake/HDFMacros.cmake | 7 +- LZF/config/cmake/HDFPluginMacros.cmake | 5 + LZF/config/cmake/SignPackageFiles.cmake | 51 +++++++ LZF/config/cmake/distribution.entitlements | 16 ++ LZF/config/toolchain/aarch64.cmake | 10 +- ZFP/config/cmake/HDFMacros.cmake | 7 +- ZFP/config/cmake/HDFPluginMacros.cmake | 5 + ZFP/config/cmake/SignPackageFiles.cmake | 51 +++++++ ZFP/config/cmake/distribution.entitlements | 16 ++ ZFP/config/toolchain/aarch64.cmake | 10 +- ZSTD/config/cmake/HDFMacros.cmake | 7 +- ZSTD/config/cmake/HDFPluginMacros.cmake | 7 +- ZSTD/config/cmake/SignPackageFiles.cmake | 51 +++++++ ZSTD/config/cmake/distribution.entitlements | 16 ++ ZSTD/config/toolchain/aarch64.cmake | 10 +- community/MAFISC/config/cmake/HDFMacros.cmake | 7 +- .../MAFISC/config/cmake/HDFPluginMacros.cmake | 5 + .../config/cmake/SignPackageFiles.cmake | 51 +++++++ .../config/cmake/distribution.entitlements | 16 ++ .../MAFISC/config/toolchain/aarch64.cmake | 10 +- community/SZ/config/cmake/HDFMacros.cmake | 7 +- .../SZ/config/cmake/HDFPluginMacros.cmake | 7 +- .../SZ/config/cmake/SignPackageFiles.cmake | 51 +++++++ .../SZ/config/cmake/distribution.entitlements | 16 ++ community/SZ/config/toolchain/aarch64.cmake | 10 +- config/cmake-presets/hidden-presets.json | 142 +++++++++++++----- config/cmake/HDFMacros.cmake | 7 +- config/cmake/HDFPluginMacros.cmake | 10 +- config/cmake/SignPackageFiles.cmake | 51 +++++++ config/cmake/distribution.entitlements | 16 ++ config/toolchain/aarch64.cmake | 8 +- 68 files changed, 1335 insertions(+), 141 deletions(-) create mode 100644 BLOSC/config/cmake/SignPackageFiles.cmake create mode 100644 BLOSC/config/cmake/distribution.entitlements create mode 100644 BLOSC2/config/cmake/SignPackageFiles.cmake create mode 100644 BLOSC2/config/cmake/distribution.entitlements create mode 100644 BSHUF/config/cmake/SignPackageFiles.cmake create mode 100644 BSHUF/config/cmake/distribution.entitlements create mode 100644 BZIP2/config/cmake/SignPackageFiles.cmake create mode 100644 BZIP2/config/cmake/distribution.entitlements create mode 100644 JPEG/config/cmake/SignPackageFiles.cmake create mode 100644 JPEG/config/cmake/distribution.entitlements create mode 100644 LZ4/config/cmake/SignPackageFiles.cmake create mode 100644 LZ4/config/cmake/distribution.entitlements create mode 100644 LZF/config/cmake/SignPackageFiles.cmake create mode 100644 LZF/config/cmake/distribution.entitlements create mode 100644 ZFP/config/cmake/SignPackageFiles.cmake create mode 100644 ZFP/config/cmake/distribution.entitlements create mode 100644 ZSTD/config/cmake/SignPackageFiles.cmake create mode 100644 ZSTD/config/cmake/distribution.entitlements create mode 100644 community/MAFISC/config/cmake/SignPackageFiles.cmake create mode 100644 community/MAFISC/config/cmake/distribution.entitlements create mode 100644 community/SZ/config/cmake/SignPackageFiles.cmake create mode 100644 community/SZ/config/cmake/distribution.entitlements create mode 100644 config/cmake/SignPackageFiles.cmake create mode 100644 config/cmake/distribution.entitlements diff --git a/.github/workflows/cmake-ctest.yml b/.github/workflows/cmake-ctest.yml index a15a7a9f..10485e74 100644 --- a/.github/workflows/cmake-ctest.yml +++ b/.github/workflows/cmake-ctest.yml @@ -27,6 +27,12 @@ on: required: true default: snapshots secrets: + APPLE_CERTS_BASE64: + required: true + APPLE_CERTS_BASE64_PASSWD: + required: true + KEYCHAIN_PASSWD: + required: true AZURE_TENANT_ID: required: true AZURE_CLIENT_ID: @@ -164,8 +170,27 @@ jobs: run: 7z x ${{ steps.set-file-base.outputs.FILE_BASE }}.zip shell: bash + - name: Install TrustedSigning (Windows) + run: | + Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe + .\nuget.exe install Microsoft.Windows.SDK.BuildTools -Version 10.0.22621.3233 -x + .\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.53 -x + shell: pwsh + if: ${{ needs.check-secret.outputs.sign-state == 'exists' }} + + - name: create-json + id: create-json + uses: jsdaniell/create-json@v1.2.3 + with: + name: "credentials.json" + dir: 'hdfsrc' + json: '{"Endpoint": "${{ secrets.AZURE_ENDPOINT }}","CodeSigningAccountName": "${{ secrets.AZURE_CODE_SIGNING_NAME }}","CertificateProfileName": "${{ secrets.AZURE_CERT_PROFILE_NAME }}"}' + if: ${{ needs.check-secret.outputs.sign-state == 'exists' }} + - name: Run ctest (Windows) env: + BINSIGN: ${{ needs.check-secret.outputs.sign-state }} + SIGNTOOLDIR: ${{ github.workspace }}/Microsoft.Windows.SDK.BuildTools/bin/10.0.22621.0/x64 HDF5_ROOT: ${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }} run: | cd "${{ runner.workspace }}/hdf5_plugins/${{ steps.set-file-base.outputs.SOURCE_BASE }}" @@ -394,6 +419,28 @@ jobs: - name: Install Dependencies (MacOS_latest) run: brew install ninja + - name: Install the Apple certificate and provisioning profile + shell: bash + env: + BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_CERTS_BASE64 }} + P12_PASSWORD: ${{ secrets.APPLE_CERTS_BASE64_PASSWD }} + KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }} + run: | + # create variables + CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 + KEYCHAIN_FILE=${{ vars.KEYCHAIN_NAME }}.keychain + # import certificate from secrets + echo $BUILD_CERTIFICATE_BASE64 | base64 --decode > $CERTIFICATE_PATH + security -v create-keychain -p $KEYCHAIN_PASSWD $KEYCHAIN_FILE + security -v list-keychain -d user -s $KEYCHAIN_FILE + security -v list-keychains + security -v set-keychain-settings -lut 21600 $KEYCHAIN_FILE + security -v unlock-keychain -p $KEYCHAIN_PASSWD $KEYCHAIN_FILE + # import certificate to keychain + security -v import $CERTIFICATE_PATH -P $P12_PASSWORD -A -t cert -f pkcs12 -k $KEYCHAIN_FILE + security -v set-key-partition-list -S apple-tool:,codesign:,apple: -k $KEYCHAIN_PASSWD $KEYCHAIN_FILE + if: ${{ needs.check-secret.outputs.sign-state == 'exists' }} + - name: Set file base name (MacOS_latest) id: set-file-base run: | @@ -465,11 +512,99 @@ jobs: - name: Run ctest (MacOS_latest) id: run-ctest env: + BINSIGN: ${{ needs.check-secret.outputs.sign-state }} + SIGNER: ${{ vars.SIGNER }} HDF5_ROOT: ${{ steps.set-hdf5lib-name.outputs.HDF5_ROOT }} run: | cd "${{ runner.workspace }}/hdf5_plugins/${{ steps.set-file-base.outputs.SOURCE_BASE }}" - cmake --workflow --preset=${{ inputs.preset_name }}-Clang --fresh + cmake --workflow --preset=${{ inputs.preset_name }}-macos-Clang --fresh + shell: bash + + - name: Sign dmg (MacOS_latest) + id: sign-dmg + env: + KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }} + KEYCHAIN_NAME: ${{ vars.KEYCHAIN_NAME }} + SIGNER: ${{ vars.SIGNER }} + NOTARY_USER: ${{ vars.NOTARY_USER }} + NOTARY_KEY: ${{ vars.NOTARY_KEY }} + run: | + /usr/bin/codesign --force --timestamp --options runtime --entitlements ${{ runner.workspace }}/hdf5_plugins/${{ steps.set-file-base.outputs.SOURCE_BASE }}/config/cmake/distribution.entitlements --verbose=4 --strict --sign ${{ env.SIGNER }} --deep ${{ runner.workspace }}/hdf4/build/${{ inputs.preset_name }}-macos-Clang/*.dmg + if: ${{ needs.check-secret.outputs.sign-state == 'exists' }} + shell: bash + + - name: Check dmg timestamp (MacOS_latest) + run: | + /usr/bin/codesign -dvv ${{ runner.workspace }}/hdf5_plugins/build/${{ inputs.preset_name }}-macos-Clang/*.dmg + if: ${{ needs.check-secret.outputs.sign-state == 'exists' }} + shell: bash + + - name: Verify dmg (MacOS_latest) + run: | + /usr/bin/hdiutil verify ${{ runner.workspace }}/hdf5_plugins/build/${{ inputs.preset_name }}-macos-Clang/*.dmg + if: ${{ needs.check-secret.outputs.sign-state == 'exists' }} + shell: bash + + - name: Notarize dmg (MacOS_latest) + id: notarize-dmg + env: + KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }} + KEYCHAIN_NAME: ${{ vars.KEYCHAIN_NAME }} + SIGNER: ${{ vars.SIGNER }} + NOTARY_USER: ${{ vars.NOTARY_USER }} + NOTARY_KEY: ${{ vars.NOTARY_KEY }} + run: | + jsonout=$(/usr/bin/xcrun notarytool submit --wait --output-format json --apple-id ${{ env.NOTARY_USER }} --password ${{ env.NOTARY_KEY }} --team-id ${{ env.SIGNER }} ${{ runner.workspace }}/hdf5_plugins/build/${{ inputs.preset_name }}-macos-Clang/*.dmg) + echo "JSONOUT=$jsonout" >> $GITHUB_OUTPUT + if: ${{ needs.check-secret.outputs.sign-state == 'exists' }} + shell: bash + + - name: Get ID token (MacOS_latest) + id: get-id-token + run: | + echo "notary result is ${{ fromJson(steps.notarize-dmg.outputs.JSONOUT) }}" + token=${{ fromJson(steps.notarize-dmg.outputs.JSONOUT).id }} + echo "ID_TOKEN=$token" >> "$GITHUB_OUTPUT" + if: ${{ needs.check-secret.outputs.sign-state == 'exists' }} + shell: bash + + - name: post notary check (MacOS_latest) + id: post-notary + env: + KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }} + KEYCHAIN_NAME: ${{ vars.KEYCHAIN_NAME }} + SIGNER: ${{ vars.SIGNER }} + NOTARY_USER: ${{ vars.NOTARY_USER }} + NOTARY_KEY: ${{ vars.NOTARY_KEY }} + run: | + { + echo 'NOTARYOUT<> $GITHUB_OUTPUT + if: ${{ needs.check-secret.outputs.sign-state == 'exists' }} + shell: bash + + - name: Get notary info (MacOS_latest) + id: get-notary-info + run: | + echo "notary info is ${{ steps.post-notary.outputs.NOTARYOUT }}." + if: ${{ needs.check-secret.outputs.sign-state == 'exists' }} + shell: bash + + - name: Staple dmg (MacOS_latest) + id: staple-dmg + env: + KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }} + KEYCHAIN_NAME: ${{ vars.KEYCHAIN_NAME }} + SIGNER: ${{ vars.SIGNER }} + NOTARY_USER: ${{ vars.NOTARY_USER }} + NOTARY_KEY: ${{ vars.NOTARY_KEY }} + run: | + /usr/bin/xcrun stapler staple ${{ runner.workspace }}/hdf5_plugins/build/${{ inputs.preset_name }}-macos-Clang/*.dmg + if: ${{ needs.check-secret.outputs.sign-state == 'exists' }} shell: bash + continue-on-error: true - name: Publish binary (MacOS_latest) id: publish-ctest-binary diff --git a/.github/workflows/daily-build.yml b/.github/workflows/daily-build.yml index 07f6dca2..700a66ad 100644 --- a/.github/workflows/daily-build.yml +++ b/.github/workflows/daily-build.yml @@ -76,6 +76,9 @@ jobs: # use_tag: snapshot use_environ: snapshots secrets: + APPLE_CERTS_BASE64: ${{ secrets.APPLE_CERTS_BASE64 }} + APPLE_CERTS_BASE64_PASSWD: ${{ secrets.APPLE_CERTS_BASE64_PASSWD }} + KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }} AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} diff --git a/.github/workflows/release-files.yml b/.github/workflows/release-files.yml index 9f51e1ff..e7e0f863 100644 --- a/.github/workflows/release-files.yml +++ b/.github/workflows/release-files.yml @@ -77,42 +77,60 @@ jobs: # Get files created by tarball script - name: Get tgz-tarball (Linux) - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 with: name: tgz-tarball path: ${{ github.workspace }} - name: Get zip-tarball (Windows) - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 with: name: zip-tarball path: ${{ github.workspace }} # Get files created by cmake-ctest script - name: Get published binary (Windows) - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 with: name: zip-vs2022_cl-binary path: ${{ github.workspace }} + - name: Get published msi binary (Windows) + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + with: + name: msi-vs2022_cl-binary + path: ${{ github.workspace }} + - name: Get published binary (MacOS) - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 with: name: tgz-macos14_clang-binary path: ${{ github.workspace }} - name: Get published dmg binary (MacOS) - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 with: name: tgz-macos14_clang-dmg-binary path: ${{ github.workspace }} - name: Get published binary (Linux) - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 with: name: tgz-ubuntu-2204_gcc-binary path: ${{ github.workspace }} + - name: Get published deb binary (Linux) + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + with: + name: deb-ubuntu-2204_gcc-binary + path: ${{ github.workspace }} + + - name: Get published rpm binary (Linux) + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + with: + name: rpm-ubuntu-2204_gcc-binary + path: ${{ github.workspace }} + - name: Create sha256 sums for files run: | sha256sum ${{ steps.get-file-base.outputs.FILE_BASE }}.tar.gz >> ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt @@ -120,7 +138,10 @@ jobs: sha256sum ${{ steps.get-file-base.outputs.FILE_BASE }}-macos14_clang.tar.gz >> ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt sha256sum ${{ steps.get-file-base.outputs.FILE_BASE }}-macos14_clang.dmg.tar.gz >> ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt sha256sum ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.tar.gz >> ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt + sha256sum ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.deb.tar.gz >> ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt + sha256sum ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.rpm.tar.gz >> ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt sha256sum ${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_cl.zip >> ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt + sha256sum ${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_cl.msi.zip >> ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt - name: Store snapshot name run: | @@ -129,7 +150,7 @@ jobs: - name: PreRelease tag id: create_prerelease if: ${{ (inputs.use_environ == 'snapshots') }} - uses: softprops/action-gh-release@a74c6b72af54cfa997e81df42d94703d6313a2d0 # v2.0.6 + uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 with: tag_name: "${{ inputs.use_tag }}" prerelease: true @@ -140,14 +161,17 @@ jobs: ${{ steps.get-file-base.outputs.FILE_BASE }}-macos14_clang.tar.gz ${{ steps.get-file-base.outputs.FILE_BASE }}-macos14_clang.dmg.tar.gz ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.tar.gz + ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.deb.tar.gz + ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.rpm.tar.gz ${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_cl.zip + ${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_cl.msi.zip ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` - name: Release tag id: create_release if: ${{ (inputs.use_environ == 'release') }} - uses: softprops/action-gh-release@a74c6b72af54cfa997e81df42d94703d6313a2d0 # v2.0.6 + uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8 with: tag_name: "${{ inputs.use_tag }}" prerelease: false @@ -157,7 +181,10 @@ jobs: ${{ steps.get-file-base.outputs.FILE_BASE }}-macos14_clang.tar.gz ${{ steps.get-file-base.outputs.FILE_BASE }}-macos14_clang.dmg.tar.gz ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.tar.gz + ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.deb.tar.gz + ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.rpm.tar.gz ${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_cl.zip + ${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_cl.msi.zip ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9599e8f6..6230b0ac 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,6 +51,9 @@ jobs: snap_name: hdf5_plugins-${{ needs.call-workflow-tarball.outputs.source_base }} use_environ: release secrets: + APPLE_CERTS_BASE64: ${{ secrets.APPLE_CERTS_BASE64 }} + APPLE_CERTS_BASE64_PASSWD: ${{ secrets.APPLE_CERTS_BASE64_PASSWD }} + KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }} AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} diff --git a/.github/workflows/remove-files.yml b/.github/workflows/remove-files.yml index edb12615..bc2b1634 100644 --- a/.github/workflows/remove-files.yml +++ b/.github/workflows/remove-files.yml @@ -50,6 +50,9 @@ jobs: ${{ steps.get-file-base.outputs.FILE_BASE }}-macos14_clang.tar.gz ${{ steps.get-file-base.outputs.FILE_BASE }}-macos14_clang.dmg.tar.gz ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.tar.gz + ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.deb.tar.gz + ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.rpm.tar.gz ${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_cl.zip + ${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_cl.msi.zip ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt \ No newline at end of file diff --git a/.github/workflows/tarball.yml b/.github/workflows/tarball.yml index b1bd091e..07e6ef17 100644 --- a/.github/workflows/tarball.yml +++ b/.github/workflows/tarball.yml @@ -88,6 +88,7 @@ jobs: uses: actions/checkout@v4.1.7 with: path: hdfsrc + ref: '${{needs.check_commits.outputs.branch_ref }}' - name: Retrieve version id: version diff --git a/BLOSC/config/cmake/HDFMacros.cmake b/BLOSC/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/BLOSC/config/cmake/HDFMacros.cmake +++ b/BLOSC/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/BLOSC/config/cmake/HDFPluginMacros.cmake b/BLOSC/config/cmake/HDFPluginMacros.cmake index 4e90e20d..dbb97ad7 100644 --- a/BLOSC/config/cmake/HDFPluginMacros.cmake +++ b/BLOSC/config/cmake/HDFPluginMacros.cmake @@ -421,6 +421,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/BLOSC/config/cmake/SignPackageFiles.cmake b/BLOSC/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/BLOSC/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/BLOSC/config/cmake/distribution.entitlements b/BLOSC/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/BLOSC/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/BLOSC/config/toolchain/aarch64.cmake b/BLOSC/config/toolchain/aarch64.cmake index 69968336..d061949e 100644 --- a/BLOSC/config/toolchain/aarch64.cmake +++ b/BLOSC/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 (TOOLCHAIN_PREFIX aarch64-linux-gnu) +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/BLOSC2/config/cmake/HDFMacros.cmake b/BLOSC2/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/BLOSC2/config/cmake/HDFMacros.cmake +++ b/BLOSC2/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/BLOSC2/config/cmake/HDFPluginMacros.cmake b/BLOSC2/config/cmake/HDFPluginMacros.cmake index 4e90e20d..dbb97ad7 100644 --- a/BLOSC2/config/cmake/HDFPluginMacros.cmake +++ b/BLOSC2/config/cmake/HDFPluginMacros.cmake @@ -421,6 +421,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/BLOSC2/config/cmake/SignPackageFiles.cmake b/BLOSC2/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/BLOSC2/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/BLOSC2/config/cmake/distribution.entitlements b/BLOSC2/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/BLOSC2/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/BLOSC2/config/toolchain/aarch64.cmake b/BLOSC2/config/toolchain/aarch64.cmake index 69968336..d061949e 100644 --- a/BLOSC2/config/toolchain/aarch64.cmake +++ b/BLOSC2/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 (TOOLCHAIN_PREFIX aarch64-linux-gnu) +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/BSHUF/config/cmake/HDFMacros.cmake b/BSHUF/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/BSHUF/config/cmake/HDFMacros.cmake +++ b/BSHUF/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/BSHUF/config/cmake/HDFPluginMacros.cmake b/BSHUF/config/cmake/HDFPluginMacros.cmake index 4e90e20d..dbb97ad7 100644 --- a/BSHUF/config/cmake/HDFPluginMacros.cmake +++ b/BSHUF/config/cmake/HDFPluginMacros.cmake @@ -421,6 +421,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/BSHUF/config/cmake/SignPackageFiles.cmake b/BSHUF/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/BSHUF/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/BSHUF/config/cmake/distribution.entitlements b/BSHUF/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/BSHUF/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/BSHUF/config/toolchain/aarch64.cmake b/BSHUF/config/toolchain/aarch64.cmake index 69968336..d061949e 100644 --- a/BSHUF/config/toolchain/aarch64.cmake +++ b/BSHUF/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 (TOOLCHAIN_PREFIX aarch64-linux-gnu) +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/BZIP2/config/cmake/HDFMacros.cmake b/BZIP2/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/BZIP2/config/cmake/HDFMacros.cmake +++ b/BZIP2/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/BZIP2/config/cmake/HDFPluginMacros.cmake b/BZIP2/config/cmake/HDFPluginMacros.cmake index 4e90e20d..dbb97ad7 100644 --- a/BZIP2/config/cmake/HDFPluginMacros.cmake +++ b/BZIP2/config/cmake/HDFPluginMacros.cmake @@ -421,6 +421,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/BZIP2/config/cmake/SignPackageFiles.cmake b/BZIP2/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/BZIP2/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/BZIP2/config/cmake/distribution.entitlements b/BZIP2/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/BZIP2/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/BZIP2/config/toolchain/aarch64.cmake b/BZIP2/config/toolchain/aarch64.cmake index 69968336..d061949e 100644 --- a/BZIP2/config/toolchain/aarch64.cmake +++ b/BZIP2/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 (TOOLCHAIN_PREFIX aarch64-linux-gnu) +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/CMakePresets.json b/CMakePresets.json index dcef0125..32b0b38e 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -94,10 +94,19 @@ ] }, { - "name": "ci-StdShar-Intel", - "description": "Intel Standard Config for x64 (Release)", + "name": "ci-StdShar-macos-Clang", + "description": "Clang Standard Config for macos (Release)", + "inherits": [ + "ci-macos-Release-Clang", + "ci-CPP", + "ci-StdShar" + ] + }, + { + "name": "ci-StdShar-macos-GNUC", + "description": "GNUC Standard Config for macos (Release)", "inherits": [ - "ci-x64-Release-Intel", + "ci-macos-Release-GNUC", "ci-CPP", "ci-StdShar" ] @@ -130,12 +139,20 @@ ] }, { - "name": "ci-StdShar-Intel", - "description": "Intel Standard Build for x64 (Release)", - "configurePreset": "ci-StdShar-Intel", + "name": "ci-StdShar-macos-Clang", + "description": "Clang Standard Build for macos (Release)", + "configurePreset": "ci-StdShar-macos-Clang", + "inherits": [ + "ci-macos-Release-Clang" + ] + }, + { + "name": "ci-StdShar-macos-GNUC", + "description": "GNUC Standard Build for macos (Release)", + "configurePreset": "ci-StdShar-macos-GNUC", "verbose": true, "inherits": [ - "ci-x64-Release-Intel" + "ci-macos-Release-GNUC" ] } ], @@ -154,6 +171,25 @@ "ci-x64-Release-Clang" ] }, + { + "name": "ci-StdShar-macos-Clang", + "configurePreset": "ci-StdShar-macos-Clang", + "inherits": [ + "ci-macos-Release-Clang" + ], + "execution": { + "noTestsAction": "error", + "timeout": 180, + "jobs": 2 + } + }, + { + "name": "ci-StdShar-macos-GNUC", + "configurePreset": "ci-StdShar-macos-GNUC", + "inherits": [ + "ci-macos-Release-GNUC" + ] + }, { "name": "ci-StdShar-GNUC", "configurePreset": "ci-StdShar-GNUC", @@ -180,6 +216,16 @@ "configurePreset": "ci-StdShar-Clang", "inherits": "ci-x64-Release-Clang" }, + { + "name": "ci-StdShar-macos-Clang", + "configurePreset": "ci-StdShar-macos-Clang", + "inherits": "ci-macos-Release-Clang" + }, + { + "name": "ci-StdShar-macos-GNUC", + "configurePreset": "ci-StdShar-macos-GNUC", + "inherits": "ci-macos-Release-GNUC" + }, { "name": "ci-StdShar-GNUC", "configurePreset": "ci-StdShar-GNUC", @@ -210,6 +256,15 @@ {"type": "package", "name": "ci-StdShar-Clang"} ] }, + { + "name": "ci-StdShar-macos-Clang", + "steps": [ + {"type": "configure", "name": "ci-StdShar-macos-Clang"}, + {"type": "build", "name": "ci-StdShar-macos-Clang"}, + {"type": "test", "name": "ci-StdShar-macos-Clang"}, + {"type": "package", "name": "ci-StdShar-macos-Clang"} + ] + }, { "name": "ci-StdShar-GNUC", "steps": [ diff --git a/JPEG/config/cmake/HDFMacros.cmake b/JPEG/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/JPEG/config/cmake/HDFMacros.cmake +++ b/JPEG/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/JPEG/config/cmake/HDFPluginMacros.cmake b/JPEG/config/cmake/HDFPluginMacros.cmake index 4e90e20d..dbb97ad7 100644 --- a/JPEG/config/cmake/HDFPluginMacros.cmake +++ b/JPEG/config/cmake/HDFPluginMacros.cmake @@ -421,6 +421,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/JPEG/config/cmake/SignPackageFiles.cmake b/JPEG/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/JPEG/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/JPEG/config/cmake/distribution.entitlements b/JPEG/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/JPEG/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/JPEG/config/toolchain/aarch64.cmake b/JPEG/config/toolchain/aarch64.cmake index 69968336..d061949e 100644 --- a/JPEG/config/toolchain/aarch64.cmake +++ b/JPEG/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 (TOOLCHAIN_PREFIX aarch64-linux-gnu) +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/LZ4/config/cmake/HDFMacros.cmake b/LZ4/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/LZ4/config/cmake/HDFMacros.cmake +++ b/LZ4/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/LZ4/config/cmake/HDFPluginMacros.cmake b/LZ4/config/cmake/HDFPluginMacros.cmake index 4e90e20d..dbb97ad7 100644 --- a/LZ4/config/cmake/HDFPluginMacros.cmake +++ b/LZ4/config/cmake/HDFPluginMacros.cmake @@ -421,6 +421,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/LZ4/config/cmake/SignPackageFiles.cmake b/LZ4/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/LZ4/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/LZ4/config/cmake/distribution.entitlements b/LZ4/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/LZ4/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/LZ4/config/toolchain/aarch64.cmake b/LZ4/config/toolchain/aarch64.cmake index 69968336..d061949e 100644 --- a/LZ4/config/toolchain/aarch64.cmake +++ b/LZ4/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 (TOOLCHAIN_PREFIX aarch64-linux-gnu) +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/LZF/config/cmake/HDFMacros.cmake b/LZF/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/LZF/config/cmake/HDFMacros.cmake +++ b/LZF/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/LZF/config/cmake/HDFPluginMacros.cmake b/LZF/config/cmake/HDFPluginMacros.cmake index 4e90e20d..dbb97ad7 100644 --- a/LZF/config/cmake/HDFPluginMacros.cmake +++ b/LZF/config/cmake/HDFPluginMacros.cmake @@ -421,6 +421,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/LZF/config/cmake/SignPackageFiles.cmake b/LZF/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/LZF/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/LZF/config/cmake/distribution.entitlements b/LZF/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/LZF/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/LZF/config/toolchain/aarch64.cmake b/LZF/config/toolchain/aarch64.cmake index 69968336..d061949e 100644 --- a/LZF/config/toolchain/aarch64.cmake +++ b/LZF/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 (TOOLCHAIN_PREFIX aarch64-linux-gnu) +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/ZFP/config/cmake/HDFMacros.cmake b/ZFP/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/ZFP/config/cmake/HDFMacros.cmake +++ b/ZFP/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/ZFP/config/cmake/HDFPluginMacros.cmake b/ZFP/config/cmake/HDFPluginMacros.cmake index 4e90e20d..dbb97ad7 100644 --- a/ZFP/config/cmake/HDFPluginMacros.cmake +++ b/ZFP/config/cmake/HDFPluginMacros.cmake @@ -421,6 +421,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/ZFP/config/cmake/SignPackageFiles.cmake b/ZFP/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/ZFP/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/ZFP/config/cmake/distribution.entitlements b/ZFP/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/ZFP/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/ZFP/config/toolchain/aarch64.cmake b/ZFP/config/toolchain/aarch64.cmake index 69968336..d061949e 100644 --- a/ZFP/config/toolchain/aarch64.cmake +++ b/ZFP/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 (TOOLCHAIN_PREFIX aarch64-linux-gnu) +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/ZSTD/config/cmake/HDFMacros.cmake b/ZSTD/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/ZSTD/config/cmake/HDFMacros.cmake +++ b/ZSTD/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/ZSTD/config/cmake/HDFPluginMacros.cmake b/ZSTD/config/cmake/HDFPluginMacros.cmake index 2cad1318..dbb97ad7 100644 --- a/ZSTD/config/cmake/HDFPluginMacros.cmake +++ b/ZSTD/config/cmake/HDFPluginMacros.cmake @@ -322,7 +322,7 @@ macro (INSTALL_SUPPORT varname) #----------------------------------------------------------------------------- # Configure the H5PL_Examples.cmake file and the examples #----------------------------------------------------------------------------- - if (${PLUGIN_PACKAGE_NAME}_H5PL_BUILD_TESTING) + if (${PLUGIN_PACKAGE_NAME}_BUILD_TESTING) configure_file ( ${${PLUGIN_PACKAGE_NAME}_RESOURCES_DIR}/H5PL_Examples.cmake.in ${${PLUGIN_PACKAGE_NAME}_BINARY_DIR}/H5PL_Examples.cmake @ONLY @@ -421,6 +421,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/ZSTD/config/cmake/SignPackageFiles.cmake b/ZSTD/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/ZSTD/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/ZSTD/config/cmake/distribution.entitlements b/ZSTD/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/ZSTD/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/ZSTD/config/toolchain/aarch64.cmake b/ZSTD/config/toolchain/aarch64.cmake index 69968336..d061949e 100644 --- a/ZSTD/config/toolchain/aarch64.cmake +++ b/ZSTD/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 (TOOLCHAIN_PREFIX aarch64-linux-gnu) +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/community/MAFISC/config/cmake/HDFMacros.cmake b/community/MAFISC/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/community/MAFISC/config/cmake/HDFMacros.cmake +++ b/community/MAFISC/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/community/MAFISC/config/cmake/HDFPluginMacros.cmake b/community/MAFISC/config/cmake/HDFPluginMacros.cmake index 4e90e20d..dbb97ad7 100644 --- a/community/MAFISC/config/cmake/HDFPluginMacros.cmake +++ b/community/MAFISC/config/cmake/HDFPluginMacros.cmake @@ -421,6 +421,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/community/MAFISC/config/cmake/SignPackageFiles.cmake b/community/MAFISC/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/community/MAFISC/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/community/MAFISC/config/cmake/distribution.entitlements b/community/MAFISC/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/community/MAFISC/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/community/MAFISC/config/toolchain/aarch64.cmake b/community/MAFISC/config/toolchain/aarch64.cmake index 69968336..d061949e 100644 --- a/community/MAFISC/config/toolchain/aarch64.cmake +++ b/community/MAFISC/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 (TOOLCHAIN_PREFIX aarch64-linux-gnu) +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/community/SZ/config/cmake/HDFMacros.cmake b/community/SZ/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/community/SZ/config/cmake/HDFMacros.cmake +++ b/community/SZ/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/community/SZ/config/cmake/HDFPluginMacros.cmake b/community/SZ/config/cmake/HDFPluginMacros.cmake index 2cad1318..dbb97ad7 100644 --- a/community/SZ/config/cmake/HDFPluginMacros.cmake +++ b/community/SZ/config/cmake/HDFPluginMacros.cmake @@ -322,7 +322,7 @@ macro (INSTALL_SUPPORT varname) #----------------------------------------------------------------------------- # Configure the H5PL_Examples.cmake file and the examples #----------------------------------------------------------------------------- - if (${PLUGIN_PACKAGE_NAME}_H5PL_BUILD_TESTING) + if (${PLUGIN_PACKAGE_NAME}_BUILD_TESTING) configure_file ( ${${PLUGIN_PACKAGE_NAME}_RESOURCES_DIR}/H5PL_Examples.cmake.in ${${PLUGIN_PACKAGE_NAME}_BINARY_DIR}/H5PL_Examples.cmake @ONLY @@ -421,6 +421,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/community/SZ/config/cmake/SignPackageFiles.cmake b/community/SZ/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/community/SZ/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/community/SZ/config/cmake/distribution.entitlements b/community/SZ/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/community/SZ/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/community/SZ/config/toolchain/aarch64.cmake b/community/SZ/config/toolchain/aarch64.cmake index 69968336..d061949e 100644 --- a/community/SZ/config/toolchain/aarch64.cmake +++ b/community/SZ/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 (TOOLCHAIN_PREFIX aarch64-linux-gnu) +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/config/cmake-presets/hidden-presets.json b/config/cmake-presets/hidden-presets.json index 944e2241..fb85672e 100644 --- a/config/cmake-presets/hidden-presets.json +++ b/config/cmake-presets/hidden-presets.json @@ -10,7 +10,7 @@ "binaryDir": "${sourceParentDir}/build/${presetName}", "installDir": "${sourceParentDir}/install/${presetName}" }, - { + { "name": "ci-x64", "architecture": { "value": "x64", @@ -21,7 +21,15 @@ { "name": "ci-x86", "architecture": { - "value": "x86", + "value": "Win32", + "strategy": "external" + }, + "hidden": true + }, + { + "name": "ci-arm64", + "architecture": { + "value": "ARM64", "strategy": "external" }, "hidden": true @@ -47,25 +55,29 @@ "CMAKE_C_COMPILER": "cl", "CMAKE_CXX_COMPILER": "cl" }, - "toolset": { - "value": "host=x64", - "strategy": "external" - }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, + { + "name": "ci-macos", + "hidden": true, + "cacheVariables": { + "CMAKE_OSX_ARCHITECTURES": "arm64;x86_64" + }, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Darwin" + } + }, { "name": "ci-Clang", "hidden": true, "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "config/toolchain/clang.cmake" - }, - "toolset": { - "value": "host=x64", - "strategy": "external" } }, { @@ -78,10 +90,6 @@ "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" - }, - "toolset": { - "value": "host=x64", - "strategy": "external" } }, { @@ -166,25 +174,47 @@ ] }, { - "name": "ci-x64-Debug-Intel", - "description": "Intel for x64 (Debug)", + "name": "ci-macos-Debug-Clang", + "description": "Clang/LLVM for x64 (Debug)", "hidden": true, "inherits": [ "ci-base", - "ci-x64", + "ci-macos", "ci-Debug", - "ci-Intel" + "ci-Clang" ] }, { - "name": "ci-x64-Release-Intel", - "description": "Intel for x64 (Release)", + "name": "ci-macos-Release-Clang", + "description": "Clang/LLVM for x64 (Release)", "hidden": true, "inherits": [ "ci-base", - "ci-x64", + "ci-macos", "ci-Release", - "ci-Intel" + "ci-Clang" + ] + }, + { + "name": "ci-macos-Debug-GNUC", + "description": "GNUC for x64 (Debug)", + "hidden": true, + "inherits": [ + "ci-base", + "ci-macos", + "ci-Debug", + "ci-GNUC" + ] + }, + { + "name": "ci-macos-Release-GNUC", + "description": "GNUC for x64 (Release)", + "hidden": true, + "inherits": [ + "ci-base", + "ci-macos", + "ci-Release", + "ci-GNUC" ] } ], @@ -247,22 +277,36 @@ ] }, { - "name": "ci-x64-Debug-Intel", - "configurePreset": "ci-x64-Debug-Intel", + "name": "ci-macos-Debug-Clang", + "configurePreset": "ci-macos-Debug-Clang", "hidden": true, "inherits": [ "ci-base" - ], - "configuration": "Debug" + ] }, { - "name": "ci-x64-Release-Intel", - "configurePreset": "ci-x64-Release-Intel", + "name": "ci-macos-Release-Clang", + "configurePreset": "ci-macos-Release-Clang", "hidden": true, "inherits": [ - "ci-base" - ], - "configuration": "RelWithDebInfo" + "ci-base" + ] + }, + { + "name": "ci-macos-Debug-GNUC", + "configurePreset": "ci-macos-Debug-GNUC", + "hidden": true, + "inherits": [ + "ci-base" + ] + }, + { + "name": "ci-macos-Release-GNUC", + "configurePreset": "ci-macos-Release-GNUC", + "hidden": true, + "inherits": [ + "ci-base" + ] } ], "testPresets": [ @@ -332,16 +376,32 @@ ] }, { - "name": "ci-x64-Debug-Intel", - "configurePreset": "ci-x64-Debug-Intel", + "name": "ci-macos-Debug-Clang", + "configurePreset": "ci-macos-Debug-Clang", + "hidden": true, + "inherits": [ + "ci-base" + ] + }, + { + "name": "ci-macos-Release-Clang", + "configurePreset": "ci-macos-Release-Clang", "hidden": true, "inherits": [ "ci-base" ] }, { - "name": "ci-x64-Release-Intel", - "configurePreset": "ci-x64-Release-Intel", + "name": "ci-macos-Debug-GNUC", + "configurePreset": "ci-macos-Debug-GNUC", + "hidden": true, + "inherits": [ + "ci-base" + ] + }, + { + "name": "ci-macos-Release-GNUC", + "configurePreset": "ci-macos-Release-GNUC", "hidden": true, "inherits": [ "ci-base" @@ -376,10 +436,16 @@ "inherits": "ci-base" }, { - "name": "ci-x64-Release-Intel", - "configurePreset": "ci-x64-Release-Intel", + "name": "ci-macos-Release-Clang", + "configurePreset": "ci-macos-Release-Clang", + "hidden": true, + "inherits": "ci-base" + }, + { + "name": "ci-macos-Release-GNUC", + "configurePreset": "ci-macos-Release-GNUC", "hidden": true, "inherits": "ci-base" } ] -} \ No newline at end of file +} diff --git a/config/cmake/HDFMacros.cmake b/config/cmake/HDFMacros.cmake index 09db2daf..d3b65099 100644 --- a/config/cmake/HDFMacros.cmake +++ b/config/cmake/HDFMacros.cmake @@ -301,6 +301,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) if (WIN32) set (BINARY_EXAMPLE_ENDING "zip") set (BINARY_INSTALL_ENDING "msi") + set (BINARY_COMPRESS_ENDING "zip") if (CMAKE_CL_64) set (BINARY_SYSTEM_NAME "win64") else () @@ -346,7 +347,7 @@ macro (PLUGIN_README_PROPERTIES pkg_name) elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "^19.4.*") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2022") else () - set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ???") + set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ????") endif () else () set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}") @@ -354,12 +355,14 @@ macro (PLUGIN_README_PROPERTIES pkg_name) endif () elseif (APPLE) set (BINARY_EXAMPLE_ENDING "tar.gz") + set (BINARY_COMPRESS_ENDING "tar.gz") set (BINARY_INSTALL_ENDING "sh") # if packaging changes - use dmg set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") else () set (BINARY_EXAMPLE_ENDING "tar.gz") - set (BINARY_INSTALL_ENDING "sh") + set (BINARY_COMPRESS_ENDING "tar.gz") + set (BINARY_INSTALL_ENDING "sh/deb/rpm") set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}") set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}") endif () diff --git a/config/cmake/HDFPluginMacros.cmake b/config/cmake/HDFPluginMacros.cmake index 9b6d906f..ff045cf6 100644 --- a/config/cmake/HDFPluginMacros.cmake +++ b/config/cmake/HDFPluginMacros.cmake @@ -263,8 +263,9 @@ macro (HDF5_SUPPORT link_hdf) # Determine if a threading package is available on this system if (HDF5_ENABLE_THREADS) find_package (Threads) - else () - message (FATAL_ERROR " **** thread support requires C11 threads, Win32 threads or Pthreads **** ") + if (NOT Threads_FOUND) + message (FATAL_ERROR " **** thread support requires C11 threads, Win32 threads or Pthreads **** ") + endif () endif () else () find_package (HDF5) # Legacy find @@ -427,6 +428,11 @@ macro (INSTALL_SUPPORT varname) set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}") endif () + set (CPACK_EXPORT_LIBRARIES ${${PLUGIN_PACKAGE_NAME}_LIBRARIES_TO_EXPORT}) + if ("$ENV{BINSIGN}" STREQUAL "exists") + set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/cmake/SignPackageFiles.cmake) + endif () + set (CPACK_GENERATOR "TGZ") if (WIN32) set (CPACK_GENERATOR "ZIP") diff --git a/config/cmake/SignPackageFiles.cmake b/config/cmake/SignPackageFiles.cmake new file mode 100644 index 00000000..1f4f868b --- /dev/null +++ b/config/cmake/SignPackageFiles.cmake @@ -0,0 +1,51 @@ +# This script signs the targets for the package +message(STATUS "Signing script for ${CPACK_EXPORT_LIBRARIES} and ${CPACK_EXPORT_UTILS}") +foreach (target "${CPACK_EXPORT_LIBRARIES}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib) + message(STATUS "Signing the target ${target} using ${target_path}") + endif () +endforeach () + +foreach (target "${CPACK_EXPORT_UTILS}") + if (WIN32) + # Sign the targets + execute_process(COMMAND $ENV{SIGNTOOLDIR}/signtool + sign /v /debug /fd SHA256 /tr http://timestamp.acs.microsoft.com /td SHA256 + /dlib "Microsoft.Trusted.Signing.Client/bin/x64/Azure.CodeSigning.Dlib.dll" /dmdf ${CMAKE_CURRENT_SOURCE_DIR}/credentials.json + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + elseif (APPLE) + # Sign the targets + execute_process(COMMAND codesign + --force --timestamp --options runtime --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/config/cmake/distribution.entitlements + --verbose=4 --strict --sign "$ENV{SIGNER}" + $ + WORKING_DIRECTORY ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin + ) + message(STATUS "Signing the target ${target}") + else () + set (target_path ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/ALL_COMPONENTS_IN_ONE/${CPACK_PACKAGE_INSTALL_DIRECTORY}/bin) + message(DEBUG "Signing the target ${target} using ${target_path}") + endif () +endforeach () diff --git a/config/cmake/distribution.entitlements b/config/cmake/distribution.entitlements new file mode 100644 index 00000000..0e0df6c7 --- /dev/null +++ b/config/cmake/distribution.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/config/toolchain/aarch64.cmake b/config/toolchain/aarch64.cmake index 69968336..fd216a99 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)