mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-03 08:01:25 +08:00
9f461848b5
This commit selects the best HDF5 format compatibility options when re-opening an existing netCDF-4 file for writing, such as appending, or adding new groups or variables. The general objective is to make netCDF-4 files that can be read and written by all previous library versions. Optimal HDF5 v1.8 compatibility is selected whenever possible. Otherwise this falls back to the adequate v1.6 compatibility. Format compatibility is a transient property of the HDF5 library, rather than baked in at file creation time. Therefore, compatibility options must be re-selected every time a netCDF-4 file is re-opened for writing. This builds on the previous update for initial file creation, PR #1931, by @brtnfld, released in netcdf-c version 4.8.1. In particular, this commit moves compatibility controls into a single central location, a new common function that is shared by both create and open functions. For more details, see issue #951, also documentation at the top of libhdf5/hdf5set_format_compatibility.c. This commit also makes several corrections and cleanups to previous comments about the use of related property lists.
28 lines
923 B
CMake
28 lines
923 B
CMake
## This is a CMake file, part of Unidata's netCDF package.
|
|
# Copyright 2018-2022, see the COPYRIGHT file for more information.
|
|
#
|
|
# This builds the HDF5 dispatch layer.
|
|
#
|
|
# Ed Hartnett
|
|
|
|
# The source files for the HDF5 dispatch layer.
|
|
SET(libnchdf5_SOURCES nc4hdf.c nc4info.c hdf5file.c hdf5attr.c
|
|
hdf5dim.c hdf5grp.c hdf5type.c hdf5internal.c hdf5create.c hdf5open.c
|
|
hdf5var.c nc4mem.c nc4memcb.c hdf5dispatch.c hdf5filter.c
|
|
hdf5set_format_compatibility.c hdf5debug.c)
|
|
|
|
IF(ENABLE_BYTERANGE)
|
|
SET(libnchdf5_SOURCES ${libnchdf5_SOURCES} H5FDhttp.c)
|
|
ENDIF()
|
|
|
|
# Build the HDF5 dispatch layer as a library that will be included in
|
|
# the netCDF library.
|
|
add_library(netcdfhdf5 OBJECT ${libnchdf5_SOURCES})
|
|
|
|
IF(MPI_C_INCLUDE_PATH)
|
|
target_include_directories(netcdfhdf5 PUBLIC ${MPI_C_INCLUDE_PATH})
|
|
ENDIF(MPI_C_INCLUDE_PATH)
|
|
|
|
# Remember to package this file for CMake builds.
|
|
ADD_EXTRA_DIST(${libnchdf5_SOURCES} CMakeLists.txt)
|