mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-02-23 16:20:57 +08:00
Sync develop changes May 20 - June 6 to hdf5_1_14 (#4553)
* Fix daily-build CI and correct use of *_FOUND settings for filters (#4504) * Correct examples tests to just run under dynamic analysis (#4505) * Remove trailing extra whitespace in hyperlink (#4509) * Set H5 specific vars immediately if legacy find (#4512) * Set H5 specific vars immediately if legacy find * Correct find process vars (vs in-line build) * Correct SZIP find * Everything is libaec 1.0.6 or newer * Correct option help text * Don't update 'pos' and 'op' fields when using pread/pwrite (#4492) Instead of reading the absolute minimal possible, use the likely value of a v2+ superblock w/8-byte addresses & lengths. * Fix spelling (#4522) * Fix typo in DAPL callback documentation (#4523) * Move/rename libhdf5.settings input files (#4525) Move without other changes: src/libhdf5.settings.in -> src/libhdf5.settings.autotools.in config/cmake/libhdf5.settings.cmake.in -> src/libhdf5.settings.cmake.in * Disable UNITY_BUILD for now - globally (#4515) * Fix function name in USAGE for H5Pencode2() (#4519) * Allow HDF5_LIB_INFIX to work with DLL (#4500) * Allow HDF5_LIB_INFIX to work with DLL * Separate individual library name into parts and add suffix option * Java cannot use alternative names and removed extra setting * Incorporate the underscore into the CORE name * Fix typos in property callback documentation (#4532) * Fix wrong int type as some systems have int as 64-bit wide (#4534) * H5FDquery return value (#4530) * Switch H5FDquery() return values to use library's FAIL / SUCCEED macros * Update return value also * Refactor to reduce code duplication (#4531) * Update error output w/new routine name * Fix a few function names in USAGE comments that don't match the actual (#4533) * Fix a few function names in USAGE comments that don't match the actual function names. * Remove typo '[' * Switch to working url for api-compatibility-macros.html. * Remove julia CI actions (#4540) These have been failing for a week or two for unclear reasons, both in the Autotools and CMake. No obvious library changes triggered this. See GitHub issue #4539 for more info/discussion The Julia tests will be disabled until the root cause is found. * Bump the github-actions group with 3 updates (#4538) Bumps the github-actions group with 3 updates: [softprops/action-gh-release](https://github.com/softprops/action-gh-release), [ossf/scorecard-action](https://github.com/ossf/scorecard-action) and [github/codeql-action](https://github.com/github/codeql-action). Updates `softprops/action-gh-release` from 2.0.4 to 2.0.5 - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](9d7c94cfd0...69320dbe05
) Updates `ossf/scorecard-action` from 2.3.1 to 2.3.3 - [Release notes](https://github.com/ossf/scorecard-action/releases) - [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md) - [Commits](0864cf1902...dc50aa9510
) Updates `github/codeql-action` from 3.25.3 to 3.25.7 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](d39d31e687...f079b84933
) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: ossf/scorecard-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix various mistakes in doxygen docs (#4541) * Fix a dead link and example file names * Add the missing content of a section * Export HDF5 parallel status for CMake FetchContent'ed VOL connectors (#4542) * Remove an unnecessary check for parallel and thread-safety from examples (#4543) * Add option to use zlib-ng as zlib library (#4487) * Export HDF5 version for CMake FetchContent'ed VOL connectors (#4548) * Adjust h5repack userblock option to allow reserve size (#4544) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Allen Byrne <50328838+byrnHDF@users.noreply.github.com> Co-authored-by: H. Joe Lee <hyoklee@hdfgroup.org> Co-authored-by: Quincey Koziol <quincey@koziol.cc> Co-authored-by: jhendersonHDF <jhenderson@hdfgroup.org> Co-authored-by: mattjala <124107509+mattjala@users.noreply.github.com> Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com> Co-authored-by: Peter Chang <peter.chang@diamond.ac.uk> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: bmribler <39579120+bmribler@users.noreply.github.com> Co-authored-by: Scot Breitenfeld <brtnfld@hdfgroup.org>
This commit is contained in:
parent
0ddccb9ab0
commit
ad50867d48
6
.github/workflows/autotools.yml
vendored
6
.github/workflows/autotools.yml
vendored
@ -99,12 +99,6 @@ jobs:
|
||||
with:
|
||||
build_mode: "production"
|
||||
|
||||
call-release-auto-julia:
|
||||
name: "Autotools Julia Workflows"
|
||||
uses: ./.github/workflows/julia-auto.yml
|
||||
with:
|
||||
build_mode: "production"
|
||||
|
||||
call-release-auto-xpr:
|
||||
name: "Autotools TestExpress Workflows"
|
||||
uses: ./.github/workflows/testxpr-auto.yml
|
||||
|
6
.github/workflows/cmake.yml
vendored
6
.github/workflows/cmake.yml
vendored
@ -102,12 +102,6 @@ jobs:
|
||||
with:
|
||||
build_mode: "Release"
|
||||
|
||||
call-release-cmake-julia:
|
||||
name: "CMake Julia Workflows"
|
||||
uses: ./.github/workflows/julia-cmake.yml
|
||||
with:
|
||||
build_mode: "Release"
|
||||
|
||||
call-release-cmake-xpr:
|
||||
name: "CMake TestExpress Workflows"
|
||||
uses: ./.github/workflows/testxpr-cmake.yml
|
||||
|
79
.github/workflows/julia-auto.yml
vendored
79
.github/workflows/julia-auto.yml
vendored
@ -1,79 +0,0 @@
|
||||
name: hdf5 1.14 autotools julia
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build_mode:
|
||||
description: "release vs. debug build"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
julia_build_and_test:
|
||||
name: "julia ${{ inputs.build_mode }}"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Install Dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install autoconf automake libtool libtool-bin libaec-dev
|
||||
sudo apt-get install doxygen graphviz
|
||||
sudo apt install -y zlib1g-dev libcurl4-openssl-dev libjpeg-dev wget curl bzip2
|
||||
sudo apt install -y m4 flex bison cmake libzip-dev openssl build-essential
|
||||
|
||||
- name: Autotools Configure
|
||||
shell: bash
|
||||
run: |
|
||||
sh ./autogen.sh
|
||||
mkdir "${{ runner.workspace }}/build"
|
||||
cd "${{ runner.workspace }}/build"
|
||||
$GITHUB_WORKSPACE/configure \
|
||||
--enable-build-mode=${{ inputs.build_mode }} \
|
||||
--disable-fortran \
|
||||
--enable-shared \
|
||||
--disable-parallel \
|
||||
--prefix=/tmp
|
||||
|
||||
- name: Autotools Build
|
||||
shell: bash
|
||||
run: |
|
||||
make -j3
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
- name: Install HDF5
|
||||
shell: bash
|
||||
run: |
|
||||
make install
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
- name: Install julia
|
||||
uses: julia-actions/setup-julia@latest
|
||||
with:
|
||||
version: '1.6'
|
||||
arch: 'x64'
|
||||
|
||||
- name: Get julia hdf5 source
|
||||
uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
repository: JuliaIO/HDF5.jl
|
||||
path: .
|
||||
|
||||
- name: Generate LocalPreferences
|
||||
run: |
|
||||
echo '[HDF5]' >> LocalPreferences.toml
|
||||
echo 'libhdf5 = "/tmp/lib/libhdf5.so"' >> LocalPreferences.toml
|
||||
echo 'libhdf5_hl = "/tmp/lib/libhdf5_hl.so"' >> LocalPreferences.toml
|
||||
|
||||
- uses: julia-actions/julia-buildpkg@latest
|
||||
|
||||
- name: Julia Run Tests
|
||||
uses: julia-actions/julia-runtest@latest
|
||||
env:
|
||||
JULIA_DEBUG: Main
|
82
.github/workflows/julia-cmake.yml
vendored
82
.github/workflows/julia-cmake.yml
vendored
@ -1,82 +0,0 @@
|
||||
name: hdf5 1.14 CMake julia
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build_mode:
|
||||
description: "release vs. debug build"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
julia_build_and_test:
|
||||
name: "julia ${{ inputs.build_mode }}"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Install Dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install ninja-build doxygen graphviz
|
||||
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
|
||||
sudo apt install -y libaec-dev zlib1g-dev wget curl bzip2 flex bison cmake libzip-dev openssl build-essential
|
||||
|
||||
- name: CMake Configure
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir "${{ runner.workspace }}/build"
|
||||
cd "${{ runner.workspace }}/build"
|
||||
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
|
||||
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF \
|
||||
-DHDF5_ENABLE_PARALLEL:BOOL=OFF \
|
||||
-DHDF5_BUILD_CPP_LIB:BOOL=OFF \
|
||||
-DLIBAEC_USE_LOCALCONTENT=OFF \
|
||||
-DZLIB_USE_LOCALCONTENT=OFF \
|
||||
-DHDF5_BUILD_FORTRAN:BOOL=OFF \
|
||||
-DHDF5_BUILD_JAVA:BOOL=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX=/tmp \
|
||||
$GITHUB_WORKSPACE
|
||||
|
||||
- name: CMake Build
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
- name: Install HDF5
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --install .
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
- name: Install julia
|
||||
uses: julia-actions/setup-julia@latest
|
||||
with:
|
||||
version: '1.6'
|
||||
arch: 'x64'
|
||||
|
||||
- name: Get julia hdf5 source
|
||||
uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
repository: JuliaIO/HDF5.jl
|
||||
path: .
|
||||
|
||||
- name: Generate LocalPreferences
|
||||
run: |
|
||||
echo '[HDF5]' >> LocalPreferences.toml
|
||||
echo 'libhdf5 = "/tmp/lib/libhdf5.so"' >> LocalPreferences.toml
|
||||
echo 'libhdf5_hl = "/tmp/lib/libhdf5_hl.so"' >> LocalPreferences.toml
|
||||
|
||||
- uses: julia-actions/julia-buildpkg@latest
|
||||
|
||||
- name: Julia Run Tests
|
||||
uses: julia-actions/julia-runtest@latest
|
||||
env:
|
||||
JULIA_DEBUG: Main
|
63
.github/workflows/main-cmake-spc.yml
vendored
63
.github/workflows/main-cmake-spc.yml
vendored
@ -80,7 +80,7 @@ jobs:
|
||||
# working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
build_v1_10:
|
||||
name: "gcc DBG v1.10 default API (build only)"
|
||||
name: "gcc DBG v1.10 default API"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# SETUP
|
||||
@ -140,7 +140,7 @@ jobs:
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
build_v1_12:
|
||||
name: "gcc DBG v1.12 default API (build only)"
|
||||
name: "gcc DBG v1.12 default API"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# SETUP
|
||||
@ -198,3 +198,62 @@ jobs:
|
||||
- name: CMake Run Tests
|
||||
run: ctest . --parallel 2 -C Debug -V
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
build_zlibng:
|
||||
name: "gcc use zlib-ng filter"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# SETUP
|
||||
- name: Install Linux Dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install ninja-build doxygen graphviz
|
||||
sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev
|
||||
sudo apt install gcc-12 g++-12 gfortran-12
|
||||
echo "CC=gcc-12" >> $GITHUB_ENV
|
||||
echo "CXX=g++-12" >> $GITHUB_ENV
|
||||
echo "FC=gfortran-12" >> $GITHUB_ENV
|
||||
|
||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||
- name: Get Sources
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
#
|
||||
# CMAKE CONFIGURE
|
||||
#
|
||||
- name: CMake Configure
|
||||
run: |
|
||||
mkdir "${{ runner.workspace }}/build"
|
||||
cd "${{ runner.workspace }}/build"
|
||||
cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \
|
||||
-G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DHDF5_ENABLE_ALL_WARNINGS=ON \
|
||||
-DHDF5_ENABLE_PARALLEL:BOOL=OFF \
|
||||
-DHDF5_BUILD_CPP_LIB:BOOL=ON \
|
||||
-DHDF5_BUILD_FORTRAN=ON \
|
||||
-DHDF5_BUILD_JAVA=ON \
|
||||
-DHDF5_BUILD_DOC=OFF \
|
||||
-DLIBAEC_USE_LOCALCONTENT=ON \
|
||||
-DZLIB_USE_LOCALCONTENT=ON \
|
||||
-DHDF5_ENABLE_MIRROR_VFD:BOOL=ON \
|
||||
-DHDF5_ENABLE_DIRECT_VFD:BOOL=ON \
|
||||
-DHDF5_ENABLE_ROS3_VFD:BOOL=ON \
|
||||
-DHDF5_USE_ZLIBNG:BOOL=ON \
|
||||
$GITHUB_WORKSPACE
|
||||
shell: bash
|
||||
|
||||
#
|
||||
# BUILD
|
||||
#
|
||||
- name: CMake Build
|
||||
run: cmake --build . --parallel 3 --config Release
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
||||
#
|
||||
# RUN TESTS
|
||||
#
|
||||
- name: CMake Run Tests
|
||||
run: ctest . --parallel 2 -C Release -V
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
|
5
.github/workflows/release-files.yml
vendored
5
.github/workflows/release-files.yml
vendored
@ -178,6 +178,7 @@ jobs:
|
||||
sha256sum ${{ steps.get-file-base.outputs.FILE_BASE }}.html.abi.reports.tar.gz >> ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt
|
||||
|
||||
- name: Create sha256 sums for files for nonversioned files
|
||||
if: ${{ (inputs.use_environ == 'release') }}
|
||||
run: |
|
||||
sha256sum hdf5.zip >> ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt
|
||||
sha256sum hdf5.tar.gz >> ${{ steps.get-file-base.outputs.FILE_BASE }}.sha256sums.txt
|
||||
@ -199,7 +200,7 @@ jobs:
|
||||
- name: PreRelease tag
|
||||
id: create_prerelease
|
||||
if: ${{ (inputs.use_environ == 'snapshots') }}
|
||||
uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 # v2.0.4
|
||||
uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 # v2.0.5
|
||||
with:
|
||||
tag_name: "${{ inputs.use_tag }}"
|
||||
prerelease: true
|
||||
@ -224,7 +225,7 @@ jobs:
|
||||
- name: Release tag
|
||||
id: create_release
|
||||
if: ${{ (inputs.use_environ == 'release') }}
|
||||
uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 # v2.0.4
|
||||
uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 # v2.0.5
|
||||
with:
|
||||
tag_name: "${{ inputs.use_tag }}"
|
||||
prerelease: false
|
||||
|
4
.github/workflows/scorecard.yml
vendored
4
.github/workflows/scorecard.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: "Run analysis"
|
||||
uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
|
||||
uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3
|
||||
with:
|
||||
results_file: results.sarif
|
||||
results_format: sarif
|
||||
@ -67,6 +67,6 @@ jobs:
|
||||
|
||||
# Upload the results to GitHub's code scanning dashboard.
|
||||
- name: "Upload to code-scanning"
|
||||
uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3
|
||||
uses: github/codeql-action/upload-sarif@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
@ -9,14 +9,23 @@
|
||||
# If you do not have access to either file, you may request a copy from
|
||||
# help@hdfgroup.org.
|
||||
#
|
||||
option (USE_LIBAEC_STATIC "Use static AEC library" OFF)
|
||||
option (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB else search" OFF)
|
||||
option (SZIP_USE_EXTERNAL "Use External Library Building for SZIP else search" OFF)
|
||||
option (HDF5_USE_ZLIB_NG "Use zlib-ng library as zlib library" OFF)
|
||||
option (HDF5_USE_LIBAEC_STATIC "Use static AEC library" OFF)
|
||||
option (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" OFF)
|
||||
option (SZIP_USE_EXTERNAL "Use External Library Building for SZIP" OFF)
|
||||
|
||||
if (NOT ZLIB_USE_LOCALCONTENT)
|
||||
set (ZLIB_URL ${ZLIB_TGZ_ORIGPATH}/${ZLIB_TGZ_NAME})
|
||||
if (HDF5_USE_ZLIB_NG)
|
||||
set (ZLIB_URL ${ZLIBNG_TGZ_ORIGPATH}/${ZLIBNG_TGZ_NAME})
|
||||
else ()
|
||||
set (ZLIB_URL ${ZLIB_TGZ_ORIGPATH}/${ZLIB_TGZ_NAME})
|
||||
endif ()
|
||||
else ()
|
||||
set (ZLIB_URL ${TGZPATH}/${ZLIB_TGZ_NAME})
|
||||
if (HDF5_USE_ZLIB_NG)
|
||||
set (ZLIB_URL ${TGZPATH}/${ZLIBNG_TGZ_NAME})
|
||||
else ()
|
||||
set (ZLIB_URL ${TGZPATH}/${ZLIB_TGZ_NAME})
|
||||
endif ()
|
||||
endif ()
|
||||
message (VERBOSE "Filter ZLIB file is ${ZLIB_URL}")
|
||||
|
||||
@ -71,8 +80,13 @@ option (HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" ON)
|
||||
if (HDF5_ENABLE_Z_LIB_SUPPORT)
|
||||
if (NOT H5_ZLIB_HEADER)
|
||||
if (NOT ZLIB_USE_EXTERNAL)
|
||||
if (HDF5_USE_ZLIB_NG)
|
||||
set (PACKAGE_NAME ${ZLIBNG_PACKAGE_NAME}${HDF_PACKAGE_EXT})
|
||||
else ()
|
||||
set (PACKAGE_NAME ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT})
|
||||
endif ()
|
||||
set(ZLIB_FOUND FALSE)
|
||||
find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared)
|
||||
find_package (ZLIB NAMES ${PACKAGE_NAME} COMPONENTS static shared)
|
||||
if (NOT ZLIB_FOUND)
|
||||
find_package (ZLIB) # Legacy find
|
||||
endif ()
|
||||
@ -119,9 +133,14 @@ if (HDF5_ENABLE_SZIP_SUPPORT)
|
||||
if (NOT SZIP_USE_EXTERNAL)
|
||||
set(libaec_USE_STATIC_LIBS ${HDF5_USE_LIBAEC_STATIC})
|
||||
set(SZIP_FOUND FALSE)
|
||||
find_package (SZIP NAMES ${LIBAEC_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared)
|
||||
if (NOT SZIP_FOUND)
|
||||
find_package (SZIP) # Legacy find
|
||||
find_package (libaec 1.0.5 CONFIG)
|
||||
if (SZIP_FOUND)
|
||||
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${H5_SZIP_LIBRARIES})
|
||||
else ()
|
||||
find_package (SZIP NAMES ${LIBAEC_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared)
|
||||
if (NOT SZIP_FOUND)
|
||||
find_package (SZIP) # Legacy find
|
||||
endif ()
|
||||
endif ()
|
||||
set(H5_SZIP_FOUND ${SZIP_FOUND})
|
||||
if (H5_SZIP_FOUND)
|
||||
|
@ -120,7 +120,7 @@ else ()
|
||||
set (BYTESEX little-endian)
|
||||
endif ()
|
||||
configure_file (
|
||||
${HDF_RESOURCES_DIR}/libhdf5.settings.cmake.in
|
||||
${HDF5_SOURCE_DIR}/src/libhdf5.settings.cmake.in
|
||||
${HDF5_SRC_BINARY_DIR}/libhdf5.settings ESCAPE_QUOTES @ONLY
|
||||
)
|
||||
install (
|
||||
|
@ -76,6 +76,13 @@ mark_as_advanced (HDF5_LIB_INFIX)
|
||||
# e.g. the infix '_openmpi' results in the library name 'libhdf5_openmpi.so'
|
||||
# This name is used in packages on debian based systems.
|
||||
# (see https://packages.debian.org/jessie/amd64/libhdf5-openmpi-8/filelist)
|
||||
#option (HDF5_EXTERNAL_LIB_SUFFIX "Use prefix for custom library naming." "")
|
||||
set (HDF5_EXTERNAL_LIB_SUFFIX "" CACHE STRING "Use suffix for custom library naming.")
|
||||
mark_as_advanced (HDF5_EXTERNAL_LIB_SUFFIX)
|
||||
# HDF5_EXTERNAL_LIB_SUFFIX :
|
||||
# If the parent project needs to install hdf libraries, but avoid
|
||||
# name conflicts with system versions, then a suffix may be added
|
||||
# to ensure that the correct versions configured are used.
|
||||
#
|
||||
# HDF5_INSTALL_BIN_DIR, HDF5_INSTALL_LIB_DIR, HDF5_INSTALL_INCLUDE_DIR, HDF5_INSTALL_DATA_DIR :
|
||||
# Customize the 'bin', 'lib', 'include', and 'share' installation directories.
|
||||
@ -133,44 +140,65 @@ option (ALLOW_UNSUPPORTED "Allow unsupported combinations of configure options"
|
||||
mark_as_advanced (ALLOW_UNSUPPORTED)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set the core names of all the libraries
|
||||
# Set the core names of all the libraries CORENAME is the base library name
|
||||
# for targets, BASE_CORE
|
||||
# filename are made of PREFIX_BASE_INFIX_CORE_SUFFIX
|
||||
#-----------------------------------------------------------------------------
|
||||
set (HDF5_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}")
|
||||
set (HDF5_TEST_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_test")
|
||||
set (HDF5_CPP_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_cpp")
|
||||
set (HDF5_HL_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_hl")
|
||||
set (HDF5_HL_CPP_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_hl_cpp")
|
||||
set (HDF5_TOOLS_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_tools")
|
||||
set (HDF5_UTILS_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_utils")
|
||||
set (HDF5_F90_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_fortran")
|
||||
set (HDF5_F90_C_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_f90cstub")
|
||||
set (HDF5_F90_TEST_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_test_fortran")
|
||||
set (HDF5_F90_C_TEST_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_test_f90cstub")
|
||||
set (HDF5_HL_F90_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_hl_fortran")
|
||||
set (HDF5_HL_F90_C_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_hl_f90cstub")
|
||||
set (HDF5_JAVA_JNI_LIB_CORENAME "hdf5${HDF5_LIB_INFIX}_java")
|
||||
set (HDF5_LIB_BASE "hdf5")
|
||||
|
||||
set (HDF5_LIB_CORE "")
|
||||
set (HDF5_TEST_LIB_CORE "_test")
|
||||
set (HDF5_CPP_LIB_CORE "_cpp")
|
||||
set (HDF5_HL_LIB_CORE "_hl")
|
||||
set (HDF5_HL_CPP_LIB_CORE "_hl_cpp")
|
||||
set (HDF5_TOOLS_LIB_CORE "_tools")
|
||||
set (HDF5_UTILS_LIB_CORE "_utils")
|
||||
set (HDF5_F90_LIB_CORE "_fortran")
|
||||
set (HDF5_F90_C_LIB_CORE "_f90cstub")
|
||||
set (HDF5_F90_TEST_LIB_CORE "_test_fortran")
|
||||
set (HDF5_F90_C_TEST_LIB_CORE "_test_f90cstub")
|
||||
set (HDF5_HL_F90_LIB_CORE "_hl_fortran")
|
||||
set (HDF5_HL_F90_C_LIB_CORE "_hl_f90cstub")
|
||||
set (HDF5_JAVA_JNI_LIB_CORE "_java")
|
||||
|
||||
set (HDF5_LIB_CORENAME "${HDF5_LIB_BASE}")
|
||||
set (HDF5_TEST_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_TEST_LIB_CORE}")
|
||||
set (HDF5_CPP_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_CPP_LIB_CORE}")
|
||||
set (HDF5_HL_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_HL_LIB_CORE}")
|
||||
set (HDF5_HL_CPP_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_HL_CPP_LIB_CORE}")
|
||||
set (HDF5_TOOLS_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_TOOLS_LIB_CORE}")
|
||||
set (HDF5_UTILS_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_UTILS_LIB_CORE}")
|
||||
set (HDF5_F90_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_F90_LIB_CORE}")
|
||||
set (HDF5_F90_C_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_F90_C_LIB_CORE}")
|
||||
set (HDF5_F90_TEST_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_F90_TEST_LIB_CORE}")
|
||||
set (HDF5_F90_C_TEST_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_F90_C_TEST_LIB_CORE}")
|
||||
set (HDF5_HL_F90_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_HL_F90_LIB_CORE}")
|
||||
set (HDF5_HL_F90_C_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_HL_F90_C_LIB_CORE}")
|
||||
set (HDF5_JAVA_JNI_LIB_CORENAME "${HDF5_LIB_BASE}${HDF5_JAVA_JNI_LIB_CORE}")
|
||||
set (HDF5_JAVA_HDF5_LIB_CORENAME "jarhdf5")
|
||||
set (HDF5_JAVA_TEST_LIB_CORENAME "jartest5")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set the true names of all the libraries if customized by external project
|
||||
#-----------------------------------------------------------------------------
|
||||
set (HDF5_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_CORENAME}")
|
||||
set (HDF5_TEST_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_TEST_LIB_CORENAME}")
|
||||
set (HDF5_CPP_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_CPP_LIB_CORENAME}")
|
||||
set (HDF5_HL_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_HL_LIB_CORENAME}")
|
||||
set (HDF5_HL_CPP_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_HL_CPP_LIB_CORENAME}")
|
||||
set (HDF5_TOOLS_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_TOOLS_LIB_CORENAME}")
|
||||
set (HDF5_UTILS_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_UTILS_LIB_CORENAME}")
|
||||
set (HDF5_F90_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_F90_LIB_CORENAME}")
|
||||
set (HDF5_F90_C_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_F90_C_LIB_CORENAME}")
|
||||
set (HDF5_F90_TEST_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_F90_TEST_LIB_CORENAME}")
|
||||
set (HDF5_F90_C_TEST_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_F90_C_TEST_LIB_CORENAME}")
|
||||
set (HDF5_HL_F90_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_HL_F90_LIB_CORENAME}")
|
||||
set (HDF5_HL_F90_C_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_HL_F90_C_LIB_CORENAME}")
|
||||
set (HDF5_JAVA_JNI_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_JAVA_JNI_LIB_CORENAME}")
|
||||
set (HDF5_JAVA_HDF5_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_JAVA_HDF5_LIB_CORENAME}")
|
||||
set (HDF5_JAVA_TEST_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_JAVA_TEST_LIB_CORENAME}")
|
||||
set (HDF5_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_TEST_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_TEST_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_CPP_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_CPP_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_HL_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_HL_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_HL_CPP_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_HL_CPP_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_TOOLS_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_TOOLS_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_UTILS_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_UTILS_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_F90_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_F90_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_F90_C_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_F90_C_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_F90_TEST_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_F90_TEST_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_F90_C_TEST_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_F90_C_TEST_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_HL_F90_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_HL_F90_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_HL_F90_C_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_HL_F90_C_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
#Because the loading mechanism of the JNI library requires a fixed name, the name of the JNI library cannot be customized
|
||||
#set (HDF5_JAVA_JNI_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_LIB_BASE}${HDF5_LIB_INFIX}${HDF5_JAVA_JNI_LIB_CORE}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_JAVA_JNI_LIB_NAME "${HDF5_LIB_BASE}${HDF5_JAVA_JNI_LIB_CORE}")
|
||||
set (HDF5_JAVA_HDF5_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_JAVA_HDF5_LIB_CORENAME}${HDF5_LIB_INFIX}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
set (HDF5_JAVA_TEST_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${HDF5_JAVA_TEST_LIB_CORENAME}${HDF5_LIB_INFIX}${HDF5_EXTERNAL_LIB_SUFFIX}")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set the target names of all the libraries
|
||||
|
@ -20,9 +20,12 @@
|
||||
"ZLIB_PACKAGE_NAME": {"type": "STRING", "value": "zlib"},
|
||||
"ZLIB_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/madler/zlib/releases/download/v1.3"},
|
||||
"ZLIB_TGZ_NAME": {"type": "STRING", "value": "zlib-1.3.tar.gz"},
|
||||
"ZLIBNG_PACKAGE_NAME": {"type": "STRING", "value": "zlib-ng"},
|
||||
"ZLIBNG_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/zlib-ng/zlib-ng/archive/refs/tags"},
|
||||
"ZLIBNG_TGZ_NAME": {"type": "STRING", "value": "2.1.6.tar.gz"},
|
||||
"LIBAEC_PACKAGE_NAME": {"type": "STRING", "value": "libaec"},
|
||||
"LIBAEC_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6"},
|
||||
"LIBAEC_TGZ_NAME": {"type": "STRING", "value": "libaec-1.0.6.tar.gz"}
|
||||
"LIBAEC_TGZ_ORIGPATH": {"type": "STRING", "value": "https://github.com/MathisRosenhauer/libaec/releases/download/v1.1.3"},
|
||||
"LIBAEC_TGZ_NAME": {"type": "STRING", "value": "libaec-1.1.3.tar.gz"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -31,6 +34,7 @@
|
||||
"inherits": ["ci-base-tgz", "ci-CompressionVars"],
|
||||
"cacheVariables": {
|
||||
"HDF5_PACKAGE_EXTLIBS": "ON",
|
||||
"HDF5_USE_ZLIB_NG": "OFF",
|
||||
"ZLIB_USE_LOCALCONTENT": "OFF",
|
||||
"LIBAEC_USE_LOCALCONTENT": "OFF"
|
||||
}
|
||||
|
@ -76,6 +76,8 @@ if (HDF5_VOL_ALLOW_EXTERNAL MATCHES "GIT" OR HDF5_VOL_ALLOW_EXTERNAL MATCHES "LO
|
||||
set (HDF5_FOUND 1)
|
||||
set (HDF5_LIBRARIES "${HDF5_LIBSH_TARGET};${LINK_LIBS};${LINK_COMP_LIBS};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:MPI::MPI_C>")
|
||||
set (HDF5_INCLUDE_DIRS "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
set (HDF5_IS_PARALLEL ${H5_HAVE_PARALLEL})
|
||||
set (HDF5_VERSION ${HDF5_PACKAGE_VERSION})
|
||||
|
||||
set (HDF5_C_LIBRARIES "${HDF5_LIBRARIES}")
|
||||
|
||||
|
@ -98,11 +98,11 @@ endif ()
|
||||
# Note: Currently CMake only allows configuring of threadsafe on WINDOWS.
|
||||
#-----------------------------------------------------------------------------
|
||||
option (HDF_ENABLE_THREADSAFE "Enable Threadsafety" OFF)
|
||||
if (HDF_ENABLE_THREADSAFE)
|
||||
# check for unsupported options
|
||||
if (HDF_ENABLE_PARALLEL)
|
||||
message (FATAL " **** Parallel and Threadsafe options are mutually exclusive **** ")
|
||||
endif ()
|
||||
# Note that HDF_ENABLE_THREADSAFE is the CMake option for determining
|
||||
# whether to enable thread-safety in the examples. HDF5_ENABLE_THREADSAFE
|
||||
# is the CMake option determining whether HDF5 was configured with
|
||||
# thread-safety enabled.
|
||||
if (HDF_ENABLE_THREADSAFE AND HDF5_ENABLE_THREADSAFE)
|
||||
if (WIN32)
|
||||
set (H5_HAVE_WIN_THREADS 1)
|
||||
set (H5_HAVE_THREADSAFE 1)
|
||||
|
@ -175,9 +175,9 @@ set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||
set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
|
||||
set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${HDF5_INSTALL_LIB_DIR})
|
||||
set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${HDF5_INSTALL_INCLUDE_DIR})
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_CPP_LIB_CORENAME}")
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_CPP_LIB_NAME}")
|
||||
set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
|
||||
set (PKG_CONFIG_LIBNAME "${HDF5_CPP_LIB_CORENAME}")
|
||||
set (PKG_CONFIG_LIBNAME "${HDF5_CPP_LIB_NAME}")
|
||||
if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer")
|
||||
set (PKG_CONFIG_LIBNAME "${PKG_CONFIG_LIBNAME}${CMAKE_DEBUG_POSTFIX}")
|
||||
endif ()
|
||||
@ -191,8 +191,8 @@ if (BUILD_SHARED_LIBS)
|
||||
set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${PKG_CONFIG_LIBNAME}")
|
||||
endif ()
|
||||
|
||||
set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_CORENAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_CORENAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
|
||||
configure_file (
|
||||
${HDF_CONFIG_DIR}/libhdf5.pc.in
|
||||
|
@ -28,7 +28,11 @@ macro (EXTERNAL_ZLIB_LIBRARY compress_type)
|
||||
FetchContent_Populate(HDF5_ZLIB)
|
||||
|
||||
# Copy an additional/replacement files into the populated source
|
||||
file(COPY ${HDF_RESOURCES_DIR}/ZLIB/CMakeLists.txt DESTINATION ${hdf5_zlib_SOURCE_DIR})
|
||||
if (HDF5_USE_ZLIB_NG)
|
||||
file(COPY ${HDF_RESOURCES_DIR}/ZLIBNG/CMakeLists.txt DESTINATION ${hdf5_zlib_SOURCE_DIR})
|
||||
else ()
|
||||
file(COPY ${HDF_RESOURCES_DIR}/ZLIB/CMakeLists.txt DESTINATION ${hdf5_zlib_SOURCE_DIR})
|
||||
endif ()
|
||||
|
||||
add_subdirectory(${hdf5_zlib_SOURCE_DIR} ${hdf5_zlib_BINARY_DIR})
|
||||
endif()
|
||||
|
@ -271,6 +271,8 @@ macro (TARGET_C_PROPERTIES wintarget libtype)
|
||||
if(MSVC)
|
||||
set_property(TARGET ${wintarget} APPEND PROPERTY LINK_FLAGS "${WIN_LINK_FLAGS}")
|
||||
endif()
|
||||
#Disable UNITY_BUILD for now
|
||||
set_property(TARGET ${wintarget} APPEND PROPERTY UNITY_BUILD OFF)
|
||||
endmacro ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
@ -5,6 +5,8 @@ PROJECT (LIBAEC C)
|
||||
# Basic LIBAEC stuff here
|
||||
#-----------------------------------------------------------------------------
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
set(CMAKE_C_VISIBILITY_PRESET hidden)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
set (LIBAEC_PACKAGE_EXT ${HDF_PACKAGE_EXT})
|
||||
set (HDF_USE_GNU_DIRS ${HDF5_USE_GNU_DIRS})
|
||||
@ -20,10 +22,12 @@ if (WINDOWS)
|
||||
endif ()
|
||||
|
||||
if (NOT WINDOWS)
|
||||
TEST_BIG_ENDIAN (WORDS_BIGENDIAN)
|
||||
include(TestBigEndian)
|
||||
test_big_endian(WORDS_BIGENDIAN)
|
||||
endif ()
|
||||
|
||||
# Check for __builtin_clzll for faster decoding
|
||||
include(CheckCSourceCompiles)
|
||||
check_c_source_compiles(
|
||||
"int main(void)\n{return __builtin_clzll(1LL);}"
|
||||
HAVE_DECL___BUILTIN_CLZLL)
|
||||
@ -36,6 +40,13 @@ return _BitScanReverse64(&foo, bar);}"
|
||||
HAVE_BSR64)
|
||||
endif()
|
||||
|
||||
include(CheckSymbolExists)
|
||||
check_symbol_exists(snprintf "stdio.h" HAVE_SNPRINTF)
|
||||
if(NOT HAVE_SNPRINTF)
|
||||
check_symbol_exists(_snprintf "stdio.h" HAVE__SNPRINTF)
|
||||
check_symbol_exists(_snprintf_s "stdio.h" HAVE__SNPRINTF_S)
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Define some CMake variables for use later in the project
|
||||
#-----------------------------------------------------------------------------
|
||||
@ -62,8 +73,8 @@ set (LIBAEC_LIB_TARGET "${LIBAEC_LIB_CORENAME}-static")
|
||||
set (SZIP_LIB_TARGET "${SZIP_LIB_CORENAME}-static")
|
||||
|
||||
set (libaec_VERS_MAJOR 1)
|
||||
set (libaec_VERS_MINOR 0)
|
||||
set (libaec_VERS_RELEASE 6)
|
||||
set (libaec_VERS_MINOR 1)
|
||||
set (libaec_VERS_RELEASE 3)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
set (LIBAEC_PACKAGE "libaec")
|
||||
@ -142,6 +153,10 @@ endif ()
|
||||
# Generate the aec_config.h file containing user settings needed by compilation
|
||||
#-----------------------------------------------------------------------------
|
||||
configure_file (${LIBAEC_RESOURCES_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
||||
# Create libaec.h with current version information
|
||||
configure_file(
|
||||
"include/libaec.h.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/libaec.h")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# All libs/tests/examples need the main include directories
|
||||
@ -157,10 +172,11 @@ set(LIBAEC_SRCS
|
||||
${LIBAEC_SRC_DIR}/encode.c
|
||||
${LIBAEC_SRC_DIR}/encode_accessors.c
|
||||
${LIBAEC_SRC_DIR}/decode.c
|
||||
${LIBAEC_SRC_DIR}/vector.c
|
||||
)
|
||||
|
||||
set (LIBAEC_PUBLIC_HEADERS
|
||||
${LIBAEC_INC_DIR}/libaec.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libaec.h
|
||||
)
|
||||
|
||||
add_library (${LIBAEC_LIB_TARGET} STATIC ${LIBAEC_SRCS} ${LIBAEC_PUBLIC_HEADERS})
|
||||
@ -224,18 +240,6 @@ endif ()
|
||||
|
||||
include (CMakePackageConfigHelpers)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Check for Installation Utilities
|
||||
#-----------------------------------------------------------------------------
|
||||
if (WIN32)
|
||||
set (PF_ENV_EXT "(x86)")
|
||||
find_program (NSIS_EXECUTABLE NSIS.exe PATHS "$ENV{ProgramFiles}\\NSIS" "$ENV{ProgramFiles${PF_ENV_EXT}}\\NSIS")
|
||||
if(NOT CPACK_WIX_ROOT)
|
||||
file(TO_CMAKE_PATH "$ENV{WIX}" CPACK_WIX_ROOT)
|
||||
endif ()
|
||||
find_program (WIX_EXECUTABLE candle PATHS "${CPACK_WIX_ROOT}/bin")
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Add Target(s) to CMake Install for import into other projects
|
||||
#-----------------------------------------------------------------------------
|
||||
@ -324,145 +328,3 @@ if (NOT LIBAEC_EXTERNALLY_CONFIGURED)
|
||||
)
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Check for Installation Utilities
|
||||
#-----------------------------------------------------------------------------
|
||||
if (WIN32)
|
||||
set (PF_ENV_EXT "(x86)")
|
||||
find_program (NSIS_EXECUTABLE NSIS.exe PATHS "$ENV{ProgramFiles}\\NSIS" "$ENV{ProgramFiles${PF_ENV_EXT}}\\NSIS")
|
||||
if(NOT CPACK_WIX_ROOT)
|
||||
file(TO_CMAKE_PATH "$ENV{WIX}" CPACK_WIX_ROOT)
|
||||
endif()
|
||||
find_program (WIX_EXECUTABLE candle PATHS "${CPACK_WIX_ROOT}/bin")
|
||||
endif ()
|
||||
|
||||
configure_file (${LIBAEC_SOURCE_DIR}/LICENSE.txt ${LIBAEC_BINARY_DIR}/LIBAEC_LICENSE.txt @ONLY)
|
||||
configure_file (${LIBAEC_SOURCE_DIR}/README.SZIP ${LIBAEC_BINARY_DIR}/LIBAEC_README.SZIP @ONLY)
|
||||
configure_file (${LIBAEC_SOURCE_DIR}/README.md ${LIBAEC_BINARY_DIR}/LIBAEC_README.md @ONLY)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set the cpack variables
|
||||
#-----------------------------------------------------------------------------
|
||||
if (NOT LIBAEC_EXTERNALLY_CONFIGURED)
|
||||
set (CPACK_PACKAGE_VENDOR "HDF_Group")
|
||||
set (CPACK_PACKAGE_NAME "${LIBAEC_PACKAGE_NAME}")
|
||||
if (NOT WIN32 OR LIBAEC_VERS_SUBRELEASE MATCHES "^[0-9]+$")
|
||||
set (CPACK_PACKAGE_VERSION "${LIBAEC_PACKAGE_VERSION_STRING}")
|
||||
else ()
|
||||
set (CPACK_PACKAGE_VERSION "${LIBAEC_PACKAGE_VERSION}")
|
||||
endif ()
|
||||
set (CPACK_PACKAGE_VERSION_MAJOR "${LIBAEC_PACKAGE_VERSION_MAJOR}")
|
||||
set (CPACK_PACKAGE_VERSION_MINOR "${LIBAEC_PACKAGE_VERSION_MINOR}")
|
||||
set (CPACK_PACKAGE_VERSION_PATCH "")
|
||||
set (CPACK_RESOURCE_FILE_LICENSE "${LIBAEC_BINARY_DIR}/LIBAEC_LICENSE.txt")
|
||||
set (CPACK_PACKAGE_DESCRIPTION_FILE "${LIBAEC_BINARY_DIR}/LIBAEC_README.SZIP")
|
||||
set (CPACK_RESOURCE_FILE_README "${LIBAEC_BINARY_DIR}/LIBAEC_README.md")
|
||||
set (CPACK_PACKAGE_RELOCATABLE TRUE)
|
||||
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "libaec - Adaptive Entropy Coding library by Deutsches Klimarechenzentrum GmbH")
|
||||
set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}")
|
||||
|
||||
set (CPACK_GENERATOR "TGZ")
|
||||
if (WIN32)
|
||||
set (CPACK_GENERATOR "ZIP")
|
||||
|
||||
if (NSIS_EXECUTABLE)
|
||||
list (APPEND CPACK_GENERATOR "NSIS")
|
||||
endif ()
|
||||
# Installers for 32- vs. 64-bit CMake:
|
||||
# - Root install directory (displayed to end user at installer-run time)
|
||||
# - "NSIS package/display name" (text used in the installer GUI)
|
||||
# - Registry key used to store info about the installation
|
||||
set (CPACK_NSIS_PACKAGE_NAME "${LIBAEC_PACKAGE_STRING}")
|
||||
if (CMAKE_CL_64)
|
||||
set (CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
|
||||
set (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION} (Win64)")
|
||||
else ()
|
||||
set (CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
|
||||
set (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
|
||||
endif ()
|
||||
set (CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_PACKAGE_NAME}")
|
||||
set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}\\\\${CPACK_PACKAGE_NAME}\\\\${CPACK_PACKAGE_VERSION}")
|
||||
set (CPACK_NSIS_CONTACT "${LIBAEC_PACKAGE_BUGREPORT}")
|
||||
set (CPACK_NSIS_MODIFY_PATH ON)
|
||||
set (CPACK_NSIS_PACKAGE_NAME "LIBAEC ${LIBAEC_PACKAGE_VERSION}")
|
||||
if (WIX_EXECUTABLE)
|
||||
list (APPEND CPACK_GENERATOR "WIX")
|
||||
endif ()
|
||||
#WiX variables
|
||||
set (CPACK_WIX_UNINSTALL "1")
|
||||
set (CPACK_RESOURCE_FILE_LICENSE "${LIBAEC_BINARY_DIR}/LIBAEC_LICENSE.txt")
|
||||
elseif (APPLE)
|
||||
list (APPEND CPACK_GENERATOR "STGZ")
|
||||
list (APPEND CPACK_GENERATOR "DragNDrop")
|
||||
set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
|
||||
set (CPACK_PACKAGING_INSTALL_PREFIX "/${CPACK_PACKAGE_INSTALL_DIRECTORY}")
|
||||
#set (CPACK_PACKAGE_ICON "${LIBAEC_RESOURCES_DIR}/hdf.icns")
|
||||
|
||||
option (LIBAEC_PACK_MACOSX_FRAMEWORK "Package the LIBAEC Library in a Framework" OFF)
|
||||
if (LIBAEC_PACK_MACOSX_FRAMEWORK AND LIBAEC_BUILD_FRAMEWORKS)
|
||||
set (CPACK_BUNDLE_NAME "${LIBAEC_PACKAGE_STRING}")
|
||||
set (CPACK_BUNDLE_LOCATION "/") # make sure CMAKE_INSTALL_PREFIX ends in /
|
||||
set (CMAKE_INSTALL_PREFIX "/${CPACK_BUNDLE_NAME}.framework/Versions/${CPACK_PACKAGE_VERSION}/${CPACK_PACKAGE_NAME}/")
|
||||
set (CPACK_SHORT_VERSION_STRING "${CPACK_PACKAGE_VERSION}")
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configure the Info.plist file for the install bundle
|
||||
#-----------------------------------------------------------------------------
|
||||
configure_file (
|
||||
${LIBAEC_RESOURCES_DIR}/CPack.Info.plist.in
|
||||
${LIBAEC_BINARY_DIR}/CMakeFiles/Info.plist @ONLY
|
||||
)
|
||||
configure_file (
|
||||
${LIBAEC_RESOURCES_DIR}/PkgInfo.in
|
||||
${LIBAEC_BINARY_DIR}/CMakeFiles/PkgInfo @ONLY
|
||||
)
|
||||
install (
|
||||
FILES ${LIBAEC_BINARY_DIR}/CMakeFiles/PkgInfo
|
||||
DESTINATION ..
|
||||
)
|
||||
endif ()
|
||||
else ()
|
||||
list (APPEND CPACK_GENERATOR "STGZ")
|
||||
set (CPACK_PACKAGING_INSTALL_PREFIX "/${CPACK_PACKAGE_INSTALL_DIRECTORY}")
|
||||
set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
|
||||
|
||||
set (CPACK_DEBIAN_PACKAGE_SECTION "Libraries")
|
||||
set (CPACK_DEBIAN_PACKAGE_MAINTAINER "${LIBAEC_PACKAGE_BUGREPORT}")
|
||||
|
||||
# list (APPEND CPACK_GENERATOR "RPM")
|
||||
set (CPACK_RPM_PACKAGE_RELEASE "1")
|
||||
set (CPACK_RPM_COMPONENT_INSTALL ON)
|
||||
set (CPACK_RPM_PACKAGE_RELOCATABLE ON)
|
||||
endif ()
|
||||
|
||||
# By default, do not warn when built on machines using only VS Express:
|
||||
if (NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
|
||||
set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
|
||||
endif ()
|
||||
include (InstallRequiredSystemLibraries)
|
||||
|
||||
set (CPACK_INSTALL_CMAKE_PROJECTS "${LIBAEC_BINARY_DIR};LIBAEC;libraries;/")
|
||||
set (CPACK_INSTALL_CMAKE_PROJECTS "${LIBAEC_BINARY_DIR};LIBAEC;configinstall;/")
|
||||
|
||||
set (CPACK_ALL_INSTALL_TYPES Full Developer User)
|
||||
set (CPACK_INSTALL_TYPE_FULL_DISPLAY_NAME "Everything")
|
||||
|
||||
set(CPACK_COMPONENTS_ALL libraries headers documents configinstall)
|
||||
|
||||
include (CPack)
|
||||
|
||||
cpack_add_component_group(Runtime)
|
||||
|
||||
cpack_add_component (libraries
|
||||
DISPLAY_NAME "LIBAEC Libraries"
|
||||
REQUIRED
|
||||
GROUP Runtime
|
||||
INSTALL_TYPES Full Developer User
|
||||
)
|
||||
cpack_add_component (configinstall
|
||||
DISPLAY_NAME "LIBAEC CMake files"
|
||||
DEPENDS libraries
|
||||
GROUP Development
|
||||
INSTALL_TYPES Full Developer User
|
||||
)
|
||||
|
||||
endif ()
|
||||
|
@ -1,36 +1,6 @@
|
||||
#cmakedefine WORDS_BIGENDIAN
|
||||
#cmakedefine01 HAVE_DECL___BUILTIN_CLZLL
|
||||
#cmakedefine01 HAVE_BSR64
|
||||
#cmakedefine HAVE_BSR64
|
||||
#cmakedefine HAVE_SNPRINTF
|
||||
#cmakedefine HAVE__SNPRINTF
|
||||
#cmakedefine HAVE__SNPRINTF_S
|
||||
|
||||
/* Name of package */
|
||||
#cmakedefine LIBAEC_PACKAGE "@LIBAEC_PACKAGE@"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#cmakedefine LIBAEC_PACKAGE_BUGREPORT "@LIBAEC_PACKAGE_BUGREPORT@"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#cmakedefine LIBAEC_PACKAGE_NAME "@LIBAEC_PACKAGE_NAME@"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#cmakedefine LIBAEC_PACKAGE_STRING "@LIBAEC_PACKAGE_STRING@"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#cmakedefine LIBAEC_PACKAGE_TARNAME "@LIBAEC_PACKAGE_TARNAME@"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#cmakedefine LIBAEC_PACKAGE_VERSION "@LIBAEC_PACKAGE_VERSION@"
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#cmakedefine STDC_HEADERS @STDC_HEADERS@
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "@LIBAEC_PACKAGE_VERSION@"
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
#cmakedefine const
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#cmakedefine size_t
|
||||
|
@ -1,42 +1,15 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# LIBAEC Version file for install directory
|
||||
#-----------------------------------------------------------------------------
|
||||
set(PACKAGE_VERSION_MAJOR @PROJECT_VERSION_MAJOR@)
|
||||
set(PACKAGE_VERSION_MINOR @PROJECT_VERSION_MINOR@)
|
||||
set(PACKAGE_VERSION_PATCH @PROJECT_VERSION_PATCH@)
|
||||
set(PACKAGE_VERSION @PROJECT_VERSION@)
|
||||
|
||||
set (PACKAGE_VERSION "@LIBAEC_VERSION_STRING@")
|
||||
|
||||
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
|
||||
# Check whether the requested PACKAGE_FIND_VERSION is compatible
|
||||
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION OR
|
||||
PACKAGE_VERSION_MAJOR GREATER PACKAGE_FIND_VERSION_MAJOR)
|
||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
else()
|
||||
if ("${PACKAGE_FIND_VERSION_MAJOR}" STREQUAL "@LIBAEC_VERSION_MAJOR@")
|
||||
|
||||
# exact match for version @LIBAEC_VERSION_MAJOR@.@LIBAEC_VERSION_MINOR@
|
||||
if ("${PACKAGE_FIND_VERSION_MINOR}" STREQUAL "@LIBAEC_VERSION_MINOR@")
|
||||
|
||||
# compatible with any version @LIBAEC_VERSION_MAJOR@.@LIBAEC_VERSION_MINOR@.x
|
||||
set (PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
|
||||
if ("${PACKAGE_FIND_VERSION_PATCH}" STREQUAL "@LIBAEC_VERSION_RELEASE@")
|
||||
set (PACKAGE_VERSION_EXACT TRUE)
|
||||
|
||||
if ("${PACKAGE_FIND_VERSION_TWEAK}" STREQUAL "@LIBAEC_VERSION_SUBRELEASE@")
|
||||
# not using this yet
|
||||
endif ()
|
||||
endif ()
|
||||
else ()
|
||||
set (PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
|
||||
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
|
||||
return()
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
if(PACKAGE_VERSION VERSION_EQUAL PACKAGE_FIND_VERSION)
|
||||
set(PACKAGE_VERSION_EXACT TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
|
||||
if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "@CMAKE_SIZEOF_VOID_P@")
|
||||
math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8")
|
||||
set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
|
||||
set(PACKAGE_VERSION_UNSUITABLE TRUE)
|
||||
endif()
|
||||
|
||||
|
@ -1,59 +1,101 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# LIBAEC Config file for compiling against LIBAEC build directory
|
||||
#-----------------------------------------------------------------------------
|
||||
@PACKAGE_INIT@
|
||||
# libaec-config.cmake
|
||||
# ----------------
|
||||
#
|
||||
# Finds the AEC library, specify the starting search path in libaec_ROOT.
|
||||
#
|
||||
# Static vs. shared
|
||||
# -----------------
|
||||
# To make use of the static library instead of the shared one, one needs
|
||||
# to set the variable libaec_USE_STATIC_LIBS to ON before calling find_package.
|
||||
# Example:
|
||||
# set(libaec_USE_STATIC_LIBS ON)
|
||||
# find_package(libaec CONFIG)
|
||||
#
|
||||
# This will define the following variables:
|
||||
#
|
||||
# libaec_FOUND - True if the system has the AEC library.
|
||||
# libaec_VERSION - The version of the AEC library which was found.
|
||||
# SZIP_FOUND - True if the system has the SZIP library.
|
||||
# SZIP_VERSION - The version of the SZIP library which was found.
|
||||
# SZIP_LIBRARIES - All the required libraries to make use of SZIP.
|
||||
#
|
||||
# and the following imported targets:
|
||||
#
|
||||
# libaec::aec - The AEC library.
|
||||
# libaec::sz - The SZIP compatible version of the AEC library.
|
||||
|
||||
string(TOUPPER @LIBAEC_PACKAGE@ LIBAEC_PACKAGE_NAME)
|
||||
|
||||
set (${LIBAEC_PACKAGE_NAME}_VALID_COMPONENTS static shared)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# User Options
|
||||
#-----------------------------------------------------------------------------
|
||||
set (${LIBAEC_PACKAGE_NAME}_ENABLE_ENCODING @LIBAEC_ENABLE_ENCODING@)
|
||||
set (${LIBAEC_PACKAGE_NAME}_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@)
|
||||
set (${LIBAEC_PACKAGE_NAME}_EXPORT_LIBRARIES @LIBAEC_LIBRARIES_TO_EXPORT@)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Directories
|
||||
#-----------------------------------------------------------------------------
|
||||
set (${LIBAEC_PACKAGE_NAME}_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
|
||||
|
||||
set (${LIBAEC_PACKAGE_NAME}_SHARE_DIR "@PACKAGE_SHARE_INSTALL_DIR@")
|
||||
set_and_check (${LIBAEC_PACKAGE_NAME}_BUILD_DIR "@PACKAGE_CURRENT_BUILD_DIR@")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Version Strings
|
||||
#-----------------------------------------------------------------------------
|
||||
set (${LIBAEC_PACKAGE_NAME}_VERSION_STRING @LIBAEC_VERSION_STRING@)
|
||||
set (${LIBAEC_PACKAGE_NAME}_VERSION_MAJOR @LIBAEC_VERSION_MAJOR@)
|
||||
set (${LIBAEC_PACKAGE_NAME}_VERSION_MINOR @LIBAEC_VERSION_MINOR@)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Don't include targets if this file is being picked up by another
|
||||
# project which has already build LIBAEC as a subproject
|
||||
#-----------------------------------------------------------------------------
|
||||
if (NOT TARGET "@LIBAEC_PACKAGE@")
|
||||
include (@PACKAGE_SHARE_INSTALL_DIR@/@LIBAEC_PACKAGE@@LIBAEC_PACKAGE_EXT@-targets.cmake)
|
||||
find_path(libaec_INCLUDE_DIR NAMES libaec.h DOC "AEC include directory")
|
||||
find_path(SZIP_INCLUDE_DIR NAMES szlib.h DOC "SZIP include directory")
|
||||
if (libaec_USE_STATIC_LIBS)
|
||||
if (MSVC)
|
||||
find_library(libaec_LIBRARY NAMES aec-static.lib DOC "AEC library")
|
||||
find_library(SZIP_LIBRARY NAMES szip-static.lib DOC "SZIP compatible version of the AEC library")
|
||||
else ()
|
||||
find_library(libaec_LIBRARY NAMES libaec.a DOC "AEC library")
|
||||
find_library(SZIP_LIBRARY NAMES libsz.a DOC "SZIP compatible version of the AEC library")
|
||||
endif ()
|
||||
else ()
|
||||
find_library(libaec_LIBRARY NAMES aec DOC "AEC library")
|
||||
find_library(SZIP_LIBRARY NAMES sz szip DOC "SZIP compatible version of the AEC library")
|
||||
endif ()
|
||||
|
||||
# Handle default component(static) :
|
||||
if (NOT ${LIBAEC_PACKAGE_NAME}_FIND_COMPONENTS)
|
||||
set (${LIBAEC_PACKAGE_NAME}_FIND_COMPONENTS static)
|
||||
set (${LIBAEC_PACKAGE_NAME}_FIND_REQUIRED_static true)
|
||||
# Check version here
|
||||
if (libaec_INCLUDE_DIR AND libaec_LIBRARY)
|
||||
set(libaec_VERSION "@PROJECT_VERSION@")
|
||||
set(SZIP_VERSION "2.0.1")
|
||||
endif ()
|
||||
|
||||
# Handle requested components:
|
||||
list (REMOVE_DUPLICATES ${LIBAEC_PACKAGE_NAME}_FIND_COMPONENTS)
|
||||
foreach (comp IN LISTS ${LIBAEC_PACKAGE_NAME}_FIND_COMPONENTS)
|
||||
list (FIND ${LIBAEC_PACKAGE_NAME}_EXPORT_LIBRARIES "@LIBAEC_LIB_CORENAME@-${comp}" HAVE_COMP)
|
||||
if (${HAVE_COMP} LESS 0)
|
||||
set (${LIBAEC_PACKAGE_NAME}_${comp}_FOUND 0)
|
||||
else ()
|
||||
set (${LIBAEC_PACKAGE_NAME}_${comp}_FOUND 1)
|
||||
string(TOUPPER ${LIBAEC_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY)
|
||||
set (${COMP_LIBRARY} ${${COMP_LIBRARY}} @LIBAEC_LIB_CORENAME@-${comp})
|
||||
include(FindPackageHandleStandardArgs)
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_CONFIG "${CMAKE_CURRENT_LIST_FILE}")
|
||||
find_package_handle_standard_args(libaec
|
||||
FOUND_VAR libaec_FOUND
|
||||
REQUIRED_VARS libaec_LIBRARY libaec_INCLUDE_DIR SZIP_LIBRARY SZIP_INCLUDE_DIR
|
||||
VERSION_VAR libaec_VERSION
|
||||
CONFIG_MODE
|
||||
)
|
||||
|
||||
if (libaec_FOUND)
|
||||
if (libaec_USE_STATIC_LIBS)
|
||||
add_library(libaec::aec STATIC IMPORTED)
|
||||
else ()
|
||||
add_library(libaec::aec SHARED IMPORTED)
|
||||
target_compile_definitions(libaec::aec INTERFACE LIBAEC_SHARED)
|
||||
if (MSVC)
|
||||
set_target_properties(libaec::aec PROPERTIES
|
||||
IMPORTED_IMPLIB "${libaec_LIBRARY}"
|
||||
)
|
||||
endif ()
|
||||
endforeach ()
|
||||
endif ()
|
||||
set_target_properties(libaec::aec PROPERTIES
|
||||
IMPORTED_LOCATION "${libaec_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${libaec_INCLUDE_DIR}"
|
||||
)
|
||||
|
||||
check_required_components (${LIBAEC_PACKAGE_NAME})
|
||||
# SZIP
|
||||
if (libaec_USE_STATIC_LIBS)
|
||||
add_library(libaec::sz STATIC IMPORTED)
|
||||
else ()
|
||||
add_library(libaec::sz SHARED IMPORTED)
|
||||
target_compile_definitions(libaec::sz INTERFACE LIBAEC_SHARED)
|
||||
if (MSVC)
|
||||
set_target_properties(libaec::sz PROPERTIES
|
||||
IMPORTED_IMPLIB "${SZIP_LIBRARY}"
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
set_target_properties(libaec::sz PROPERTIES
|
||||
IMPORTED_LOCATION "${SZIP_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${SZIP_INCLUDE_DIR}"
|
||||
)
|
||||
|
||||
# Set SZIP variables.
|
||||
set(SZIP_FOUND TRUE)
|
||||
set(SZIP_LIBRARIES "${SZIP_LIBRARY}")
|
||||
endif ()
|
||||
|
||||
mark_as_advanced(
|
||||
libaec_LIBRARY
|
||||
libaec_INCLUDE_DIR
|
||||
SZIP_LIBRARY
|
||||
SZIP_INCLUDE_DIR
|
||||
)
|
||||
|
@ -1,5 +1,9 @@
|
||||
cmake_minimum_required (VERSION 3.12)
|
||||
PROJECT (ZLIB C)
|
||||
cmake_minimum_required(VERSION 3.12.0)
|
||||
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
|
||||
|
||||
project(ZLIB C)
|
||||
|
||||
set(VERSION "1.3")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Basic ZLIB stuff here
|
||||
@ -16,12 +20,6 @@ if (WINDOWS)
|
||||
set (HAVE_STDDEF_H 1)
|
||||
set (HAVE_SYS_TYPES_H 1)
|
||||
endif ()
|
||||
#
|
||||
# Check for unistd.h
|
||||
#
|
||||
check_include_file(unistd.h Z_HAVE_UNISTD_H)
|
||||
CHECK_FUNCTION_EXISTS (memcpy HAVE_MEMCPY)
|
||||
CHECK_FUNCTION_EXISTS (vsnprintf HAVE_VSNPRINTF)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Define some CMake variables for use later in the project
|
||||
@ -29,66 +27,6 @@ CHECK_FUNCTION_EXISTS (vsnprintf HAVE_VSNPRINTF)
|
||||
set (ZLIB_RESOURCES_DIR ${HDF_RESOURCES_DIR}/ZLIB)
|
||||
set (ZLIB_SRC_DIR ${ZLIB_SOURCE_DIR})
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set the core names of all the libraries
|
||||
#-----------------------------------------------------------------------------
|
||||
set (ZLIB_LIB_CORENAME "zlib")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set the true names of all the libraries if customized by external project
|
||||
#-----------------------------------------------------------------------------
|
||||
set (ZLIB_LIB_NAME "${ZLIB_EXTERNAL_LIB_PREFIX}${ZLIB_LIB_CORENAME}")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set the target names of all the libraries
|
||||
#-----------------------------------------------------------------------------
|
||||
set (ZLIB_LIB_TARGET "${ZLIB_LIB_CORENAME}-static")
|
||||
|
||||
set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc)
|
||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein ${ZLIB_PC} @ONLY)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Generate the zconf.h file containing user settings needed by compilation
|
||||
#-----------------------------------------------------------------------------
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
|
||||
|
||||
if (DEFINED ADDITIONAL_CMAKE_PREFIX_PATH AND EXISTS "${ADDITIONAL_CMAKE_PREFIX_PATH}")
|
||||
set (CMAKE_PREFIX_PATH ${ADDITIONAL_CMAKE_PREFIX_PATH} ${CMAKE_PREFIX_PATH})
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# parse the full version number from zlib.h and include in ZLIB_VERS_INFO
|
||||
#-----------------------------------------------------------------------------
|
||||
file (READ ${ZLIB_SRC_DIR}/zlib.h _zlib_h_contents)
|
||||
string (REGEX REPLACE ".*#define[ \t]+ZLIB_VER_MAJOR[ \t]+([0-9]*).*$"
|
||||
"\\1" ZLIB_VERS_MAJOR ${_zlib_h_contents})
|
||||
string (REGEX REPLACE ".*#define[ \t]+ZLIB_VER_MINOR[ \t]+([0-9]*).*$"
|
||||
"\\1" ZLIB_VERS_MINOR ${_zlib_h_contents})
|
||||
string (REGEX REPLACE ".*#define[ \t]+ZLIB_VER_REVISION[ \t]+([0-9]*).*$"
|
||||
"\\1" ZLIB_VERS_RELEASE ${_zlib_h_contents})
|
||||
string (REGEX REPLACE ".*#define[ \t]+ZLIB_VER_SUBREVISION[ \t]+([0-9]*).*$"
|
||||
"\\1" ZLIB_VERS_SUBRELEASE ${_zlib_h_contents})
|
||||
#message (STATUS "VERSION: ${ZLIB_VERS_MAJOR}.${ZLIB_VERS_MINOR}.${ZLIB_VERS_RELEASE}-${ZLIB_VERS_SUBRELEASE}")
|
||||
string (REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([0-9A-Za-z.]+)\".*"
|
||||
"\\1" ZLIB_FULL_VERSION ${_zlib_h_contents})
|
||||
#message (STATUS "VERSION: ${ZLIB_FULL_VERSION}")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
set (ZLIB_PACKAGE "zlib")
|
||||
set (ZLIB_PACKAGE_NAME "ZLIB")
|
||||
set (ZLIB_PACKAGE_VERSION "${ZLIB_VERS_MAJOR}.${ZLIB_VERS_MINOR}")
|
||||
set (ZLIB_PACKAGE_VERSION_MAJOR "${ZLIB_VERS_MAJOR}.${ZLIB_VERS_MINOR}")
|
||||
set (ZLIB_PACKAGE_VERSION_MINOR "${ZLIB_VERS_RELEASE}")
|
||||
set (ZLIB_PACKAGE_STRING "${ZLIB_PACKAGE_NAME} ${ZLIB_PACKAGE_VERSION}-${ZLIB_VERS_SUBRELEASE}")
|
||||
set (ZLIB_PACKAGE_TARNAME "zlib")
|
||||
set (ZLIB_PACKAGE_URL "http://www.hdfgroup.org")
|
||||
set (ZLIB_PACKAGE_BUGREPORT "help@hdfgroup.org")
|
||||
set (ZLIB_PACKAGE_SOVERSION "${ZLIB_VERS_MAJOR}.${ZLIB_VERS_MINOR}.${ZLIB_VERS_RELEASE}")
|
||||
set (ZLIB_PACKAGE_SOVERSION_MAJOR "${ZLIB_VERS_MAJOR}")
|
||||
|
||||
|
||||
HDF_DIR_PATHS(${ZLIB_PACKAGE_NAME})
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Targets built within this project are exported at Install time for use
|
||||
# by other projects
|
||||
@ -97,51 +35,9 @@ if (NOT ZLIB_EXPORTED_TARGETS)
|
||||
set (ZLIB_EXPORTED_TARGETS "zlib-targets")
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# To include a library in the list exported by the project AT BUILD TIME,
|
||||
# add it to this variable. This is NOT used by Make Install, but for projects
|
||||
# which include zlib as a sub-project within their build tree
|
||||
#-----------------------------------------------------------------------------
|
||||
set_global_variable (ZLIB_LIBRARIES_TO_EXPORT "")
|
||||
|
||||
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# When building utility executables that generate other (source) files :
|
||||
# we make use of the following variables defined in the root CMakeLists.
|
||||
# Certain systems may add /Debug or /Release to output paths
|
||||
# and we need to call the executable from inside the CMake configuration
|
||||
#-----------------------------------------------------------------------------
|
||||
set (EXE_EXT "")
|
||||
if (WIN32)
|
||||
set (EXE_EXT ".exe")
|
||||
add_definitions (-D_BIND_TO_CURRENT_VCLIBS_VERSION=1)
|
||||
add_definitions (-D_CRT_SECURE_NO_WARNINGS)
|
||||
add_definitions (-D_CONSOLE)
|
||||
add_definitions (-D_CRT_NONSTDC_NO_DEPRECATE)
|
||||
endif ()
|
||||
|
||||
if (MSVC)
|
||||
set (CMAKE_MFC_FLAG 0)
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Compiler specific flags : Shouldn't there be compiler tests for these
|
||||
#-----------------------------------------------------------------------------
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -Wno-strict-prototypes -Wno-implicit-function-declaration")
|
||||
endif ()
|
||||
if (CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_C_COMPILER_ID MATCHES "[Cc]lang")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -Wno-implicit-function-declaration")
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# This is in here to help some of the GCC based IDES like Eclipse
|
||||
# and code blocks parse the compiler errors and warnings better.
|
||||
#-----------------------------------------------------------------------------
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fmessage-length=0")
|
||||
endif ()
|
||||
HDF_DIR_PATHS(ZLIB)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# All libs/tests/examples need the main include directories
|
||||
@ -150,13 +46,79 @@ set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES
|
||||
"${ZLIB_BINARY_DIR};${ZLIB_SOURCE_DIR};${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
|
||||
)
|
||||
|
||||
include(CheckTypeSize)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckIncludeFile)
|
||||
include(CheckCSourceCompiles)
|
||||
|
||||
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
|
||||
check_include_file(stdint.h HAVE_STDINT_H)
|
||||
check_include_file(stddef.h HAVE_STDDEF_H)
|
||||
|
||||
#
|
||||
# Check to see if we have large file support
|
||||
#
|
||||
set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1)
|
||||
# We add these other definitions here because CheckTypeSize.cmake
|
||||
# in CMake 2.4.x does not automatically do so and we want
|
||||
# compatibility with CMake 2.4.x.
|
||||
if(HAVE_SYS_TYPES_H)
|
||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H)
|
||||
endif()
|
||||
if(HAVE_STDINT_H)
|
||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H)
|
||||
endif()
|
||||
if(HAVE_STDDEF_H)
|
||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H)
|
||||
endif()
|
||||
check_type_size(off64_t OFF64_T)
|
||||
if(HAVE_OFF64_T)
|
||||
add_definitions(-D_LARGEFILE64_SOURCE=1)
|
||||
endif()
|
||||
set(CMAKE_REQUIRED_DEFINITIONS) # clear variable
|
||||
|
||||
#
|
||||
# Check for fseeko
|
||||
#
|
||||
check_function_exists(fseeko HAVE_FSEEKO)
|
||||
if(NOT HAVE_FSEEKO)
|
||||
add_definitions(-DNO_FSEEKO)
|
||||
endif()
|
||||
|
||||
#
|
||||
# Check for unistd.h
|
||||
#
|
||||
check_include_file(unistd.h Z_HAVE_UNISTD_H)
|
||||
|
||||
if(MSVC)
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
add_definitions (-D_BIND_TO_CURRENT_VCLIBS_VERSION=1)
|
||||
add_definitions (-D_CRT_SECURE_NO_WARNINGS)
|
||||
add_definitions (-D_CONSOLE)
|
||||
add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
|
||||
# If we're doing an out of source build and the user has a zconf.h
|
||||
# in their source tree...
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h)
|
||||
message(STATUS "Renaming")
|
||||
message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h")
|
||||
message(STATUS "to 'zconf.h.included' because this file is included with zlib")
|
||||
message(STATUS "but CMake generates it automatically in the build directory.")
|
||||
file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included)
|
||||
endif()
|
||||
endif()
|
||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein
|
||||
${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
|
||||
|
||||
|
||||
#============================================================================
|
||||
# zlib
|
||||
#============================================================================
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Define zlib Library
|
||||
#-----------------------------------------------------------------------------
|
||||
set(ZLIB_PUBLIC_HDRS
|
||||
${CMAKE_CURRENT_BINARY_DIR}/zconf.h
|
||||
zlib.h
|
||||
@ -190,77 +152,47 @@ set(ZLIB_SRCS
|
||||
zutil.c
|
||||
)
|
||||
|
||||
if(NOT MINGW)
|
||||
set(ZLIB_DLL_SRCS
|
||||
win32/zlib1.rc # If present will override custom build rule below.
|
||||
)
|
||||
endif()
|
||||
# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION
|
||||
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents)
|
||||
string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*"
|
||||
"\\1" ZLIB_FULL_VERSION ${_zlib_h_contents})
|
||||
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
if(ASM686)
|
||||
set(ZLIB_ASMS contrib/asm686/match.S)
|
||||
elseif (AMD64)
|
||||
set(ZLIB_ASMS contrib/amd64/amd64-match.S)
|
||||
endif ()
|
||||
|
||||
if(ZLIB_ASMS)
|
||||
add_definitions(-DASMV)
|
||||
set_source_files_properties (${ZLIB_ASMS} PROPERTIES LANGUAGE C COMPILE_FLAGS -DNO_UNDERLINE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
if(ASM686)
|
||||
enable_language(ASM_MASM)
|
||||
set(ZLIB_ASMS
|
||||
contrib/masmx86/inffas32.asm
|
||||
contrib/masmx86/match686.asm
|
||||
)
|
||||
elseif (AMD64)
|
||||
enable_language(ASM_MASM)
|
||||
set(ZLIB_ASMS
|
||||
contrib/masmx64/gvmat64.asm
|
||||
contrib/masmx64/inffasx64.asm
|
||||
)
|
||||
endif()
|
||||
|
||||
if(ZLIB_ASMS)
|
||||
add_definitions(-DASMV -DASMINF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(MINGW)
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
|
||||
COMMAND ${CMAKE_RC_COMPILER}
|
||||
-D GCC_WINDRES
|
||||
-I ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
-I ${CMAKE_CURRENT_BINARY_DIR}
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
|
||||
-i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc)
|
||||
set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
|
||||
endif()
|
||||
|
||||
add_library (${ZLIB_LIB_TARGET} STATIC ${ZLIB_SRCS} ${ZLIB_PRIVATE_HDRS} ${ZLIB_PUBLIC_HDRS})
|
||||
add_library(zlib-static STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
||||
if (MSVC AND CMAKE_CL_64)
|
||||
set_target_properties (${ZLIB_LIB_TARGET} PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
|
||||
set_target_properties (zlib-static PROPERTIES STATIC_LIBRARY_FLAGS "/machine:x64")
|
||||
endif ()
|
||||
target_include_directories(${ZLIB_LIB_TARGET} PRIVATE "${CMAKE_BINARY_DIR}")
|
||||
TARGET_C_PROPERTIES (${ZLIB_LIB_TARGET} STATIC)
|
||||
target_link_libraries (${ZLIB_LIB_TARGET} PRIVATE ${LINK_LIBS})
|
||||
H5_SET_LIB_OPTIONS (${ZLIB_LIB_TARGET} ${ZLIB_LIB_NAME} STATIC 0)
|
||||
set_target_properties(${ZLIB_LIB_TARGET} PROPERTIES
|
||||
target_include_directories(zlib-static PRIVATE "${CMAKE_BINARY_DIR}")
|
||||
set_target_properties(zlib-static PROPERTIES
|
||||
PUBLIC_HEADER ""
|
||||
LINKER_LANGUAGE C
|
||||
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
|
||||
)
|
||||
set_global_variable (ZLIB_LIBRARIES_TO_EXPORT ${ZLIB_LIB_TARGET})
|
||||
set (install_targets ${ZLIB_LIB_TARGET})
|
||||
set_global_variable (ZLIB_LIBRARIES_TO_EXPORT "zlib-static")
|
||||
set (install_targets zlib-static)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Compiler specific flags : Shouldn't there be compiler tests for these
|
||||
#-----------------------------------------------------------------------------
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
target_compile_options(zlib-static PRIVATE -Wno-strict-prototypes -Wno-implicit-function-declaration)
|
||||
endif ()
|
||||
if (CMAKE_C_COMPILER_ID MATCHES "IntelLLVM" OR CMAKE_C_COMPILER_ID MATCHES "[Cc]lang")
|
||||
target_compile_options(zlib-static PRIVATE -Wno-implicit-function-declaration)
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# This is in here to help some of the GCC based IDES like Eclipse
|
||||
# and code blocks parse the compiler errors and warnings better.
|
||||
#-----------------------------------------------------------------------------
|
||||
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
target_compile_options(zlib-static PRIVATE -fmessage-length=0)
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Add Target(s) to CMake Install for import into other projects
|
||||
#-----------------------------------------------------------------------------
|
||||
if (ZLIB_EXPORTED_TARGETS)
|
||||
INSTALL_TARGET_PDB (${ZLIB_LIB_TARGET} ${ZLIB_INSTALL_BIN_DIR} libraries)
|
||||
INSTALL_TARGET_PDB (zlib-static ${ZLIB_INSTALL_BIN_DIR} libraries)
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
@ -277,57 +209,6 @@ endif ()
|
||||
|
||||
include (CMakePackageConfigHelpers)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Check for Installation Utilities
|
||||
#-----------------------------------------------------------------------------
|
||||
if (WIN32)
|
||||
set (PF_ENV_EXT "(x86)")
|
||||
find_program (NSIS_EXECUTABLE NSIS.exe PATHS "$ENV{ProgramFiles}\\NSIS" "$ENV{ProgramFiles${PF_ENV_EXT}}\\NSIS")
|
||||
if(NOT CPACK_WIX_ROOT)
|
||||
file(TO_CMAKE_PATH "$ENV{WIX}" CPACK_WIX_ROOT)
|
||||
endif ()
|
||||
find_program (WIX_EXECUTABLE candle PATHS "${CPACK_WIX_ROOT}/bin")
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Add Target(s) to CMake Install for import into other projects
|
||||
#-----------------------------------------------------------------------------
|
||||
if (NOT ZLIB_EXTERNALLY_CONFIGURED)
|
||||
install (
|
||||
EXPORT ${ZLIB_EXPORTED_TARGETS}
|
||||
DESTINATION ${ZLIB_INSTALL_CMAKE_DIR}
|
||||
FILE ${ZLIB_PACKAGE}${ZLIB_PACKAGE_EXT}-targets.cmake
|
||||
NAMESPACE ${PACKAGE_NAMESPACE}
|
||||
COMPONENT configinstall
|
||||
)
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Export all exported targets to the build tree for use by parent project
|
||||
#-----------------------------------------------------------------------------
|
||||
if (NOT ZLIB_EXTERNALLY_CONFIGURED)
|
||||
export (
|
||||
TARGETS ${ZLIB_LIBRARIES_TO_EXPORT} ${ZLIB_LIB_DEPENDENCIES}
|
||||
FILE ${ZLIB_PACKAGE}${ZLIB_PACKAGE_EXT}-targets.cmake
|
||||
NAMESPACE ${PACKAGE_NAMESPACE}
|
||||
)
|
||||
export (PACKAGE ${ZLIB_PACKAGE}${ZLIB_PACKAGE_EXT})
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set includes needed for build
|
||||
#-----------------------------------------------------------------------------
|
||||
set (ZLIB_INCLUDES_BUILD_TIME
|
||||
${ZLIB_SRC_DIR} ${ZLIB_BINARY_DIR}
|
||||
)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set variables needed for installation
|
||||
#-----------------------------------------------------------------------------
|
||||
set (ZLIB_VERSION_STRING ${ZLIB_PACKAGE_VERSION})
|
||||
set (ZLIB_VERSION_MAJOR ${ZLIB_PACKAGE_VERSION_MAJOR})
|
||||
set (ZLIB_VERSION_MINOR ${ZLIB_PACKAGE_VERSION_MINOR})
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configure the zlib-config.cmake file for the build directory
|
||||
#-----------------------------------------------------------------------------
|
||||
@ -336,7 +217,7 @@ set (SHARE_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/${ZLIB_INSTALL_CMAKE_DIR}" )
|
||||
set (CURRENT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
|
||||
configure_package_config_file (
|
||||
${ZLIB_RESOURCES_DIR}/zlib-config.cmake.in
|
||||
"${ZLIB_BINARY_DIR}/${ZLIB_PACKAGE}${ZLIB_PACKAGE_EXT}-config.cmake"
|
||||
"${ZLIB_BINARY_DIR}/zlib-config.cmake"
|
||||
INSTALL_DESTINATION "${ZLIB_INSTALL_CMAKE_DIR}"
|
||||
PATH_VARS INCLUDE_INSTALL_DIR SHARE_INSTALL_DIR CURRENT_BUILD_DIR
|
||||
INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
@ -350,13 +231,13 @@ set (SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${ZLIB_INSTALL_CMAKE_DIR}" )
|
||||
set (CURRENT_BUILD_DIR "${CMAKE_INSTALL_PREFIX}" )
|
||||
configure_package_config_file (
|
||||
${ZLIB_RESOURCES_DIR}/zlib-config.cmake.in
|
||||
"${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${ZLIB_PACKAGE}${ZLIB_PACKAGE_EXT}-config.cmake"
|
||||
"${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/zlib-config.cmake"
|
||||
INSTALL_DESTINATION "${ZLIB_INSTALL_CMAKE_DIR}"
|
||||
PATH_VARS INCLUDE_INSTALL_DIR SHARE_INSTALL_DIR CURRENT_BUILD_DIR
|
||||
)
|
||||
if (NOT ZLIB_EXTERNALLY_CONFIGURED)
|
||||
install (
|
||||
FILES ${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${ZLIB_PACKAGE}${ZLIB_PACKAGE_EXT}-config.cmake
|
||||
FILES ${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/zlib-config.cmake
|
||||
DESTINATION ${ZLIB_INSTALL_CMAKE_DIR}
|
||||
COMPONENT configinstall
|
||||
)
|
||||
@ -368,160 +249,37 @@ endif ()
|
||||
if (NOT ZLIB_EXTERNALLY_CONFIGURED)
|
||||
configure_file (
|
||||
${ZLIB_RESOURCES_DIR}/zlib-config-version.cmake.in
|
||||
${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${ZLIB_PACKAGE}${ZLIB_PACKAGE_EXT}-config-version.cmake @ONLY
|
||||
${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/zlib-config-version.cmake @ONLY
|
||||
)
|
||||
install (
|
||||
FILES ${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${ZLIB_PACKAGE}${ZLIB_PACKAGE_EXT}-config-version.cmake
|
||||
FILES ${ZLIB_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/zlib-config-version.cmake
|
||||
DESTINATION ${ZLIB_INSTALL_CMAKE_DIR}
|
||||
COMPONENT configinstall
|
||||
)
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Check for Installation Utilities
|
||||
#-----------------------------------------------------------------------------
|
||||
if (WIN32)
|
||||
set (PF_ENV_EXT "(x86)")
|
||||
find_program (NSIS_EXECUTABLE NSIS.exe PATHS "$ENV{ProgramFiles}\\NSIS" "$ENV{ProgramFiles${PF_ENV_EXT}}\\NSIS")
|
||||
if(NOT CPACK_WIX_ROOT)
|
||||
file(TO_CMAKE_PATH "$ENV{WIX}" CPACK_WIX_ROOT)
|
||||
endif()
|
||||
find_program (WIX_EXECUTABLE candle PATHS "${CPACK_WIX_ROOT}/bin")
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configure the LICENSE.txt file for the windows binary package
|
||||
#-----------------------------------------------------------------------------
|
||||
if (WIN32)
|
||||
configure_file (${ZLIB_SOURCE_DIR}/LICENSE ${ZLIB_BINARY_DIR}/ZLIB_LICENSE.txt @ONLY)
|
||||
else ()
|
||||
configure_file (${ZLIB_SOURCE_DIR}/LICENSE ${ZLIB_BINARY_DIR}/ZLIB_LICENSE @ONLY)
|
||||
endif ()
|
||||
configure_file (${ZLIB_SOURCE_DIR}/README ${ZLIB_BINARY_DIR}/ZLIB_README @ONLY)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set the cpack variables
|
||||
# Add Target(s) to CMake Install for import into other projects
|
||||
#-----------------------------------------------------------------------------
|
||||
if (NOT ZLIB_EXTERNALLY_CONFIGURED)
|
||||
set (CPACK_PACKAGE_VENDOR "HDF_Group")
|
||||
set (CPACK_PACKAGE_NAME "${ZLIB_PACKAGE_NAME}")
|
||||
if (NOT WIN32 OR ZLIB_VERS_SUBRELEASE MATCHES "^[0-9]+$")
|
||||
set (CPACK_PACKAGE_VERSION "${ZLIB_PACKAGE_VERSION_STRING}")
|
||||
else ()
|
||||
set (CPACK_PACKAGE_VERSION "${ZLIB_PACKAGE_VERSION}")
|
||||
endif ()
|
||||
set (CPACK_PACKAGE_VERSION_MAJOR "${ZLIB_PACKAGE_VERSION_MAJOR}")
|
||||
set (CPACK_PACKAGE_VERSION_MINOR "${ZLIB_PACKAGE_VERSION_MINOR}")
|
||||
set (CPACK_PACKAGE_VERSION_PATCH "")
|
||||
set (CPACK_RESOURCE_FILE_LICENSE "${ZLIB_BINARY_DIR}/ZLIB_LICENSE")
|
||||
set (CPACK_PACKAGE_DESCRIPTION_FILE "${ZLIB_BINARY_DIR}/ZLIB_README")
|
||||
set (CPACK_RESOURCE_FILE_README "${ZLIB_BINARY_DIR}/ZLIB_README")
|
||||
set (CPACK_PACKAGE_RELOCATABLE TRUE)
|
||||
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "zlib Installation")
|
||||
set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}")
|
||||
|
||||
set (CPACK_GENERATOR "TGZ")
|
||||
if (WIN32)
|
||||
set (CPACK_GENERATOR "ZIP")
|
||||
|
||||
if (NSIS_EXECUTABLE)
|
||||
list (APPEND CPACK_GENERATOR "NSIS")
|
||||
endif ()
|
||||
# Installers for 32- vs. 64-bit CMake:
|
||||
# - Root install directory (displayed to end user at installer-run time)
|
||||
# - "NSIS package/display name" (text used in the installer GUI)
|
||||
# - Registry key used to store info about the installation
|
||||
set (CPACK_NSIS_PACKAGE_NAME "${ZLIB_PACKAGE_STRING}")
|
||||
if (CMAKE_CL_64)
|
||||
set (CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
|
||||
set (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION} (Win64)")
|
||||
else ()
|
||||
set (CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
|
||||
set (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
|
||||
endif ()
|
||||
set (CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_PACKAGE_NAME}")
|
||||
set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}\\\\${CPACK_PACKAGE_NAME}\\\\${CPACK_PACKAGE_VERSION}")
|
||||
set (CPACK_NSIS_CONTACT "${ZLIB_PACKAGE_BUGREPORT}")
|
||||
set (CPACK_NSIS_MODIFY_PATH ON)
|
||||
set (CPACK_NSIS_PACKAGE_NAME "ZLIB ${ZLIB_PACKAGE_VERSION}")
|
||||
if (WIX_EXECUTABLE)
|
||||
list (APPEND CPACK_GENERATOR "WIX")
|
||||
endif ()
|
||||
#WiX variables
|
||||
set (CPACK_WIX_UNINSTALL "1")
|
||||
set (CPACK_RESOURCE_FILE_LICENSE "${ZLIB_BINARY_DIR}/ZLIB_LICENSE.txt")
|
||||
elseif (APPLE)
|
||||
list (APPEND CPACK_GENERATOR "STGZ")
|
||||
list (APPEND CPACK_GENERATOR "DragNDrop")
|
||||
set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
|
||||
set (CPACK_PACKAGING_INSTALL_PREFIX "/${CPACK_PACKAGE_INSTALL_DIRECTORY}")
|
||||
#set (CPACK_PACKAGE_ICON "${ZLIB_RESOURCES_DIR}/hdf.icns")
|
||||
|
||||
option (ZLIB_PACK_MACOSX_FRAMEWORK "Package the ZLIB Library in a Framework" OFF)
|
||||
if (ZLIB_PACK_MACOSX_FRAMEWORK AND ZLIB_BUILD_FRAMEWORKS)
|
||||
set (CPACK_BUNDLE_NAME "${ZLIB_PACKAGE_STRING}")
|
||||
set (CPACK_BUNDLE_LOCATION "/") # make sure CMAKE_INSTALL_PREFIX ends in /
|
||||
set (CMAKE_INSTALL_PREFIX "/${CPACK_BUNDLE_NAME}.framework/Versions/${CPACK_PACKAGE_VERSION}/${CPACK_PACKAGE_NAME}/")
|
||||
set (CPACK_SHORT_VERSION_STRING "${CPACK_PACKAGE_VERSION}")
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configure the Info.plist file for the install bundle
|
||||
#-----------------------------------------------------------------------------
|
||||
configure_file (
|
||||
${ZLIB_RESOURCES_DIR}/CPack.Info.plist.in
|
||||
${ZLIB_BINARY_DIR}/CMakeFiles/Info.plist @ONLY
|
||||
)
|
||||
configure_file (
|
||||
${ZLIB_RESOURCES_DIR}/PkgInfo.in
|
||||
${ZLIB_BINARY_DIR}/CMakeFiles/PkgInfo @ONLY
|
||||
)
|
||||
install (
|
||||
FILES ${ZLIB_BINARY_DIR}/CMakeFiles/PkgInfo
|
||||
DESTINATION ..
|
||||
)
|
||||
endif ()
|
||||
else ()
|
||||
list (APPEND CPACK_GENERATOR "STGZ")
|
||||
set (CPACK_PACKAGING_INSTALL_PREFIX "/${CPACK_PACKAGE_INSTALL_DIRECTORY}")
|
||||
set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
|
||||
|
||||
set (CPACK_DEBIAN_PACKAGE_SECTION "Libraries")
|
||||
set (CPACK_DEBIAN_PACKAGE_MAINTAINER "${ZLIB_PACKAGE_BUGREPORT}")
|
||||
|
||||
# list (APPEND CPACK_GENERATOR "RPM")
|
||||
set (CPACK_RPM_PACKAGE_RELEASE "1")
|
||||
set (CPACK_RPM_COMPONENT_INSTALL ON)
|
||||
set (CPACK_RPM_PACKAGE_RELOCATABLE ON)
|
||||
endif ()
|
||||
|
||||
# By default, do not warn when built on machines using only VS Express:
|
||||
if (NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
|
||||
set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
|
||||
endif ()
|
||||
include (InstallRequiredSystemLibraries)
|
||||
|
||||
set (CPACK_INSTALL_CMAKE_PROJECTS "${ZLIB_BINARY_DIR};ZLIB;libraries;/")
|
||||
set (CPACK_INSTALL_CMAKE_PROJECTS "${ZLIB_BINARY_DIR};ZLIB;configinstall;/")
|
||||
|
||||
set (CPACK_ALL_INSTALL_TYPES Full Developer User)
|
||||
set (CPACK_INSTALL_TYPE_FULL_DISPLAY_NAME "Everything")
|
||||
|
||||
set(CPACK_COMPONENTS_ALL libraries headers documents configinstall)
|
||||
|
||||
include (CPack)
|
||||
|
||||
cpack_add_component_group(Runtime)
|
||||
|
||||
cpack_add_component (libraries
|
||||
DISPLAY_NAME "ZLIB Libraries"
|
||||
REQUIRED
|
||||
GROUP Runtime
|
||||
INSTALL_TYPES Full Developer User
|
||||
install (
|
||||
EXPORT ${ZLIB_EXPORTED_TARGETS}
|
||||
DESTINATION ${ZLIB_INSTALL_CMAKE_DIR}
|
||||
FILE zlib-targets.cmake
|
||||
NAMESPACE ${PACKAGE_NAMESPACE}
|
||||
COMPONENT configinstall
|
||||
)
|
||||
cpack_add_component (configinstall
|
||||
DISPLAY_NAME "ZLIB CMake files"
|
||||
DEPENDS libraries
|
||||
GROUP Development
|
||||
INSTALL_TYPES Full Developer User
|
||||
)
|
||||
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Export all exported targets to the build tree for use by parent project
|
||||
#-----------------------------------------------------------------------------
|
||||
if (NOT ZLIB_EXTERNALLY_CONFIGURED)
|
||||
export (
|
||||
TARGETS ${ZLIB_LIBRARIES_TO_EXPORT}
|
||||
FILE zlib-targets.cmake
|
||||
NAMESPACE ${PACKAGE_NAMESPACE}
|
||||
)
|
||||
export (PACKAGE zlib)
|
||||
endif ()
|
||||
|
||||
|
@ -40,6 +40,9 @@
|
||||
# define crc32 z_crc32
|
||||
# define crc32_combine z_crc32_combine
|
||||
# define crc32_combine64 z_crc32_combine64
|
||||
# define crc32_combine_gen z_crc32_combine_gen
|
||||
# define crc32_combine_gen64 z_crc32_combine_gen64
|
||||
# define crc32_combine_op z_crc32_combine_op
|
||||
# define crc32_z z_crc32_z
|
||||
# define deflate z_deflate
|
||||
# define deflateBound z_deflateBound
|
||||
@ -240,7 +243,11 @@
|
||||
#endif
|
||||
|
||||
#ifdef Z_SOLO
|
||||
typedef unsigned long z_size_t;
|
||||
# ifdef _WIN64
|
||||
typedef unsigned long long z_size_t;
|
||||
# else
|
||||
typedef unsigned long z_size_t;
|
||||
# endif
|
||||
#else
|
||||
# define z_longlong long long
|
||||
# if defined(NO_SIZE_T)
|
||||
@ -351,6 +358,9 @@
|
||||
# ifdef FAR
|
||||
# undef FAR
|
||||
# endif
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# endif
|
||||
# include <windows.h>
|
||||
/* No need for _export, use ZLIB.DEF instead. */
|
||||
/* For complete Windows compatibility, use WINAPI, not __stdcall. */
|
||||
@ -469,11 +479,18 @@ typedef uLong FAR uLongf;
|
||||
# undef _LARGEFILE64_SOURCE
|
||||
#endif
|
||||
|
||||
#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
|
||||
# define Z_HAVE_UNISTD_H
|
||||
#ifndef Z_HAVE_UNISTD_H
|
||||
# ifdef __WATCOMC__
|
||||
# define Z_HAVE_UNISTD_H
|
||||
# endif
|
||||
#endif
|
||||
#ifndef Z_HAVE_UNISTD_H
|
||||
# if defined(_LARGEFILE64_SOURCE) && !defined(_WIN32)
|
||||
# define Z_HAVE_UNISTD_H
|
||||
# endif
|
||||
#endif
|
||||
#ifndef Z_SOLO
|
||||
# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
|
||||
# if defined(Z_HAVE_UNISTD_H)
|
||||
# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
|
||||
# ifdef VMS
|
||||
# include <unixio.h> /* for off_t */
|
||||
@ -509,7 +526,7 @@ typedef uLong FAR uLongf;
|
||||
#if !defined(_WIN32) && defined(Z_LARGE64)
|
||||
# define z_off64_t off64_t
|
||||
#else
|
||||
# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
|
||||
# if defined(_WIN32) && !defined(__GNUC__)
|
||||
# define z_off64_t __int64
|
||||
# else
|
||||
# define z_off64_t z_off_t
|
||||
|
@ -10,7 +10,6 @@ set (${ZLIB_PACKAGE_NAME}_VALID_COMPONENTS static shared)
|
||||
#-----------------------------------------------------------------------------
|
||||
# User Options
|
||||
#-----------------------------------------------------------------------------
|
||||
set (${ZLIB_PACKAGE_NAME}_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@)
|
||||
set (${ZLIB_PACKAGE_NAME}_EXPORT_LIBRARIES @ZLIB_LIBRARIES_TO_EXPORT@)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
1271
config/cmake/ZLIBNG/CMakeLists.txt
Normal file
1271
config/cmake/ZLIBNG/CMakeLists.txt
Normal file
File diff suppressed because it is too large
Load Diff
26
config/cmake/ZLIBNG/CPack.Info.plist.in
Normal file
26
config/cmake/ZLIBNG/CPack.Info.plist.in
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>@CPACK_PACKAGE_FILE_NAME@</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>@CPACK_BUNDLE_ICON@</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.@CPACK_PACKAGE_VENDOR@.@CPACK_PACKAGE_NAME@@CPACK_MODULE_VERSION_SUFFIX@</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>@CPACK_PACKAGE_VERSIO@</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>@CPACK_SHORT_VERSION_STRING@</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
206
config/cmake/ZLIBNG/zconf.h.in
Normal file
206
config/cmake/ZLIBNG/zconf.h.in
Normal file
@ -0,0 +1,206 @@
|
||||
/* zconf.h -- configuration of the zlib compression library
|
||||
* Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
#ifndef ZCONF_H
|
||||
#define ZCONF_H
|
||||
|
||||
#include "zlib_name_mangling.h"
|
||||
|
||||
#if !defined(_WIN32) && defined(__WIN32__)
|
||||
# define _WIN32
|
||||
#endif
|
||||
|
||||
/* Clang macro for detecting declspec support
|
||||
* https://clang.llvm.org/docs/LanguageExtensions.html#has-declspec-attribute
|
||||
*/
|
||||
#ifndef __has_declspec_attribute
|
||||
# define __has_declspec_attribute(x) 0
|
||||
#endif
|
||||
|
||||
#if defined(ZLIB_CONST) && !defined(z_const)
|
||||
# define z_const const
|
||||
#else
|
||||
# define z_const
|
||||
#endif
|
||||
|
||||
/* Maximum value for memLevel in deflateInit2 */
|
||||
#ifndef MAX_MEM_LEVEL
|
||||
# define MAX_MEM_LEVEL 9
|
||||
#endif
|
||||
|
||||
/* Maximum value for windowBits in deflateInit2 and inflateInit2.
|
||||
* WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
|
||||
* created by gzip. (Files created by minigzip can still be extracted by
|
||||
* gzip.)
|
||||
*/
|
||||
#ifndef MIN_WBITS
|
||||
# define MIN_WBITS 8 /* 256 LZ77 window */
|
||||
#endif
|
||||
#ifndef MAX_WBITS
|
||||
# define MAX_WBITS 15 /* 32K LZ77 window */
|
||||
#endif
|
||||
|
||||
/* The memory requirements for deflate are (in bytes):
|
||||
(1 << (windowBits+2)) + (1 << (memLevel+9))
|
||||
that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
|
||||
plus a few kilobytes for small objects. For example, if you want to reduce
|
||||
the default memory requirements from 256K to 128K, compile with
|
||||
make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
|
||||
Of course this will generally degrade compression (there's no free lunch).
|
||||
|
||||
The memory requirements for inflate are (in bytes) 1 << windowBits
|
||||
that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
|
||||
for small objects.
|
||||
*/
|
||||
|
||||
/* Type declarations */
|
||||
|
||||
|
||||
#ifndef OF /* function prototypes */
|
||||
# define OF(args) args
|
||||
#endif
|
||||
|
||||
#ifdef ZLIB_INTERNAL
|
||||
# define Z_INTERNAL ZLIB_INTERNAL
|
||||
#endif
|
||||
|
||||
/* If building or using zlib as a DLL, define ZLIB_DLL.
|
||||
* This is not mandatory, but it offers a little performance increase.
|
||||
*/
|
||||
#if defined(ZLIB_DLL) && (defined(_WIN32) || (__has_declspec_attribute(dllexport) && __has_declspec_attribute(dllimport)))
|
||||
# ifdef Z_INTERNAL
|
||||
# define Z_EXTERN extern __declspec(dllexport)
|
||||
# else
|
||||
# define Z_EXTERN extern __declspec(dllimport)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* If building or using zlib with the WINAPI/WINAPIV calling convention,
|
||||
* define ZLIB_WINAPI.
|
||||
* Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
|
||||
*/
|
||||
#if defined(ZLIB_WINAPI) && defined(_WIN32)
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# endif
|
||||
# include <windows.h>
|
||||
/* No need for _export, use ZLIB.DEF instead. */
|
||||
/* For complete Windows compatibility, use WINAPI, not __stdcall. */
|
||||
# define Z_EXPORT WINAPI
|
||||
# define Z_EXPORTVA WINAPIV
|
||||
#endif
|
||||
|
||||
#ifndef Z_EXTERN
|
||||
# define Z_EXTERN extern
|
||||
#endif
|
||||
#ifndef Z_EXPORT
|
||||
# define Z_EXPORT
|
||||
#endif
|
||||
#ifndef Z_EXPORTVA
|
||||
# define Z_EXPORTVA
|
||||
#endif
|
||||
|
||||
/* Conditional exports */
|
||||
#define ZNG_CONDEXPORT Z_INTERNAL
|
||||
|
||||
/* For backwards compatibility */
|
||||
|
||||
#ifndef ZEXTERN
|
||||
# define ZEXTERN Z_EXTERN
|
||||
#endif
|
||||
#ifndef ZEXPORT
|
||||
# define ZEXPORT Z_EXPORT
|
||||
#endif
|
||||
#ifndef ZEXPORTVA
|
||||
# define ZEXPORTVA Z_EXPORTVA
|
||||
#endif
|
||||
#ifndef FAR
|
||||
# define FAR
|
||||
#endif
|
||||
|
||||
/* Legacy zlib typedefs for backwards compatibility. Don't assume stdint.h is defined. */
|
||||
typedef unsigned char Byte;
|
||||
typedef Byte Bytef;
|
||||
|
||||
typedef unsigned int uInt; /* 16 bits or more */
|
||||
typedef unsigned long uLong; /* 32 bits or more */
|
||||
|
||||
typedef char charf;
|
||||
typedef int intf;
|
||||
typedef uInt uIntf;
|
||||
typedef uLong uLongf;
|
||||
|
||||
typedef void const *voidpc;
|
||||
typedef void *voidpf;
|
||||
typedef void *voidp;
|
||||
|
||||
typedef unsigned int z_crc_t;
|
||||
|
||||
#ifdef HAVE_UNISTD_H /* may be set to #if 1 by configure/cmake/etc */
|
||||
# define Z_HAVE_UNISTD_H
|
||||
#endif
|
||||
|
||||
#ifdef NEED_PTRDIFF_T /* may be set to #if 1 by configure/cmake/etc */
|
||||
typedef PTRDIFF_TYPE ptrdiff_t;
|
||||
#endif
|
||||
|
||||
#include <sys/types.h> /* for off_t */
|
||||
|
||||
#include <stddef.h> /* for wchar_t and NULL */
|
||||
|
||||
/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
|
||||
* "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
|
||||
* though the former does not conform to the LFS document), but considering
|
||||
* both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
|
||||
* equivalently requesting no 64-bit operations
|
||||
*/
|
||||
#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
|
||||
# undef _LARGEFILE64_SOURCE
|
||||
#endif
|
||||
|
||||
#if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
|
||||
# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
|
||||
# ifndef z_off_t
|
||||
# define z_off_t off_t
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
|
||||
# define Z_LFS64
|
||||
#endif
|
||||
|
||||
#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
|
||||
# define Z_LARGE64
|
||||
#endif
|
||||
|
||||
#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
|
||||
# define Z_WANT64
|
||||
#endif
|
||||
|
||||
#if !defined(SEEK_SET)
|
||||
# define SEEK_SET 0 /* Seek from beginning of file. */
|
||||
# define SEEK_CUR 1 /* Seek from current position. */
|
||||
# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
|
||||
#endif
|
||||
|
||||
#ifndef z_off_t
|
||||
# define z_off_t long
|
||||
#endif
|
||||
|
||||
#if !defined(_WIN32) && defined(Z_LARGE64)
|
||||
# define z_off64_t off64_t
|
||||
#else
|
||||
# if defined(__MSYS__)
|
||||
# define z_off64_t _off64_t
|
||||
# elif defined(_WIN32) && !defined(__GNUC__)
|
||||
# define z_off64_t __int64
|
||||
# else
|
||||
# define z_off64_t z_off_t
|
||||
# endif
|
||||
#endif
|
||||
|
||||
typedef size_t z_size_t;
|
||||
|
||||
#endif /* ZCONF_H */
|
42
config/cmake/ZLIBNG/zlib-config-version.cmake.in
Normal file
42
config/cmake/ZLIBNG/zlib-config-version.cmake.in
Normal file
@ -0,0 +1,42 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# ZLIB Version file for install directory
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
set (PACKAGE_VERSION "@ZLIB_VERSION_STRING@")
|
||||
|
||||
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
|
||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
else()
|
||||
if ("${PACKAGE_FIND_VERSION_MAJOR}" STREQUAL "@ZLIB_VERSION_MAJOR@")
|
||||
|
||||
# exact match for version @ZLIB_VERSION_MAJOR@.@ZLIB_VERSION_MINOR@
|
||||
if ("${PACKAGE_FIND_VERSION_MINOR}" STREQUAL "@ZLIB_VERSION_MINOR@")
|
||||
|
||||
# compatible with any version @ZLIB_VERSION_MAJOR@.@ZLIB_VERSION_MINOR@.x
|
||||
set (PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
|
||||
if ("${PACKAGE_FIND_VERSION_PATCH}" STREQUAL "@ZLIB_VERSION_RELEASE@")
|
||||
set (PACKAGE_VERSION_EXACT TRUE)
|
||||
|
||||
if ("${PACKAGE_FIND_VERSION_TWEAK}" STREQUAL "@ZLIB_VERSION_SUBRELEASE@")
|
||||
# not using this yet
|
||||
endif ()
|
||||
endif ()
|
||||
else ()
|
||||
set (PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
|
||||
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
|
||||
if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "@CMAKE_SIZEOF_VOID_P@")
|
||||
math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8")
|
||||
set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
|
||||
set(PACKAGE_VERSION_UNSUITABLE TRUE)
|
||||
endif()
|
||||
|
57
config/cmake/ZLIBNG/zlib-config.cmake.in
Normal file
57
config/cmake/ZLIBNG/zlib-config.cmake.in
Normal file
@ -0,0 +1,57 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# ZLIB Config file for compiling against ZLIB build directory
|
||||
#-----------------------------------------------------------------------------
|
||||
@PACKAGE_INIT@
|
||||
|
||||
string(TOUPPER @ZLIB_PACKAGE@ ZLIB_PACKAGE_NAME)
|
||||
|
||||
set (${ZLIB_PACKAGE_NAME}_VALID_COMPONENTS static shared)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# User Options
|
||||
#-----------------------------------------------------------------------------
|
||||
set (${ZLIB_PACKAGE_NAME}_EXPORT_LIBRARIES @ZLIB_LIBRARIES_TO_EXPORT@)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Directories
|
||||
#-----------------------------------------------------------------------------
|
||||
set (${ZLIB_PACKAGE_NAME}_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
|
||||
|
||||
set (${ZLIB_PACKAGE_NAME}_SHARE_DIR "@PACKAGE_SHARE_INSTALL_DIR@")
|
||||
set_and_check (${ZLIB_PACKAGE_NAME}_BUILD_DIR "@PACKAGE_CURRENT_BUILD_DIR@")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Version Strings
|
||||
#-----------------------------------------------------------------------------
|
||||
set (${ZLIB_PACKAGE_NAME}_VERSION_STRING @ZLIB_VERSION_STRING@)
|
||||
set (${ZLIB_PACKAGE_NAME}_VERSION_MAJOR @ZLIB_VERSION_MAJOR@)
|
||||
set (${ZLIB_PACKAGE_NAME}_VERSION_MINOR @ZLIB_VERSION_MINOR@)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Don't include targets if this file is being picked up by another
|
||||
# project which has already built ZLIB as a subproject
|
||||
#-----------------------------------------------------------------------------
|
||||
if (NOT TARGET "@ZLIB_PACKAGE@")
|
||||
include (@PACKAGE_SHARE_INSTALL_DIR@/@ZLIB_PACKAGE@@ZLIB_PACKAGE_EXT@-targets.cmake)
|
||||
endif ()
|
||||
|
||||
# Handle default component(static) :
|
||||
if (NOT ${ZLIB_PACKAGE_NAME}_FIND_COMPONENTS)
|
||||
set (${ZLIB_PACKAGE_NAME}_FIND_COMPONENTS static)
|
||||
set (${ZLIB_PACKAGE_NAME}_FIND_REQUIRED_static true)
|
||||
endif ()
|
||||
|
||||
# Handle requested components:
|
||||
list (REMOVE_DUPLICATES ${ZLIB_PACKAGE_NAME}_FIND_COMPONENTS)
|
||||
foreach (comp IN LISTS ${ZLIB_PACKAGE_NAME}_FIND_COMPONENTS)
|
||||
list (FIND ${ZLIB_PACKAGE_NAME}_EXPORT_LIBRARIES "@ZLIB_LIB_CORENAME@-${comp}" HAVE_COMP)
|
||||
if (${HAVE_COMP} LESS 0)
|
||||
set (${ZLIB_PACKAGE_NAME}_${comp}_FOUND 0)
|
||||
else ()
|
||||
set (${ZLIB_PACKAGE_NAME}_${comp}_FOUND 1)
|
||||
string(TOUPPER ${ZLIB_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY)
|
||||
set (${COMP_LIBRARY} ${${COMP_LIBRARY}} @ZLIB_LIB_CORENAME@-${comp})
|
||||
endif ()
|
||||
endforeach ()
|
||||
|
||||
check_required_components (${ZLIB_PACKAGE_NAME})
|
@ -53,12 +53,18 @@ set (ZLIB_USE_LOCALCONTENT ON CACHE BOOL "Use local file for ZLIB FetchContent"
|
||||
set (ZLIB_GIT_URL "https://github.com/madler/zlib.git" CACHE STRING "Use ZLIB from GitHub repository" FORCE)
|
||||
set (ZLIB_GIT_BRANCH "develop" CACHE STRING "" FORCE)
|
||||
|
||||
set (ZLIBNG_PACKAGE_NAME "zlib-ng" CACHE STRING "Name of ZLIBNG package" FORCE)
|
||||
set (ZLIBNG_TGZ_NAME "2.1.6.tar.gz" CACHE STRING "Use HDF5_ZLib from compressed file" FORCE)
|
||||
set (ZLIBNG_TGZ_ORIGPATH "https://github.com/zlib-ng/zlib-ng/archive/refs/tags" CACHE STRING "Use ZLIBNG from original location" FORCE)
|
||||
set (ZLIBNG_GIT_URL "https://github.com/zlib-ng/zlib-ng.git" CACHE STRING "Use ZLIBNG from GitHub repository" FORCE)
|
||||
set (ZLIBNG_GIT_BRANCH "develop" CACHE STRING "" FORCE)
|
||||
|
||||
set (LIBAEC_PACKAGE_NAME "libaec" CACHE STRING "Name of AEC SZIP package" FORCE)
|
||||
set (LIBAEC_TGZ_NAME "libaec-1.0.6.tar.gz" CACHE STRING "Use SZip AEC from compressed file" FORCE)
|
||||
set (LIBAEC_TGZ_ORIGPATH "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6" CACHE STRING "Use LIBAEC from original location" FORCE)
|
||||
set (LIBAEC_TGZ_NAME "libaec-1.1.3.tar.gz" CACHE STRING "Use SZip AEC from compressed file" FORCE)
|
||||
set (LIBAEC_TGZ_ORIGPATH "https://github.com/MathisRosenhauer/libaec/releases/download/v1.1.3" CACHE STRING "Use LIBAEC from original location" FORCE)
|
||||
set (LIBAEC_USE_LOCALCONTENT ON CACHE BOOL "Use local file for LIBAEC FetchContent" FORCE)
|
||||
set (LIBAEC_GIT_URL "https://github.com/MathisRosenhauer/libaec.git" CACHE STRING "Use LIBAEC from GitHub repository" FORCE)
|
||||
set (LIBAEC_GIT_BRANCH "v1.0.6" CACHE STRING "" FORCE)
|
||||
set (LIBAEC_GIT_BRANCH "v1.1.3" CACHE STRING "" FORCE)
|
||||
|
||||
########################
|
||||
# API test options
|
||||
|
@ -21,7 +21,7 @@ set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE)
|
||||
|
||||
set (HDF_PACKAGE_NAMESPACE "hdf5::" CACHE STRING "Name for HDF package namespace (can be empty)" FORCE)
|
||||
|
||||
set (HDF5_BUILD_CPP_LIB ON CACHE BOOL "Build HDF5 C++ Library" FORCE)
|
||||
set (HDF5_BUILD_CPP_LIB ON CACHE BOOL "Build C++ support" FORCE)
|
||||
|
||||
set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE)
|
||||
|
||||
@ -57,11 +57,21 @@ set (ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of ZLIB package" FORCE)
|
||||
set (ZLIB_TGZ_NAME "zlib-1.3.tar.gz" CACHE STRING "Use HDF5_ZLib from compressed file" FORCE)
|
||||
set (ZLIB_TGZ_ORIGPATH "https://github.com/madler/zlib/releases/download/v1.3" CACHE STRING "Use ZLIB from original location" FORCE)
|
||||
set (ZLIB_USE_LOCALCONTENT ON CACHE BOOL "Use local file for ZLIB FetchContent" FORCE)
|
||||
set (ZLIB_GIT_URL "https://github.com/madler/zlib.git" CACHE STRING "Use ZLIB from GitHub repository" FORCE)
|
||||
set (ZLIB_GIT_BRANCH "develop" CACHE STRING "" FORCE)
|
||||
|
||||
set (ZLIBNG_PACKAGE_NAME "zlib-ng" CACHE STRING "Name of ZLIBNG package" FORCE)
|
||||
set (ZLIBNG_TGZ_NAME "2.1.6.tar.gz" CACHE STRING "Use HDF5_ZLib from compressed file" FORCE)
|
||||
set (ZLIBNG_TGZ_ORIGPATH "https://github.com/zlib-ng/zlib-ng/archive/refs/tags" CACHE STRING "Use ZLIBNG from original location" FORCE)
|
||||
set (ZLIBNG_GIT_URL "https://github.com/zlib-ng/zlib-ng.git" CACHE STRING "Use ZLIBNG from GitHub repository" FORCE)
|
||||
set (ZLIBNG_GIT_BRANCH "develop" CACHE STRING "" FORCE)
|
||||
|
||||
set (LIBAEC_PACKAGE_NAME "libaec" CACHE STRING "Name of AEC SZIP package" FORCE)
|
||||
set (LIBAEC_TGZ_NAME "libaec-1.0.6.tar.gz" CACHE STRING "Use SZip AEC from compressed file" FORCE)
|
||||
set (LIBAEC_TGZ_ORIGPATH "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6" CACHE STRING "Use LIBAEC from original location" FORCE)
|
||||
set (LIBAEC_TGZ_NAME "libaec-1.1.3.tar.gz" CACHE STRING "Use SZip AEC from compressed file" FORCE)
|
||||
set (LIBAEC_TGZ_ORIGPATH "https://github.com/MathisRosenhauer/libaec/releases/download/v1.1.3" CACHE STRING "Use LIBAEC from original location" FORCE)
|
||||
set (LIBAEC_USE_LOCALCONTENT ON CACHE BOOL "Use local file for LIBAEC FetchContent" FORCE)
|
||||
set (LIBAEC_GIT_URL "https://github.com/MathisRosenhauer/libaec.git" CACHE STRING "Use LIBAEC from GitHub repository" FORCE)
|
||||
set (LIBAEC_GIT_BRANCH "v1.1.3" CACHE STRING "" FORCE)
|
||||
|
||||
set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build Debug" FORCE)
|
||||
|
||||
|
@ -4441,7 +4441,7 @@ AM_CONDITIONAL([HAVE_SHARED_CONDITIONAL], [test "X$enable_shared" = "Xyes"])
|
||||
AC_CONFIG_FILES([Makefile
|
||||
doxygen/Doxyfile
|
||||
src/Makefile
|
||||
src/libhdf5.settings
|
||||
src/libhdf5.settings:src/libhdf5.settings.autotools.in
|
||||
src/H5build_settings.c:${BUILD_SETTINGS_FILE}
|
||||
test/Makefile
|
||||
test/H5srcdir_str.h
|
||||
|
@ -35,7 +35,8 @@ The following shows the Parallel HDF5 implementation layers:
|
||||
This tutorial assumes that you are somewhat familiar with parallel programming with MPI (Message Passing Interface).
|
||||
|
||||
If you are not familiar with parallel programming, here is a tutorial that may be of interest:
|
||||
<a href="http://www.nersc.gov/users/training/online-tutorials/introduction-to-scientific-i-o/?show_all=1">Tutorial on HDF5 I/O tuning at NERSC</a>
|
||||
<a href="https://\DOCURL/hdf5_topics/2016_NERSC_Introduction_to_Scientific_IO.pdf">Tutorial on HDF5 I/O tuning at NERSC</a>.
|
||||
(NOTE: As of 2024, the specific systems described in this tutorial are outdated.)
|
||||
|
||||
Some of the terms that you must understand in this tutorial are:
|
||||
<ul>
|
||||
@ -150,8 +151,10 @@ Following is example code for creating an access template in HDF5:
|
||||
\endcode
|
||||
|
||||
The following example programs create an HDF5 file using Parallel HDF5:
|
||||
<a href="https://\SRCURL/HDF5Examples/C/H5PAR/ph5_file_create.c">C: file_create.c</a>
|
||||
<a href="https://\SRCURL/HDF5Examples/FORTRAN/H5PAR/ph5_f90_file_create.F90">F90: file_create.F90</a>
|
||||
|
||||
<a href="https://\SRCURL/HDF5Examples/C/H5PAR/ph5_file_create.c">C: ph5_file_create.c</a>
|
||||
|
||||
<a href="https://\SRCURL/HDF5Examples/FORTRAN/H5PAR/ph5_f90_file_create.F90">F90: ph5_f90_file_create.F90</a>
|
||||
|
||||
|
||||
\subsection subsec_pintro_create_dset Creating and Accessing a Dataset with PHDF5
|
||||
@ -231,8 +234,10 @@ The following code demonstrates a collective write using Parallel HDF5:
|
||||
\endcode
|
||||
|
||||
The following example programs create an HDF5 dataset using Parallel HDF5:
|
||||
<a href="https://\SRCURL/HDF5Examples/C/H5PAR/ph5_dataset.c">C: dataset.c</a>
|
||||
<a href="https://\SRCURL/HDF5Examples/FORTRAN/H5PAR/ph5_f90_dataset.F90">F90: dataset.F90</a>
|
||||
|
||||
<a href="https://\SRCURL/HDF5Examples/C/H5PAR/ph5_dataset.c">C: ph5_dataset.c</a>
|
||||
|
||||
<a href="https://\SRCURL/HDF5Examples/FORTRAN/H5PAR/ph5_f90_dataset.F90">F90: ph5_f90_dataset.F90</a>
|
||||
|
||||
|
||||
\subsubsection subsec_pintro_hyperslabs Hyperslabs
|
||||
|
@ -48,6 +48,19 @@ Navigate back: \ref index "Main" / \ref GettingStarted / \ref LearnBasics
|
||||
<hr>
|
||||
|
||||
\section secLBDsetLayoutDesc Description of a Dataset
|
||||
The Creating a Dataset tutorial topic defines a dataset as a multidimensional array of data elements together with supporting metadata, where:
|
||||
|
||||
\li The array of elements consists of the raw data values that a user wishes to store in HDF5.
|
||||
\li The supporting metadata describes that data. The metadata is stored in the dataset (object) header of a dataset.
|
||||
|
||||
Datatype, dataspace, attribute, and storage layout information were introduced as part of the metadata associated with a dataset:
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
\image html tutr-lodset.png
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
\section secLBDsetLayout Dataset Storage Layout
|
||||
The storage information, or storage layout, defines how the raw data values in the dataset are
|
||||
|
BIN
doxygen/img/tutr-lodset.png
Executable file
BIN
doxygen/img/tutr-lodset.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
@ -584,9 +584,9 @@ set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
|
||||
set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${HDF5_INSTALL_LIB_DIR})
|
||||
set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${HDF5_INSTALL_INCLUDE_DIR})
|
||||
set (_PKG_CONFIG_MODULEDIR \${prefix}/${HDF5_INSTALL_MODULE_DIR})
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_F90_LIB_CORENAME}")
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_F90_LIB_NAME}")
|
||||
set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
|
||||
set (PKG_CONFIG_LIBNAME "${HDF5_F90_LIB_CORENAME}")
|
||||
set (PKG_CONFIG_LIBNAME "${HDF5_F90_LIB_NAME}")
|
||||
if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer")
|
||||
set (PKG_CONFIG_LIBNAME "${PKG_CONFIG_LIBNAME}${CMAKE_DEBUG_POSTFIX}")
|
||||
endif ()
|
||||
@ -600,8 +600,8 @@ if (BUILD_SHARED_LIBS)
|
||||
set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${PKG_CONFIG_LIBNAME}")
|
||||
endif ()
|
||||
|
||||
set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_CORENAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_CORENAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
|
||||
configure_file (
|
||||
${HDF_CONFIG_DIR}/libhdf5.fpc.in
|
||||
|
@ -93,9 +93,9 @@ set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||
set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
|
||||
set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${HDF5_INSTALL_LIB_DIR})
|
||||
set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${HDF5_INSTALL_INCLUDE_DIR})
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_HL_CPP_LIB_CORENAME}")
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_HL_CPP_LIB_NAME}")
|
||||
set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
|
||||
set (PKG_CONFIG_LIBNAME "${HDF5_HL_CPP_LIB_CORENAME}")
|
||||
set (PKG_CONFIG_LIBNAME "${HDF5_HL_CPP_LIB_NAME}")
|
||||
if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer")
|
||||
set (PKG_CONFIG_LIBNAME "${PKG_CONFIG_LIBNAME}${CMAKE_DEBUG_POSTFIX}")
|
||||
endif ()
|
||||
@ -109,8 +109,8 @@ if (BUILD_SHARED_LIBS)
|
||||
set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${PKG_CONFIG_LIBNAME}")
|
||||
endif ()
|
||||
|
||||
set (_PKG_CONFIG_REQUIRES "${HDF5_HL_LIB_CORENAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_HL_LIB_CORENAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES "${HDF5_HL_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_HL_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
|
||||
configure_file (
|
||||
${HDF_CONFIG_DIR}/libhdf5.pc.in
|
||||
|
@ -323,9 +323,9 @@ set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
|
||||
set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${HDF5_INSTALL_LIB_DIR})
|
||||
set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${HDF5_INSTALL_INCLUDE_DIR})
|
||||
set (_PKG_CONFIG_MODULEDIR \${prefix}/${HDF5_INSTALL_MODULE_DIR})
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_HL_F90_LIB_CORENAME}")
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_HL_F90_LIB_NAME}")
|
||||
set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
|
||||
set (PKG_CONFIG_LIBNAME "${HDF5_HL_F90_LIB_CORENAME}")
|
||||
set (PKG_CONFIG_LIBNAME "${HDF5_HL_F90_LIB_NAME}")
|
||||
if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer")
|
||||
set (PKG_CONFIG_LIBNAME "${PKG_CONFIG_LIBNAME}${CMAKE_DEBUG_POSTFIX}")
|
||||
endif ()
|
||||
@ -339,8 +339,8 @@ if (BUILD_SHARED_LIBS)
|
||||
set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${PKG_CONFIG_LIBNAME}")
|
||||
endif ()
|
||||
|
||||
set (_PKG_CONFIG_REQUIRES "${HDF5_F90_LIB_CORENAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_F90_LIB_CORENAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES "${HDF5_F90_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_F90_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
|
||||
configure_file (
|
||||
${HDF_CONFIG_DIR}/libhdf5.fpc.in
|
||||
|
@ -125,9 +125,9 @@ set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||
set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
|
||||
set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${HDF5_INSTALL_LIB_DIR})
|
||||
set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${HDF5_INSTALL_INCLUDE_DIR})
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_HL_LIB_CORENAME}")
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_HL_LIB_NAME}")
|
||||
set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
|
||||
set (PKG_CONFIG_LIBNAME "${HDF5_HL_LIB_CORENAME}")
|
||||
set (PKG_CONFIG_LIBNAME "${HDF5_HL_LIB_NAME}")
|
||||
if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer")
|
||||
set (PKG_CONFIG_LIBNAME "${PKG_CONFIG_LIBNAME}${CMAKE_DEBUG_POSTFIX}")
|
||||
endif ()
|
||||
@ -141,8 +141,8 @@ if (BUILD_SHARED_LIBS)
|
||||
set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${PKG_CONFIG_LIBNAME}")
|
||||
endif ()
|
||||
|
||||
set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_CORENAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_CORENAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_LIB_NAME} = ${HDF5_PACKAGE_VERSION}")
|
||||
|
||||
configure_file (
|
||||
${HDF_CONFIG_DIR}/libhdf5.pc.in
|
||||
|
@ -105,7 +105,7 @@ JNIEXPORT jint JNICALL
|
||||
Java_hdf_hdf5lib_H5_H5get_1libversion(JNIEnv *env, jclass clss, jintArray libversion)
|
||||
{
|
||||
jboolean libversionArrayIsCopy;
|
||||
int *libversionArray = NULL;
|
||||
jint *libversionArray = NULL;
|
||||
herr_t status = FAIL;
|
||||
|
||||
UNUSED(clss);
|
||||
|
@ -71,7 +71,8 @@ External compression plugin libraries from https://github.com/HDFGroup/hdf5_plug
|
||||
|
||||
External compression szip and zlib libraries:
|
||||
ZLIB "https://github.com/madler/zlib/releases/download/v1.3/zlib-1.3.tar.gz"
|
||||
LIBAEC "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6/libaec-1.0.6.tar.gz"
|
||||
ZLIBNG "https://github.com/zlib-ng/zlib-ng/archive/refs/tags/2.1.6.tar.gz"
|
||||
LIBAEC "https://github.com/MathisRosenhauer/libaec/releases/download/v1.1.3/libaec-1.1.3.tar.gz"
|
||||
-------------------------------------------------------------------------
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
@ -531,12 +532,18 @@ These five steps are described in detail below.
|
||||
set (ZLIB_USE_LOCALCONTENT ON CACHE BOOL "Use local file for ZLIB FetchContent" FORCE)
|
||||
set (ZLIB_GIT_URL "https://github.com/madler/zlib.git" CACHE STRING "Use ZLIB from GitHub repository" FORCE)
|
||||
set (ZLIB_GIT_BRANCH "develop" CACHE STRING "" FORCE)
|
||||
set (HDF5_USE_ZLIB_NG OFF CACHE BOOL "Use zlib-ng library as zlib library" FORCE)
|
||||
set (ZLIBNG_PACKAGE_NAME "zlib-ng" CACHE STRING "Name of ZLIBNG package" FORCE)
|
||||
set (ZLIBNG_TGZ_NAME "2.1.6.tar.gz" CACHE STRING "Use HDF5_ZLib from compressed file" FORCE)
|
||||
set (ZLIBNG_TGZ_ORIGPATH "https://github.com/zlib-ng/zlib-ng/archive/refs/tags" CACHE STRING "Use ZLIBNG from original location" FORCE)
|
||||
set (ZLIBNG_GIT_URL "https://github.com/zlib-ng/zlib-ng.git" CACHE STRING "Use ZLIBNG from GitHub repository" FORCE)
|
||||
set (ZLIBNG_GIT_BRANCH "develop" CACHE STRING "" FORCE)
|
||||
set (LIBAEC_PACKAGE_NAME "libaec" CACHE STRING "Name of AEC SZIP package" FORCE)
|
||||
set (LIBAEC_TGZ_NAME "libaec-1.0.6.tar.gz" CACHE STRING "Use SZip AEC from compressed file" FORCE)
|
||||
set (LIBAEC_TGZ_ORIGPATH "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6" CACHE STRING "Use LIBAEC from original location" FORCE)
|
||||
set (LIBAEC_TGZ_NAME "libaec-1.1.3.tar.gz" CACHE STRING "Use SZip AEC from compressed file" FORCE)
|
||||
set (LIBAEC_TGZ_ORIGPATH "https://github.com/MathisRosenhauer/libaec/releases/download/v1.1.3" CACHE STRING "Use LIBAEC from original location" FORCE)
|
||||
set (LIBAEC_USE_LOCALCONTENT ON CACHE BOOL "Use local file for LIBAEC FetchContent" FORCE)
|
||||
set (LIBAEC_GIT_URL "https://github.com/MathisRosenhauer/libaec.git" CACHE STRING "Use LIBAEC from GitHub repository" FORCE)
|
||||
set (LIBAEC_GIT_BRANCH "v1.0.6" CACHE STRING "" FORCE)
|
||||
set (LIBAEC_GIT_BRANCH "v1.1.3" CACHE STRING "" FORCE)
|
||||
########################
|
||||
# API test options
|
||||
########################
|
||||
@ -846,6 +853,7 @@ HDF5_ENABLE_PARALLEL "Enable parallel build (requires MPI)"
|
||||
HDF5_ENABLE_THREADSAFE "Enable Threadsafety" OFF
|
||||
HDF5_DIMENSION_SCALES_NEW_REF "Use new-style references with dimension scale APIs" OFF
|
||||
HDF5_EXTERNAL_LIB_PREFIX "Use prefix for custom library naming." ""
|
||||
HDF5_EXTERNAL_LIB_SUFFIX "Use suffix for custom library naming." ""
|
||||
|
||||
HDF5_DISABLE_COMPILER_WARNINGS "Disable compiler warnings" OFF
|
||||
HDF5_ENABLE_ALL_WARNINGS "Enable all warnings" OFF
|
||||
@ -926,16 +934,21 @@ HDF5_ENABLE_PLUGIN_SUPPORT "Enable PLUGIN Filters" OFF
|
||||
HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF
|
||||
HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" ON
|
||||
|
||||
ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB else search" OFF
|
||||
ZLIB_TGZ_ORIGPATH "Use ZLIB from original location" "https://github.com/madler/zlib/releases/download/v1.2.13"
|
||||
ZLIB_TGZ_NAME "Use ZLIB from original compressed file" "zlib-1.2.13.tar.gz"
|
||||
if (HDF5_USE_ZLIB_NG)
|
||||
ZLIBNG_USE_EXTERNAL "Use External Library Building for ZLIBNG" OFF
|
||||
ZLIBNG_TGZ_ORIGPATH "Use ZLIBNG from original location" "https://github.com/zlib-ng/zlib-ng/releases/tag/2.1.6"
|
||||
ZLIBNG_TGZ_NAME "Use ZLIBNG from original compressed file" "2.1.6.tar.gz"
|
||||
else
|
||||
ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" OFF
|
||||
ZLIB_TGZ_ORIGPATH "Use ZLIB from original location" "https://github.com/madler/zlib/releases/download/v1.2.13"
|
||||
ZLIB_TGZ_NAME "Use ZLIB from original compressed file" "zlib-1.2.13.tar.gz"
|
||||
ZLIB_USE_LOCALCONTENT "Use local file for ZLIB FetchContent" ON
|
||||
|
||||
SZIP_USE_EXTERNAL "Use External Library Building for SZIP else search" OFF
|
||||
if (HDF5_ENABLE_SZIP_SUPPORT)
|
||||
HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" ON
|
||||
LIBAEC_TGZ_ORIGPATH "Use LIBAEC from original location" "https://github.com/MathisRosenhauer/libaec/releases/download/v1.0.6"
|
||||
LIBAEC_TGZ_NAME "Use LIBAEC from original compressed file" "libaec-1.0.6.tar.gz"
|
||||
LIBAEC_TGZ_ORIGPATH "Use LIBAEC from original location" "https://github.com/MathisRosenhauer/libaec/releases/download/v1.1.3"
|
||||
LIBAEC_TGZ_NAME "Use LIBAEC from original compressed file" "libaec-1.1.3.tar.gz"
|
||||
LIBAEC_USE_LOCALCONTENT "Use local file for LIBAEC FetchContent" ON
|
||||
|
||||
PLUGIN_USE_EXTERNAL "Use External Library Building for PLUGINS else search" OFF
|
||||
|
@ -47,6 +47,22 @@ New Features
|
||||
|
||||
Configuration:
|
||||
-------------
|
||||
- Added support for using zlib-ng package as the zlib library:
|
||||
|
||||
CMake: HDF5_USE_ZLIB_NG
|
||||
Autotools: --enable-zlibng
|
||||
|
||||
Added the option HDF5_USE_ZLIB_NG to allow the replacement of the
|
||||
default ZLib package by the zlib-ng package as a built-in compression library.
|
||||
|
||||
- Disable CMake UNITY_BUILD for hdf5
|
||||
|
||||
CMake added a target property, UNITY_BUILD, that when set to true, the target
|
||||
source files will be combined into batches for faster compilation. By default,
|
||||
the setting is OFF, but could be enabled by a project that includes HDF5 as a subproject.
|
||||
|
||||
HDF5 has disabled this feature by setting the property to OFF in the HDFMacros.cmake file.
|
||||
|
||||
- Removed "function/code stack" debugging configuration option:
|
||||
|
||||
CMake: HDF5_ENABLE_CODESTACK
|
||||
@ -470,7 +486,10 @@ New Features
|
||||
|
||||
Tools:
|
||||
------
|
||||
-
|
||||
- Allow h5repack to reserve space for a user block without a file
|
||||
|
||||
This is useful for users who want to reserve space
|
||||
in the file for future use without requiring a file to copy.
|
||||
|
||||
|
||||
High-Level APIs:
|
||||
|
@ -1187,9 +1187,9 @@ set (_PKG_CONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||
set (_PKG_CONFIG_EXEC_PREFIX \${prefix})
|
||||
set (_PKG_CONFIG_LIBDIR \${exec_prefix}/${HDF5_INSTALL_LIB_DIR})
|
||||
set (_PKG_CONFIG_INCLUDEDIR \${prefix}/${HDF5_INSTALL_INCLUDE_DIR})
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_LIB_CORENAME}")
|
||||
set (_PKG_CONFIG_LIBNAME "${HDF5_LIB_NAME}")
|
||||
set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
|
||||
set (PKGCONFIG_LIBNAME "${HDF5_LIB_CORENAME}")
|
||||
set (PKGCONFIG_LIBNAME "${HDF5_LIB_NAME}")
|
||||
if (${HDF_CFG_NAME} MATCHES "Debug" OR ${HDF_CFG_NAME} MATCHES "Developer")
|
||||
set (PKGCONFIG_LIBNAME "${PKGCONFIG_LIBNAME}${CMAKE_DEBUG_POSTFIX}")
|
||||
endif ()
|
||||
|
@ -1880,7 +1880,7 @@ done:
|
||||
PURPOSE
|
||||
Calls a user's function for each attribute on an object
|
||||
USAGE
|
||||
herr_t H5Aiterate2(loc_id, obj_name, idx_type, order, idx, op, op_data, lapl_id)
|
||||
herr_t H5Aiterate_by_name(loc_id, obj_name, idx_type, order, idx, op, op_data, lapl_id)
|
||||
hid_t loc_id; IN: Base location for object
|
||||
const char *obj_name; IN: Name of object relative to location
|
||||
H5_index_t idx_type; IN: Type of index to use
|
||||
|
@ -987,8 +987,8 @@ H5D__read_api_common(size_t count, hid_t dset_id[], hid_t mem_type_id[], hid_t m
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not xfer parms");
|
||||
|
||||
/* Read the data */
|
||||
if (H5VL_dataset_read_direct(count, obj, connector, mem_type_id, mem_space_id, file_space_id, dxpl_id,
|
||||
buf, token_ptr) < 0)
|
||||
if (H5VL_dataset_read(count, obj, connector, mem_type_id, mem_space_id, file_space_id, dxpl_id, buf,
|
||||
token_ptr) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "can't read data");
|
||||
|
||||
done:
|
||||
@ -1289,8 +1289,8 @@ H5D__write_api_common(size_t count, hid_t dset_id[], hid_t mem_type_id[], hid_t
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not xfer parms");
|
||||
|
||||
/* Write the data */
|
||||
if (H5VL_dataset_write_direct(count, obj, connector, mem_type_id, mem_space_id, file_space_id, dxpl_id,
|
||||
buf, token_ptr) < 0)
|
||||
if (H5VL_dataset_write(count, obj, connector, mem_type_id, mem_space_id, file_space_id, dxpl_id, buf,
|
||||
token_ptr) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data");
|
||||
|
||||
done:
|
||||
|
10
src/H5Dint.c
10
src/H5Dint.c
@ -62,7 +62,7 @@ typedef struct {
|
||||
/* Internal data structure for computing variable-length dataset's total size */
|
||||
/* (Used for generic 'get vlen buf size' operation) */
|
||||
typedef struct {
|
||||
const H5VL_object_t *dset_vol_obj; /* VOL object for the dataset */
|
||||
H5VL_object_t *dset_vol_obj; /* VOL object for the dataset */
|
||||
hid_t fspace_id; /* Dataset dataspace ID of the dataset we are working on */
|
||||
H5S_t *fspace; /* Dataset's dataspace for operation */
|
||||
hid_t mspace_id; /* Memory dataspace ID of the dataset we are working on */
|
||||
@ -2816,9 +2816,9 @@ H5D__vlen_get_buf_size_gen_cb(void H5_ATTR_UNUSED *elem, hid_t type_id, unsigned
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_CANTCREATE, FAIL, "can't select point");
|
||||
|
||||
/* Read in the point (with the custom VL memory allocator) */
|
||||
if (H5VL_dataset_read(1, &vlen_bufsize->dset_vol_obj, &type_id, &vlen_bufsize->mspace_id,
|
||||
&vlen_bufsize->fspace_id, vlen_bufsize->dxpl_id, &vlen_bufsize->common.fl_tbuf,
|
||||
H5_REQUEST_NULL) < 0)
|
||||
if (H5VL_dataset_read(1, &vlen_bufsize->dset_vol_obj->data, vlen_bufsize->dset_vol_obj->connector,
|
||||
&type_id, &vlen_bufsize->mspace_id, &vlen_bufsize->fspace_id, vlen_bufsize->dxpl_id,
|
||||
&vlen_bufsize->common.fl_tbuf, H5_REQUEST_NULL) < 0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_READERROR, FAIL, "can't read point");
|
||||
|
||||
done:
|
||||
@ -2860,7 +2860,7 @@ H5D__vlen_get_buf_size_gen(H5VL_object_t *vol_obj, hid_t type_id, hid_t space_id
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_BADVALUE, FAIL, "dataspace does not have extent set");
|
||||
|
||||
/* Save the dataset */
|
||||
vlen_bufsize.dset_vol_obj = (const H5VL_object_t *)vol_obj;
|
||||
vlen_bufsize.dset_vol_obj = vol_obj;
|
||||
|
||||
/* Set up VOL callback arguments */
|
||||
vol_cb_args.op_type = H5VL_DATASET_GET_SPACE;
|
||||
|
19
src/H5FD.c
19
src/H5FD.c
@ -955,33 +955,32 @@ done:
|
||||
*
|
||||
* Purpose: Query a VFL driver for its feature flags. (listed in H5FDpublic.h)
|
||||
*
|
||||
* Return: Success: 0
|
||||
* Failure: -1
|
||||
* Return: Non-negative on success/Negative on failure
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
int
|
||||
herr_t
|
||||
H5FDquery(const H5FD_t *file, unsigned long *flags /*out*/)
|
||||
{
|
||||
int ret_value = 0;
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
FUNC_ENTER_API((-1))
|
||||
FUNC_ENTER_API(FAIL)
|
||||
|
||||
/* Check arguments */
|
||||
if (!file)
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, (-1), "file pointer cannot be NULL");
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file pointer cannot be NULL");
|
||||
if (!file->cls)
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, (-1), "file class pointer cannot be NULL");
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file class pointer cannot be NULL");
|
||||
if (!flags)
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, (-1), "flags parameter cannot be NULL");
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "flags parameter cannot be NULL");
|
||||
|
||||
/* Call private function */
|
||||
if (H5FD__query(file, flags) < 0)
|
||||
HGOTO_ERROR(H5E_VFL, H5E_CANTGET, (-1), "unable to query feature flags");
|
||||
HGOTO_ERROR(H5E_VFL, H5E_CANTGET, FAIL, "unable to query feature flags");
|
||||
|
||||
done:
|
||||
FUNC_LEAVE_API(ret_value)
|
||||
}
|
||||
} /* end H5FDquery() */
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5FD_query
|
||||
|
@ -367,7 +367,7 @@ H5_DLL herr_t H5FDunregister(hid_t driver_id);
|
||||
H5_DLL H5FD_t *H5FDopen(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr);
|
||||
H5_DLL herr_t H5FDclose(H5FD_t *file);
|
||||
H5_DLL int H5FDcmp(const H5FD_t *f1, const H5FD_t *f2);
|
||||
H5_DLL int H5FDquery(const H5FD_t *f, unsigned long *flags);
|
||||
H5_DLL herr_t H5FDquery(const H5FD_t *f, unsigned long *flags);
|
||||
H5_DLL haddr_t H5FDalloc(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size);
|
||||
H5_DLL herr_t H5FDfree(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, hsize_t size);
|
||||
H5_DLL haddr_t H5FDget_eoa(H5FD_t *file, H5FD_mem_t type);
|
||||
|
@ -67,14 +67,16 @@ static const char *flavors[] = {
|
||||
* occurs), and `op' will be set to H5F_OP_UNKNOWN.
|
||||
*/
|
||||
typedef struct H5FD_log_t {
|
||||
H5FD_t pub; /* public stuff, must be first */
|
||||
int fd; /* the unix file */
|
||||
haddr_t eoa; /* end of allocated region */
|
||||
haddr_t eof; /* end of file; current file size */
|
||||
H5FD_t pub; /* public stuff, must be first */
|
||||
int fd; /* the unix file */
|
||||
haddr_t eoa; /* end of allocated region */
|
||||
haddr_t eof; /* end of file; current file size */
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
haddr_t pos; /* current file I/O position */
|
||||
H5FD_file_op_t op; /* last operation */
|
||||
bool ignore_disabled_file_locks;
|
||||
char filename[H5FD_MAX_FILENAME_LEN]; /* Copy of file name from open operation */
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
bool ignore_disabled_file_locks;
|
||||
char filename[H5FD_MAX_FILENAME_LEN]; /* Copy of file name from open operation */
|
||||
#ifndef H5_HAVE_WIN32_API
|
||||
/* On most systems the combination of device and i-node number uniquely
|
||||
* identify a file. Note that Cygwin, MinGW and other Windows POSIX
|
||||
@ -526,8 +528,10 @@ H5FD__log_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
|
||||
|
||||
file->fd = fd;
|
||||
H5_CHECKED_ASSIGN(file->eof, haddr_t, sb.st_size, h5_stat_size_t);
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
file->pos = HADDR_UNDEF;
|
||||
file->op = OP_UNKNOWN;
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
#ifdef H5_HAVE_WIN32_API
|
||||
file->hFile = (HANDLE)_get_osfhandle(fd);
|
||||
if (INVALID_HANDLE_VALUE == file->hFile)
|
||||
@ -1296,16 +1300,20 @@ H5FD__log_read(H5FD_t *_file, H5FD_mem_t type, hid_t H5_ATTR_UNUSED dxpl_id, had
|
||||
fprintf(file->logfp, "\n");
|
||||
}
|
||||
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
/* Update current position */
|
||||
file->pos = addr;
|
||||
file->op = OP_READ;
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
|
||||
done:
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
if (ret_value < 0) {
|
||||
/* Reset last file I/O information */
|
||||
file->pos = HADDR_UNDEF;
|
||||
file->op = OP_UNKNOWN;
|
||||
}
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD__log_read() */
|
||||
@ -1510,17 +1518,21 @@ H5FD__log_write(H5FD_t *_file, H5FD_mem_t type, hid_t H5_ATTR_UNUSED dxpl_id, ha
|
||||
}
|
||||
|
||||
/* Update current position and eof */
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
file->pos = addr;
|
||||
file->op = OP_WRITE;
|
||||
if (file->pos > file->eof)
|
||||
file->eof = file->pos;
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
if (addr > file->eof)
|
||||
file->eof = addr;
|
||||
|
||||
done:
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
if (ret_value < 0) {
|
||||
/* Reset last file I/O information */
|
||||
file->pos = HADDR_UNDEF;
|
||||
file->op = OP_UNKNOWN;
|
||||
}
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD__log_write() */
|
||||
@ -1621,10 +1633,12 @@ H5FD__log_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, bool H5_ATTR_UNU
|
||||
/* Update the eof value */
|
||||
file->eof = file->eoa;
|
||||
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
/* Reset last file I/O information */
|
||||
file->pos = HADDR_UNDEF;
|
||||
file->op = OP_UNKNOWN;
|
||||
} /* end if */
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
} /* end if */
|
||||
|
||||
done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
|
@ -48,14 +48,16 @@ static htri_t ignore_disabled_file_locks_s = FAIL;
|
||||
* occurs), and 'op' will be set to H5F_OP_UNKNOWN.
|
||||
*/
|
||||
typedef struct H5FD_sec2_t {
|
||||
H5FD_t pub; /* public stuff, must be first */
|
||||
int fd; /* the filesystem file descriptor */
|
||||
haddr_t eoa; /* end of allocated region */
|
||||
haddr_t eof; /* end of file; current file size */
|
||||
H5FD_t pub; /* public stuff, must be first */
|
||||
int fd; /* the filesystem file descriptor */
|
||||
haddr_t eoa; /* end of allocated region */
|
||||
haddr_t eof; /* end of file; current file size */
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
haddr_t pos; /* current file I/O position */
|
||||
H5FD_file_op_t op; /* last operation */
|
||||
bool ignore_disabled_file_locks;
|
||||
char filename[H5FD_MAX_FILENAME_LEN]; /* Copy of file name from open operation */
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
bool ignore_disabled_file_locks;
|
||||
char filename[H5FD_MAX_FILENAME_LEN]; /* Copy of file name from open operation */
|
||||
#ifndef H5_HAVE_WIN32_API
|
||||
/* On most systems the combination of device and i-node number uniquely
|
||||
* identify a file. Note that Cygwin, MinGW and other Windows POSIX
|
||||
@ -334,8 +336,10 @@ H5FD__sec2_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr
|
||||
|
||||
file->fd = fd;
|
||||
H5_CHECKED_ASSIGN(file->eof, haddr_t, sb.st_size, h5_stat_size_t);
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
file->pos = HADDR_UNDEF;
|
||||
file->op = OP_UNKNOWN;
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
#ifdef H5_HAVE_WIN32_API
|
||||
file->hFile = (HANDLE)_get_osfhandle(fd);
|
||||
if (INVALID_HANDLE_VALUE == file->hFile)
|
||||
@ -721,16 +725,20 @@ H5FD__sec2_read(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UNU
|
||||
buf = (char *)buf + bytes_read;
|
||||
} /* end while */
|
||||
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
/* Update current position */
|
||||
file->pos = addr;
|
||||
file->op = OP_READ;
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
|
||||
done:
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
if (ret_value < 0) {
|
||||
/* Reset last file I/O information */
|
||||
file->pos = HADDR_UNDEF;
|
||||
file->op = OP_UNKNOWN;
|
||||
} /* end if */
|
||||
} /* end if */
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD__sec2_read() */
|
||||
@ -822,17 +830,21 @@ H5FD__sec2_write(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UN
|
||||
} /* end while */
|
||||
|
||||
/* Update current position and eof */
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
file->pos = addr;
|
||||
file->op = OP_WRITE;
|
||||
if (file->pos > file->eof)
|
||||
file->eof = file->pos;
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
if (addr > file->eof)
|
||||
file->eof = addr;
|
||||
|
||||
done:
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
if (ret_value < 0) {
|
||||
/* Reset last file I/O information */
|
||||
file->pos = HADDR_UNDEF;
|
||||
file->op = OP_UNKNOWN;
|
||||
} /* end if */
|
||||
} /* end if */
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD__sec2_write() */
|
||||
@ -893,10 +905,12 @@ H5FD__sec2_truncate(H5FD_t *_file, hid_t H5_ATTR_UNUSED dxpl_id, bool H5_ATTR_UN
|
||||
/* Update the eof value */
|
||||
file->eof = file->eoa;
|
||||
|
||||
#ifndef H5_HAVE_PREADWRITE
|
||||
/* Reset last file I/O information */
|
||||
file->pos = HADDR_UNDEF;
|
||||
file->op = OP_UNKNOWN;
|
||||
} /* end if */
|
||||
#endif /* H5_HAVE_PREADWRITE */
|
||||
} /* end if */
|
||||
|
||||
done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
|
@ -136,7 +136,7 @@ H5FO_opened(const H5F_t *f, haddr_t addr)
|
||||
PURPOSE
|
||||
Insert a newly opened object/pointer pair into the opened object info set
|
||||
USAGE
|
||||
herr_t H5FO_insert(f,addr,obj)
|
||||
herr_t H5FO_insert(f,addr,obj,delete_flag)
|
||||
H5F_t *f; IN/OUT: File's opened object info set
|
||||
haddr_t addr; IN: Address of object to insert
|
||||
void *obj; IN: Pointer to object to insert
|
||||
@ -239,9 +239,10 @@ done:
|
||||
PURPOSE
|
||||
Mark an object to be deleted when it is closed
|
||||
USAGE
|
||||
herr_t H5FO_mark(f,addr)
|
||||
herr_t H5FO_mark(f,addr,deleted)
|
||||
const H5F_t *f; IN: File opened object is in
|
||||
haddr_t addr; IN: Address of object to delete
|
||||
bool deleted; IN: true for to be deleted
|
||||
|
||||
RETURNS
|
||||
Returns a non-negative ID for the object on success, negative on failure
|
||||
@ -366,7 +367,7 @@ done:
|
||||
PURPOSE
|
||||
Create the "top" open object count set
|
||||
USAGE
|
||||
herr_t H5FO_create(f)
|
||||
herr_t H5FO_top_create(f)
|
||||
H5F_t *f; IN/OUT: File to create opened object count set for
|
||||
|
||||
RETURNS
|
||||
@ -509,7 +510,7 @@ done:
|
||||
PURPOSE
|
||||
Return the "top" reference count for an object in a file
|
||||
USAGE
|
||||
hsize_t H5FO_top_incr(f, addr)
|
||||
hsize_t H5FO_top_count(f, addr)
|
||||
H5F_t *f; IN/OUT: File's opened object info set
|
||||
haddr_t addr; IN: Address of object to increment
|
||||
|
||||
|
@ -788,7 +788,7 @@ done:
|
||||
The encoding of property values will be done according to the file format
|
||||
setting in fapl_id.
|
||||
USAGE
|
||||
herr_t H5Pencode(plist_id, buf, nalloc, fapl_id)
|
||||
herr_t H5Pencode2(plist_id, buf, nalloc, fapl_id)
|
||||
hid_t plist_id; IN: Identifier to property list to encode
|
||||
void *buf: OUT: buffer to gold the encoded plist
|
||||
size_t *nalloc; IN/OUT: size of buffer needed to encode plist
|
||||
|
@ -302,7 +302,7 @@ H5P__dapl_vds_file_pref_get(hid_t H5_ATTR_UNUSED prop_id, const char H5_ATTR_UNU
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5P__dapl_vds_file_pref_enc
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the vds file flags
|
||||
* Purpose: Callback routine which is called whenever the vds file prefix
|
||||
* property in the dataset access property list is
|
||||
* encoded.
|
||||
*
|
||||
|
@ -4976,7 +4976,9 @@ done:
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5P__encode_coll_md_read_flag_t
|
||||
*
|
||||
* Purpose: Generic encoding callback routine for 'coll_md_read_flag' properties.
|
||||
* Purpose: Callback routine which is called whenever the collective
|
||||
* metadata read flag property in the file creation property list is
|
||||
* encoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
@ -5010,7 +5012,9 @@ H5P__encode_coll_md_read_flag_t(const void *value, void **_pp, size_t *size)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5P__decode_coll_md_read_flag_t
|
||||
*
|
||||
* Purpose: Generic decoding callback routine for 'coll_md_read_flag' properties.
|
||||
* Purpose: Callback routine which is called whenever the collective
|
||||
* metadata read flag property in the file creation property list is
|
||||
* decoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
@ -5030,7 +5034,7 @@ H5P__decode_coll_md_read_flag_t(const void **_pp, void *_value)
|
||||
assert(*pp);
|
||||
assert(coll_md_read_flag);
|
||||
|
||||
/* Decode file close degree */
|
||||
/* Decode metadata read flag */
|
||||
*coll_md_read_flag = (H5P_coll_md_read_flag_t) * (*pp);
|
||||
*pp += sizeof(H5P_coll_md_read_flag_t);
|
||||
|
||||
@ -5468,7 +5472,7 @@ done:
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5P__facc_mpi_info_get
|
||||
*
|
||||
* Purpose: Copies an MPI comminicator property when it's retrieved from a property list
|
||||
* Purpose: Copies an MPI info object property when it's retrieved from a property list
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
|
@ -645,7 +645,7 @@ done:
|
||||
* Function: H5P__fcrt_btree_rank_enc
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the index storage
|
||||
* btree in file creation property list is encoded.
|
||||
* btree in a file creation property list is encoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
@ -688,7 +688,7 @@ H5P__fcrt_btree_rank_enc(const void *value, void **_pp, size_t *size)
|
||||
* Function: H5P__fcrt_btree_rank_dec
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the index storage
|
||||
* btree in file creation property list is decoded.
|
||||
* btree in a file creation property list is decoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
@ -909,8 +909,8 @@ done:
|
||||
* Function: H5P__fcrt_shmsg_index_types_enc
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the shared
|
||||
* message indec types in file creation property list
|
||||
* is encoded.
|
||||
* message index types in a file creation property list
|
||||
* are encoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
@ -953,8 +953,8 @@ H5P__fcrt_shmsg_index_types_enc(const void *value, void **_pp, size_t *size)
|
||||
* Function: H5P__fcrt_shmsg_index_types_dec
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the shared
|
||||
* message indec types in file creation property list
|
||||
* is decoded.
|
||||
* message index types in a file creation property list
|
||||
* are decoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
@ -994,7 +994,7 @@ done:
|
||||
* Function: H5P__fcrt_shmsg_index_minsize_enc
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the shared
|
||||
* message index minsize in file creation property list
|
||||
* message index minsize in a file creation property list
|
||||
* is encoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
@ -1038,7 +1038,7 @@ H5P__fcrt_shmsg_index_minsize_enc(const void *value, void **_pp, size_t *size)
|
||||
* Function: H5P__fcrt_shmsg_index_minsize_dec
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the shared
|
||||
* message indec minsize in file creation property list
|
||||
* message index minsize in a file creation property list
|
||||
* is decoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
|
@ -485,7 +485,7 @@ done:
|
||||
* Function: H5P__gcrt_group_info_enc
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the group
|
||||
* property in the dataset access property list is
|
||||
* info property in the dataset access property list is
|
||||
* encoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
@ -564,7 +564,7 @@ H5P__gcrt_group_info_dec(const void **_pp, void *_value)
|
||||
* Function: H5P__gcrt_link_info_enc
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the link
|
||||
* property in the dataset access property list is
|
||||
* info property in the dataset access property list is
|
||||
* encoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
|
@ -634,7 +634,7 @@ H5P__lacc_elink_pref_get(hid_t H5_ATTR_UNUSED prop_id, const char H5_ATTR_UNUSED
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5P__lacc_elink_pref_enc
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the elink flags
|
||||
* Purpose: Callback routine which is called whenever the elink prefix
|
||||
* property in the dataset access property list is
|
||||
* encoded.
|
||||
*
|
||||
|
@ -179,7 +179,7 @@ done:
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5P__free_merge_comm_dtype_list
|
||||
*
|
||||
* Purpose: Frees the provided merge named dtype list
|
||||
* Purpose: Frees the provided merge committed dtype list
|
||||
*
|
||||
* Return: NULL
|
||||
*
|
||||
@ -329,9 +329,9 @@ done:
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5P__ocpy_merge_comm_dt_list_enc
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the common
|
||||
* datatype property in the object copy property list is
|
||||
* decoded.
|
||||
* Purpose: Callback routine which is called whenever the merge
|
||||
* committed datatype list property in the object copy
|
||||
* property list is encoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
@ -383,9 +383,9 @@ H5P__ocpy_merge_comm_dt_list_enc(const void *value, void **_pp, size_t *size)
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5P__ocpy_merge_comm_dt_list_dec
|
||||
*
|
||||
* Purpose: Callback routine which is called whenever the common
|
||||
* datatype property in the dataset access property list is
|
||||
* decoded.
|
||||
* Purpose: Callback routine which is called whenever the merge
|
||||
* committed datatype list property in the object copy
|
||||
* property list is decoded.
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
@ -564,7 +564,7 @@ done:
|
||||
/*--------------------------------------------------------------------------
|
||||
* Function: H5P__ocpy_merge_comm_dt_list_close
|
||||
*
|
||||
* Purpose: Close the merge common datatype list property
|
||||
* Purpose: Close the merge committed datatype list property
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
@ -578,7 +578,7 @@ H5P__ocpy_merge_comm_dt_list_close(const char H5_ATTR_UNUSED *name, size_t H5_AT
|
||||
|
||||
assert(value);
|
||||
|
||||
/* Free the merge named dtype list */
|
||||
/* Free the merge committed dtype list */
|
||||
H5P__free_merge_comm_dtype_list(*(H5O_copy_dtype_merge_list_t **)value);
|
||||
|
||||
FUNC_LEAVE_NOAPI(SUCCEED)
|
||||
|
@ -413,7 +413,7 @@ H5S_get_select_npoints(const H5S_t *space)
|
||||
Check whether the selection fits within the extent, with the current
|
||||
offset defined.
|
||||
USAGE
|
||||
htri_t H5Sselect_void(dsid)
|
||||
htri_t H5Sselect_valid(dsid)
|
||||
hid_t dsid; IN: Dataspace ID to query
|
||||
RETURNS
|
||||
true if the selection fits within the extent, false if it does not and
|
||||
@ -451,7 +451,7 @@ done:
|
||||
Check whether the selection fits within the extent, with the current
|
||||
offset defined.
|
||||
USAGE
|
||||
htri_t H5S_select_void(space)
|
||||
htri_t H5S_select_valid(space)
|
||||
H5S_t *space; IN: Dataspace to query
|
||||
RETURNS
|
||||
true if the selection fits within the extent, false if it does not and
|
||||
@ -921,7 +921,7 @@ H5S_select_adjust_u(H5S_t *space, const hsize_t *offset)
|
||||
PURPOSE
|
||||
Adjust a selection by subtracting an offset
|
||||
USAGE
|
||||
herr_t H5S_select_adjust_u(space, offset)
|
||||
herr_t H5S_select_adjust_s(space, offset)
|
||||
H5S_t *space; IN/OUT: Pointer to dataspace to adjust
|
||||
const hssize_t *offset; IN: Offset to subtract
|
||||
RETURNS
|
||||
@ -2786,8 +2786,8 @@ done:
|
||||
PURPOSE
|
||||
Create a dataspace selection iterator for a dataspace's selection
|
||||
USAGE
|
||||
hid_t H5Ssel_iter_create(space)
|
||||
hid_t space; IN: ID of the dataspace with selection to iterate over
|
||||
hid_t H5Ssel_iter_create(space,elmt_size,flags)
|
||||
hid_t space; IN: ID of the dataspace with selection to iterate over
|
||||
RETURNS
|
||||
Valid dataspace selection iterator ID on success, H5I_INVALID_HID on failure
|
||||
DESCRIPTION
|
||||
@ -2997,7 +2997,7 @@ done:
|
||||
PURPOSE
|
||||
Resets a dataspace selection iterator back to an initial state.
|
||||
USAGE
|
||||
herr_t H5Ssel_iter_reset(sel_iter_id)
|
||||
herr_t H5Ssel_iter_reset(sel_iter_id,space_id)
|
||||
hid_t sel_iter_id; IN: ID of the dataspace selection iterator to
|
||||
reset
|
||||
hid_t space_id; IN: ID of the dataspace with selection to
|
||||
|
@ -2025,7 +2025,7 @@ done:
|
||||
} /* end H5VL__dataset_read() */
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5VL_dataset_read_direct
|
||||
* Function: H5VL_dataset_read
|
||||
*
|
||||
* Purpose: Reads data from dataset through the VOL. This is like
|
||||
* H5VL_dataset_read, but takes an array of void * for the
|
||||
@ -2039,8 +2039,8 @@ done:
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5VL_dataset_read_direct(size_t count, void *obj[], H5VL_t *connector, hid_t mem_type_id[],
|
||||
hid_t mem_space_id[], hid_t file_space_id[], hid_t dxpl_id, void *buf[], void **req)
|
||||
H5VL_dataset_read(size_t count, void *obj[], H5VL_t *connector, hid_t mem_type_id[], hid_t mem_space_id[],
|
||||
hid_t file_space_id[], hid_t dxpl_id, void *buf[], void **req)
|
||||
{
|
||||
bool vol_wrapper_set = false; /* Whether the VOL object wrapping context was set up */
|
||||
H5VL_object_t tmp_vol_obj; /* Temporary VOL object for setting VOL wrapper */
|
||||
@ -2069,70 +2069,6 @@ done:
|
||||
if (vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
|
||||
HDONE_ERROR(H5E_VOL, H5E_CANTRESET, FAIL, "can't reset VOL wrapper info");
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5VL_dataset_read_direct() */
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5VL_dataset_read
|
||||
*
|
||||
* Purpose: Reads data from dataset through the VOL
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5VL_dataset_read(size_t count, const H5VL_object_t *vol_obj[], hid_t mem_type_id[], hid_t mem_space_id[],
|
||||
hid_t file_space_id[], hid_t dxpl_id, void *buf[], void **req)
|
||||
{
|
||||
bool vol_wrapper_set = false; /* Whether the VOL object wrapping context was set up */
|
||||
void *obj_local; /* Local buffer for obj */
|
||||
void **obj = &obj_local; /* Array of object pointers */
|
||||
size_t i; /* Local index variable */
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
FUNC_ENTER_NOAPI(FAIL)
|
||||
|
||||
assert(vol_obj);
|
||||
assert(vol_obj[0]);
|
||||
|
||||
/* Set wrapper info in API context */
|
||||
if (H5VL_set_vol_wrapper(vol_obj[0]) < 0)
|
||||
HGOTO_ERROR(H5E_VOL, H5E_CANTSET, FAIL, "can't set VOL wrapper info");
|
||||
vol_wrapper_set = true;
|
||||
|
||||
/* Allocate obj array if necessary */
|
||||
if (count > 1)
|
||||
if (NULL == (obj = (void **)H5MM_malloc(count * sizeof(void *))))
|
||||
HGOTO_ERROR(H5E_VOL, H5E_CANTALLOC, FAIL, "can't allocate space for object array");
|
||||
|
||||
/* Build obj array */
|
||||
for (i = 0; i < count; i++) {
|
||||
/* Get the object */
|
||||
obj[i] = vol_obj[i]->data;
|
||||
|
||||
/* Make sure the class matches */
|
||||
if (vol_obj[i]->connector->cls->value != vol_obj[0]->connector->cls->value)
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
|
||||
"datasets are accessed through different VOL connectors and can't be used in the "
|
||||
"same I/O call");
|
||||
}
|
||||
|
||||
/* Call the corresponding internal VOL routine */
|
||||
if (H5VL__dataset_read(count, obj, vol_obj[0]->connector->cls, mem_type_id, mem_space_id, file_space_id,
|
||||
dxpl_id, buf, req) < 0)
|
||||
HGOTO_ERROR(H5E_VOL, H5E_READERROR, FAIL, "dataset read failed");
|
||||
|
||||
done:
|
||||
/* Reset object wrapping info in API context */
|
||||
if (vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
|
||||
HDONE_ERROR(H5E_VOL, H5E_CANTRESET, FAIL, "can't reset VOL wrapper info");
|
||||
|
||||
/* Free memory */
|
||||
if (obj != &obj_local)
|
||||
H5MM_free(obj);
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5VL_dataset_read() */
|
||||
|
||||
@ -2212,7 +2148,7 @@ done:
|
||||
} /* end H5VL__dataset_write() */
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5VL_dataset_write_direct
|
||||
* Function: H5VL_dataset_write
|
||||
*
|
||||
* Purpose: Writes data from dataset through the VOL. This is like
|
||||
* H5VL_dataset_write, but takes an array of void * for the
|
||||
@ -2226,9 +2162,8 @@ done:
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5VL_dataset_write_direct(size_t count, void *obj[], H5VL_t *connector, hid_t mem_type_id[],
|
||||
hid_t mem_space_id[], hid_t file_space_id[], hid_t dxpl_id, const void *buf[],
|
||||
void **req)
|
||||
H5VL_dataset_write(size_t count, void *obj[], H5VL_t *connector, hid_t mem_type_id[], hid_t mem_space_id[],
|
||||
hid_t file_space_id[], hid_t dxpl_id, const void *buf[], void **req)
|
||||
{
|
||||
bool vol_wrapper_set = false; /* Whether the VOL object wrapping context was set up */
|
||||
H5VL_object_t tmp_vol_obj; /* Temporary VOL object for setting VOL wrapper */
|
||||
@ -2257,70 +2192,6 @@ done:
|
||||
if (vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
|
||||
HDONE_ERROR(H5E_VOL, H5E_CANTRESET, FAIL, "can't reset VOL wrapper info");
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5VL_dataset_write_direct() */
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5VL_dataset_write
|
||||
*
|
||||
* Purpose: Writes data from dataset through the VOL
|
||||
*
|
||||
* Return: Success: Non-negative
|
||||
* Failure: Negative
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5VL_dataset_write(size_t count, const H5VL_object_t *vol_obj[], hid_t mem_type_id[], hid_t mem_space_id[],
|
||||
hid_t file_space_id[], hid_t dxpl_id, const void *buf[], void **req)
|
||||
{
|
||||
bool vol_wrapper_set = false; /* Whether the VOL object wrapping context was set up */
|
||||
void *obj_local; /* Local buffer for obj */
|
||||
void **obj = &obj_local; /* Array of object pointers */
|
||||
size_t i; /* Local index variable */
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
FUNC_ENTER_NOAPI(FAIL)
|
||||
|
||||
assert(vol_obj);
|
||||
assert(vol_obj[0]);
|
||||
|
||||
/* Set wrapper info in API context */
|
||||
if (H5VL_set_vol_wrapper(vol_obj[0]) < 0)
|
||||
HGOTO_ERROR(H5E_VOL, H5E_CANTSET, FAIL, "can't set VOL wrapper info");
|
||||
vol_wrapper_set = true;
|
||||
|
||||
/* Allocate obj array if necessary */
|
||||
if (count > 1)
|
||||
if (NULL == (obj = (void **)H5MM_malloc(count * sizeof(void *))))
|
||||
HGOTO_ERROR(H5E_VOL, H5E_CANTALLOC, FAIL, "can't allocate space for object array");
|
||||
|
||||
/* Build obj array */
|
||||
for (i = 0; i < count; i++) {
|
||||
/* Get the object */
|
||||
obj[i] = vol_obj[i]->data;
|
||||
|
||||
/* Make sure the class matches */
|
||||
if (vol_obj[i]->connector->cls->value != vol_obj[0]->connector->cls->value)
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL,
|
||||
"datasets are accessed through different VOL connectors and can't be used in the "
|
||||
"same I/O call");
|
||||
}
|
||||
|
||||
/* Call the corresponding internal VOL routine */
|
||||
if (H5VL__dataset_write(count, obj, vol_obj[0]->connector->cls, mem_type_id, mem_space_id, file_space_id,
|
||||
dxpl_id, buf, req) < 0)
|
||||
HGOTO_ERROR(H5E_VOL, H5E_WRITEERROR, FAIL, "dataset write failed");
|
||||
|
||||
done:
|
||||
/* Reset object wrapping info in API context */
|
||||
if (vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
|
||||
HDONE_ERROR(H5E_VOL, H5E_CANTRESET, FAIL, "can't reset VOL wrapper info");
|
||||
|
||||
/* Free memory */
|
||||
if (obj != &obj_local)
|
||||
H5MM_free(obj);
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5VL_dataset_write() */
|
||||
|
||||
|
@ -177,18 +177,12 @@ H5_DLL void *H5VL_dataset_create(const H5VL_object_t *vol_obj, const H5VL_loc_p
|
||||
hid_t dcpl_id, hid_t dapl_id, hid_t dxpl_id, void **req);
|
||||
H5_DLL void *H5VL_dataset_open(const H5VL_object_t *vol_obj, const H5VL_loc_params_t *loc_params,
|
||||
const char *name, hid_t dapl_id, hid_t dxpl_id, void **req);
|
||||
H5_DLL herr_t H5VL_dataset_read(size_t count, const H5VL_object_t *vol_obj[], hid_t mem_type_id[],
|
||||
H5_DLL herr_t H5VL_dataset_read(size_t count, void *obj[], H5VL_t *connector, hid_t mem_type_id[],
|
||||
hid_t mem_space_id[], hid_t file_space_id[], hid_t dxpl_id, void *buf[],
|
||||
void **req);
|
||||
H5_DLL herr_t H5VL_dataset_read_direct(size_t count, void *obj[], H5VL_t *connector, hid_t mem_type_id[],
|
||||
hid_t mem_space_id[], hid_t file_space_id[], hid_t dxpl_id,
|
||||
void *buf[], void **req);
|
||||
H5_DLL herr_t H5VL_dataset_write(size_t count, const H5VL_object_t *vol_obj[], hid_t mem_type_id[],
|
||||
H5_DLL herr_t H5VL_dataset_write(size_t count, void *obj[], H5VL_t *connector, hid_t mem_type_id[],
|
||||
hid_t mem_space_id[], hid_t file_space_id[], hid_t dxpl_id,
|
||||
const void *buf[], void **req);
|
||||
H5_DLL herr_t H5VL_dataset_write_direct(size_t count, void *obj[], H5VL_t *connector, hid_t mem_type_id[],
|
||||
hid_t mem_space_id[], hid_t file_space_id[], hid_t dxpl_id,
|
||||
const void *buf[], void **req);
|
||||
H5_DLL herr_t H5VL_dataset_get(const H5VL_object_t *vol_obj, H5VL_dataset_get_args_t *args, hid_t dxpl_id,
|
||||
void **req);
|
||||
H5_DLL herr_t H5VL_dataset_specific(const H5VL_object_t *cls, H5VL_dataset_specific_args_t *args,
|
||||
|
@ -50,7 +50,7 @@ HDF5-DIAG: Error detected in HDF5 (version (number)):
|
||||
#001: (file name) line (number) in H5D__read_api_common(): can't read data
|
||||
major: Dataset
|
||||
minor: Read failed
|
||||
#002: (file name) line (number) in H5VL_dataset_read_direct(): dataset read failed
|
||||
#002: (file name) line (number) in H5VL_dataset_read(): dataset read failed
|
||||
major: Virtual Object Layer
|
||||
minor: Read failed
|
||||
#003: (file name) line (number) in H5VL__dataset_read(): dataset read failed
|
||||
|
@ -746,8 +746,12 @@ check_options(pack_opt_t *options)
|
||||
}
|
||||
}
|
||||
|
||||
if (options->ublock_filename == NULL && options->ublock_size != 0)
|
||||
H5TOOLS_GOTO_ERROR((-1), "file name missing for user block");
|
||||
if (options->ublock_filename == NULL && options->ublock_size != 0) {
|
||||
if (options->verbose > 0) {
|
||||
printf("Warning: user block file name missing. Reserving a size of %ld...\n",
|
||||
options->ublock_size);
|
||||
}
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
* Verify alignment options; threshold is zero default but alignment not
|
||||
|
@ -368,7 +368,7 @@ copy_objects(const char *fnamein, const char *fnameout, pack_opt_t *options)
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
if (options->ublock_size > 0) {
|
||||
if (options->ublock_filename != NULL && options->ublock_size > 0) {
|
||||
if (copy_user_block(options->ublock_filename, fnameout, options->ublock_size) < 0)
|
||||
H5TOOLS_GOTO_ERROR((-1), "Could not copy user block. Exiting...");
|
||||
}
|
||||
|
@ -979,6 +979,51 @@
|
||||
)
|
||||
endmacro ()
|
||||
|
||||
macro (ADD_H5_VERIFY_USERBLOCK testname userblocksize testfile)
|
||||
if (NOT HDF5_USING_ANALYSIS_TOOL)
|
||||
add_test (
|
||||
NAME H5REPACK_VERIFY_USERBLOCK-${testname}-clear-objects
|
||||
COMMAND ${CMAKE_COMMAND} -E remove testfiles/out-${testname}.${testfile}
|
||||
)
|
||||
add_test (
|
||||
NAME H5REPACK_VERIFY_USERBLOCK-${testname}
|
||||
COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repack> --enable-error-stack ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out-${testname}.${testfile}
|
||||
)
|
||||
set_tests_properties (H5REPACK_VERIFY_USERBLOCK-${testname} PROPERTIES
|
||||
DEPENDS H5REPACK_VERIFY_USERBLOCK-${testname}-clear-objects
|
||||
)
|
||||
if ("H5REPACK_VERIFY_USERBLOCK-${testname}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
|
||||
set_tests_properties (H5REPACK_VERIFY_USERBLOCK-${testname} PROPERTIES DISABLED true)
|
||||
endif ()
|
||||
add_test (
|
||||
NAME H5REPACK_VERIFY_USERBLOCK-${testname}_DMP
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
|
||||
-D "TEST_ARGS:STRING=-H;-B;out-${testname}.${testfile}"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
|
||||
-D "TEST_OUTPUT=${testfile}-${testname}-v.out"
|
||||
-D "TEST_EXPECT=${resultcode}"
|
||||
-D "TEST_FILTER:STRING=USERBLOCK_SIZE ${userblocksize}"
|
||||
-D "TEST_REFERENCE=USERBLOCK_SIZE ${userblocksize}"
|
||||
-P "${HDF_RESOURCES_DIR}/grepTest.cmake"
|
||||
)
|
||||
set_tests_properties (H5REPACK_VERIFY_USERBLOCK-${testname}_DMP PROPERTIES
|
||||
DEPENDS H5REPACK_VERIFY_USERBLOCK-${testname}
|
||||
)
|
||||
if ("H5REPACK_VERIFY_USERBLOCK-${testname}_DMP" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
|
||||
set_tests_properties (H5REPACK_VERIFY_USERBLOCK-${testname}_DMP PROPERTIES DISABLED true)
|
||||
endif ()
|
||||
add_test (
|
||||
NAME H5REPACK_VERIFY_USERBLOCK-${testname}-clean-objects
|
||||
COMMAND ${CMAKE_COMMAND} -E remove testfiles/out-${testname}.${testfile}
|
||||
)
|
||||
set_tests_properties (H5REPACK_VERIFY_USERBLOCK-${testname}-clean-objects PROPERTIES
|
||||
DEPENDS H5REPACK_VERIFY_USERBLOCK-${testname}_DMP
|
||||
)
|
||||
endif ()
|
||||
endmacro ()
|
||||
|
||||
macro (ADD_H5_TEST_META testname testfile)
|
||||
# Remove any output file left over from previous test run
|
||||
add_test (
|
||||
@ -1540,7 +1585,7 @@
|
||||
ADD_H5_TEST (szip_convert ${TESTTYPE} ${arg})
|
||||
|
||||
#limit
|
||||
set (arg ${FILE4} -f GZIP=1 -m 1024)
|
||||
set (arg ${FILE4} -f GZIP=2 -m 1024)
|
||||
set (TESTTYPE "TEST")
|
||||
if (NOT USE_FILTER_DEFLATE)
|
||||
set (TESTTYPE "SKIP")
|
||||
@ -1719,6 +1764,9 @@
|
||||
set (arg ${FILE1} -u ${PROJECT_BINARY_DIR}/testfiles/ublock.bin -b 2048)
|
||||
ADD_H5_TEST (add_userblock "TEST" ${arg})
|
||||
|
||||
# add a userblock reserve to file
|
||||
ADD_H5_VERIFY_USERBLOCK (reserve_userblock 2048 ${FILE1} -b 2048)
|
||||
|
||||
# add alignment
|
||||
set (arg ${FILE1} -t 1 -a 1)
|
||||
ADD_H5_TEST (add_alignment "TEST" ${arg})
|
||||
|
@ -8,7 +8,7 @@ GROUP "/" {
|
||||
SIZE XXXX (2.XXX:1 COMPRESSION)
|
||||
}
|
||||
FILTERS {
|
||||
COMPRESSION DEFLATE { LEVEL 1 }
|
||||
COMPRESSION DEFLATE { LEVEL 2 }
|
||||
}
|
||||
FILLVALUE {
|
||||
FILL_TIME H5D_FILL_TIME_IFSET
|
||||
@ -26,7 +26,7 @@ GROUP "/" {
|
||||
SIZE XXXX (2.XXX:1 COMPRESSION)
|
||||
}
|
||||
FILTERS {
|
||||
COMPRESSION DEFLATE { LEVEL 1 }
|
||||
COMPRESSION DEFLATE { LEVEL 2 }
|
||||
}
|
||||
FILLVALUE {
|
||||
FILL_TIME H5D_FILL_TIME_IFSET
|
||||
@ -44,7 +44,7 @@ GROUP "/" {
|
||||
SIZE XXXX (2.XXX:1 COMPRESSION)
|
||||
}
|
||||
FILTERS {
|
||||
COMPRESSION DEFLATE { LEVEL 1 }
|
||||
COMPRESSION DEFLATE { LEVEL 2 }
|
||||
}
|
||||
FILLVALUE {
|
||||
FILL_TIME H5D_FILL_TIME_IFSET
|
||||
@ -62,7 +62,7 @@ GROUP "/" {
|
||||
SIZE XXXX (2.XXX:1 COMPRESSION)
|
||||
}
|
||||
FILTERS {
|
||||
COMPRESSION DEFLATE { LEVEL 1 }
|
||||
COMPRESSION DEFLATE { LEVEL 2 }
|
||||
}
|
||||
FILLVALUE {
|
||||
FILL_TIME H5D_FILL_TIME_IFSET
|
||||
@ -80,7 +80,7 @@ GROUP "/" {
|
||||
SIZE XXXX (2.XXX:1 COMPRESSION)
|
||||
}
|
||||
FILTERS {
|
||||
COMPRESSION DEFLATE { LEVEL 1 }
|
||||
COMPRESSION DEFLATE { LEVEL 2 }
|
||||
}
|
||||
FILLVALUE {
|
||||
FILL_TIME H5D_FILL_TIME_IFSET
|
||||
@ -98,7 +98,7 @@ GROUP "/" {
|
||||
SIZE XXXX (2.XXX:1 COMPRESSION)
|
||||
}
|
||||
FILTERS {
|
||||
COMPRESSION DEFLATE { LEVEL 1 }
|
||||
COMPRESSION DEFLATE { LEVEL 2 }
|
||||
}
|
||||
FILLVALUE {
|
||||
FILL_TIME H5D_FILL_TIME_IFSET
|
||||
@ -116,7 +116,7 @@ GROUP "/" {
|
||||
SIZE XXXX (2.XXX:1 COMPRESSION)
|
||||
}
|
||||
FILTERS {
|
||||
COMPRESSION DEFLATE { LEVEL 1 }
|
||||
COMPRESSION DEFLATE { LEVEL 2 }
|
||||
}
|
||||
FILLVALUE {
|
||||
FILL_TIME H5D_FILL_TIME_IFSET
|
||||
|
@ -1632,7 +1632,7 @@ fi
|
||||
|
||||
|
||||
#limit
|
||||
arg="h5repack_layout.h5 -f GZIP=1 -m 1024"
|
||||
arg="h5repack_layout.h5 -f GZIP=2 -m 1024"
|
||||
if test $USE_FILTER_DEFLATE != "yes" ; then
|
||||
SKIP $arg
|
||||
else
|
||||
@ -1805,6 +1805,10 @@ fi
|
||||
arg="h5repack_objs.h5 -u ublock.bin -b 2048"
|
||||
TOOLTEST add_userblock $arg
|
||||
|
||||
# reserve a userblock to file
|
||||
arg="h5repack_objs.h5 -b 2048"
|
||||
TOOLTEST reserve_userblock $arg
|
||||
|
||||
# add alignment
|
||||
arg="h5repack_objs.h5 -t 1 -a 1 "
|
||||
TOOLTEST add_alignment $arg
|
||||
|
Loading…
Reference in New Issue
Block a user