更新了 vcpkg.json

master
剑古敛锋 2024-03-20 16:12:44 +08:00
parent 7c88569bea
commit 91ae6fce63
3605 changed files with 1060435 additions and 0 deletions

View File

@ -0,0 +1,24 @@
@echo off
setlocal
set dir=%~dps0
if not exist %dir%cgnsconvert.exe goto notfound
rem -- for path setting to dlls
if exist %dir%..\cgconfig.bat call %dir%..\cgconfig.bat
if exist %dir%cgconfig.bat call %dir%cgconfig.bat
set links=
if "%1" == "-links" (
set links=-l
shift
)
%dir%cgnsconvert -h %links% %1 %2
goto done
:notfound
echo cgnsconvert.exe not found in %dir%
:done
endlocal

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
extlib/CGNS/bin/cgnsdll.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,18 @@
@echo off
setlocal
set dir=%~dps0
if not exist %dir%cgnscheck.exe goto notfound
rem -- for path setting to dlls
if exist %dir%..\cgconfig.bat call %dir%..\cgconfig.bat
if exist %dir%cgconfig.bat call %dir%cgconfig.bat
%dir%cgnscheck -U %1 %2
goto done
:notfound
echo cgnscheck.exe not found in %dir%
:done
endlocal

View File

@ -0,0 +1,24 @@
@echo off
setlocal
set dir=%~dps0
if not exist %dir%cgnsconvert.exe goto notfound
rem -- for path setting to dlls
if exist %dir%..\cgconfig.bat call %dir%..\cgconfig.bat
if exist %dir%cgconfig.bat call %dir%cgconfig.bat
set links=
if "%1" == "-links" (
set links=-l
shift
)
%dir%cgnsconvert -a %links% %1 %2
goto done
:notfound
echo cgnsconvert.exe not found in %dir%
:done
endlocal

View File

@ -0,0 +1,77 @@
# makefile include for building CGNS code
# this file contains the options and libraries used for
# building and linking CGNS code, and is intended to be
# included in a user's Makefile from the installation
#-----------------------------------------------------------------------
# CGNS library build options. A 1 indicates that the library
# was built with that option, a 0 indicates without
# CGNS_DEBUG = debug
# CGNS_LEGACY = legacy code (prior to 3.0)
# CGNS_SCOPING = scoping of enums
# CGNS_64BIT = 64 bit support
# CGNS_FORTRAN = Fortran interface
# CGNS_PARALLEL = parallel I/O
# CGNS_BASESCOPE = Base scope for family and zone reference-to
#-----------------------------------------------------------------------
CGNS_DEBUG = 0
CGNS_LEGACY = 0
CGNS_SCOPING = 0
CGNS_64BIT = 1
CGNS_FORTRAN = 0
CGNS_PARALLEL = 0
CGNS_BASESCOPE = 0
#-----------------------------------------------------------------------
# CGNS_LIBDIR - installation directory for CGNS library
# CGNS_INCLUDEDIR - installation directory for CGNS headers
#-----------------------------------------------------------------------
CGNS_LIBDIR = F:\temp\CGNS-4.3.0-INSTALL\lib
CGNS_INCLUDEDIR = F:\temp\CGNS-4.3.0-INSTALL\include
#-----------------------------------------------------------------------
# CGNS_CC - C compiler used to build library
# CGNS_CFLAGS - compiler flags used to build library
# CGNS_LDFLAGS - any additional linking flags
#-----------------------------------------------------------------------
CGNS_CC = D:\software\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64\cl.exe
CGNS_CFLAGS = /DWIN32 /D_WINDOWS /W3 /MD /O2 /Ob2 /DNDEBUG
CGNS_LDFLAGS = /machine:x64 /INCREMENTAL:NO
#-----------------------------------------------------------------------
# LIBCGNS - CGNS library name
#-----------------------------------------------------------------------
CGNS_LIB = $(CGNS_LIBDIR)/cgns.lib
#-----------------------------------------------------------------------
# CGNS_HDF5INC - path to HDF5 header files
# CGNS_HDF5LIB - HDF5 library
# CGNS_SZIPLIB - szip library (if needed)
# CGNS_ZLIBLIB - zlib library (if needed)
#-----------------------------------------------------------------------
CGNS_HDF5INC =
CGNS_HDF5LIB = hdf5-shared
CGNS_SZIPLIB =
CGNS_ZLIBLIB =
#-----------------------------------------------------------------------
# CGNS_MPIINC - path to MPI header files
# CGNS_MPILIBS - MPI libraries
#-----------------------------------------------------------------------
CGNS_MPIINC =
CGNS_MPILIBS =
#-----------------------------------------------------------------------
# CGNS_LINKLIBS contains the list of libraries
# with which a CGNS application needs to link
#-----------------------------------------------------------------------
CGNS_LINKLIBS = $(CGNS_LIB) $(CGNS_HDF5LIB) $(CGNS_SZIPLIB) \
$(CGNS_ZLIBLIB) $(CGNS_MPILIBS)

View File

@ -0,0 +1,473 @@
/* ------------------------------------------------------------------------- *
* CGNS - CFD General Notation System (http://www.cgns.org) *
* CGNS/MLL - Mid-Level Library header file *
* Please see cgnsconfig.h file for this local installation configuration *
* ------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------- *
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from
the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
* ------------------------------------------------------------------------- */
#ifndef CGNS_IO_H
#define CGNS_IO_H
#include "cgnstypes.h"
#if defined(_WIN32) && defined(BUILD_DLL)
# define CGEXTERN extern __declspec(dllexport)
#else
# define CGEXTERN extern
#endif
/* these should be the same as in cgnslib.h
but are included here for completeness */
#define CGIO_MODE_READ 0
#define CGIO_MODE_WRITE 1
#define CGIO_MODE_MODIFY 2
#define CGIO_FILE_NONE 0
#define CGIO_FILE_ADF 1
#define CGIO_FILE_HDF5 2
#define CGIO_FILE_ADF2 3
#define CGIO_CONTIGUOUS 0
#define CGIO_COMPACT 1
#define CGIO_CHUNKED 2
/* currently these are the same as for ADF */
#define CGIO_MAX_DATATYPE_LENGTH 2
#define CGIO_MAX_DIMENSIONS 12
#define CGIO_MAX_NAME_LENGTH 32
#define CGIO_MAX_LABEL_LENGTH 32
#define CGIO_MAX_VERSION_LENGTH 32
#define CGIO_MAX_DATE_LENGTH 32
#define CGIO_MAX_ERROR_LENGTH 80
#define CGIO_MAX_LINK_DEPTH 100
#define CGIO_MAX_FILE_LENGTH 1024
#define CGIO_MAX_LINK_LENGTH 4096
/* these are the cgio error codes */
#define CGIO_ERR_NONE 0
#define CGIO_ERR_BAD_CGIO -1
#define CGIO_ERR_MALLOC -2
#define CGIO_ERR_FILE_MODE -3
#define CGIO_ERR_FILE_TYPE -4
#define CGIO_ERR_NULL_FILE -5
#define CGIO_ERR_TOO_SMALL -6
#define CGIO_ERR_NOT_FOUND -7
#define CGIO_ERR_NULL_PATH -8
#define CGIO_ERR_NO_MATCH -9
#define CGIO_ERR_FILE_OPEN -10
#define CGIO_ERR_READ_ONLY -11
#define CGIO_ERR_NULL_STRING -12
#define CGIO_ERR_BAD_OPTION -13
#define CGIO_ERR_FILE_RENAME -14
#define CGIO_ERR_TOO_MANY -15
#define CGIO_ERR_DIMENSIONS -16
#define CGIO_ERR_BAD_TYPE -17
#define CGIO_ERR_NOT_HDF5 -18
#ifdef __cplusplus
extern "C" {
#endif
/*---------------------------------------------------------*/
CGEXTERN int cgio_path_add (
const char *path
);
CGEXTERN int cgio_path_delete (
const char *path
);
CGEXTERN int cgio_find_file (
const char *parentfile,
const char *filename,
int file_type,
int max_path_len,
char *pathname
);
/*---------------------------------------------------------*/
CGEXTERN int cgio_is_supported (
int file_type
);
CGEXTERN int cgio_configure (
int what,
void *value
);
CGEXTERN void cgio_cleanup (void);
CGEXTERN int cgio_check_file (
const char *filename,
int *file_type
);
CGEXTERN int cgio_compute_data_size (
const char *data_type,
int num_dims,
const cgsize_t *dim_vals,
cglong_t *count
);
CGEXTERN int cgio_check_dimensions (
int ndims,
const cglong_t *dims
);
CGEXTERN int cgio_copy_dimensions (
int ndims,
const cglong_t *dims64,
cgsize_t *dims
);
/*---------------------------------------------------------*/
CGEXTERN int cgio_open_file (
const char *filename,
int file_mode,
int file_type,
int *cgio_num
);
CGEXTERN int cgio_close_file (
int cgio_num
);
CGEXTERN int cgio_compress_file (
int cgio_num,
const char *filename
);
CGEXTERN int cgio_copy_file (
int cgio_num_inp,
int cgio_num_out,
int follow_links
);
CGEXTERN int cgio_flush_to_disk (
int cgio_num
);
/*---------------------------------------------------------*/
CGEXTERN int cgio_library_version (
int cgio_num,
char *version
);
CGEXTERN int cgio_file_version (
int cgio_num,
char *file_version,
char *creation_date,
char *modified_date
);
CGEXTERN int cgio_get_root_id (
int cgio_num,
double *rootid
);
CGEXTERN int cgio_get_file_type (
int cgio_num,
int *file_type
);
/*---------------------------------------------------------*/
CGEXTERN void cgio_error_code (
int *errcode,
int *file_type
);
CGEXTERN int cgio_error_message (
char *error_msg
);
CGEXTERN void cgio_error_exit (
const char *msg
);
CGEXTERN void cgio_error_abort (
int abort_flag
);
/*---------------------------------------------------------*/
CGEXTERN int cgio_create_node (
int cgio_num,
double pid,
const char *name,
double *id
);
CGEXTERN int cgio_new_node (
int cgio_num,
double pid,
const char *name,
const char *label,
const char *data_type,
int ndims,
const cgsize_t *dims,
const void *data,
double *id
);
CGEXTERN int cgio_delete_node (
int cgio_num,
double pid,
double id
);
CGEXTERN int cgio_move_node (
int cgio_num,
double pid,
double id,
double new_pid
);
CGEXTERN int cgio_copy_node (
int cgio_num_inp,
double id_inp,
int cgio_num_out,
double id_out
);
CGEXTERN int cgio_release_id (
int cgio_num,
double id
);
/*---------------------------------------------------------*/
CGEXTERN int cgio_is_link (
int cgio_num,
double id,
int *link_len
);
CGEXTERN int cgio_link_size (
int cgio_num,
double id,
int *file_len,
int *name_len
);
CGEXTERN int cgio_create_link (
int cgio_num,
double pid,
const char *name,
const char *filename,
const char *name_in_file,
double *id
);
CGEXTERN int cgio_get_link (
int cgio_num,
double id,
char *filename,
char *name_in_file
);
/*---------------------------------------------------------*/
CGEXTERN int cgio_number_children (
int cgio_num,
double id,
int *num_children
);
CGEXTERN int cgio_children_ids (
int cgio_num,
double pid,
int start,
int max_ret,
int *num_ret,
double *ids
);
CGEXTERN int cgio_children_names (
int cgio_num,
double pid,
int start,
int max_ret,
int name_len,
int *num_ret,
char *names
);
/*---------------------------------------------------------*/
CGEXTERN int cgio_get_node_id (
int cgio_num,
double pid,
const char *name,
double *id
);
CGEXTERN int cgio_get_name (
int cgio_num,
double id,
char *name
);
CGEXTERN int cgio_get_label (
int cgio_num,
double id,
char *label
);
CGEXTERN int cgio_get_data_type (
int cgio_num,
double id,
char *data_type
);
CGEXTERN int cgio_get_data_size (
int cgio_num,
double id,
cglong_t *data_size
);
CGEXTERN int cgio_get_dimensions (
int cgio_num,
double id,
int *num_dims,
cgsize_t *dims
);
CGEXTERN int cgio_read_all_data_type (
int cgio_num,
double id,
const char *m_data_type,
void *data
);
CGEXTERN int cgio_read_block_data_type (
int cgio_num,
double id,
cgsize_t b_start,
cgsize_t b_end,
const char *m_data_type,
void *data
);
CGEXTERN int cgio_read_data_type (
int cgio_num,
double id,
const cgsize_t *s_start,
const cgsize_t *s_end,
const cgsize_t *s_stride,
const char *m_data_type,
int m_num_dims,
const cgsize_t *m_dims,
const cgsize_t *m_start,
const cgsize_t *m_end,
const cgsize_t *m_stride,
void *data
);
/*---------------------------------------------------------*/
CGEXTERN int cgio_set_name (
int cgio_num,
double pid,
double id,
const char *name
);
CGEXTERN int cgio_set_label (
int cgio_num,
double id,
const char *label
);
CGEXTERN int cgio_set_dimensions (
int cgio_num,
double id,
const char *data_type,
int num_dims,
const cgsize_t *dims
);
CGEXTERN int cgio_write_all_data (
int cgio_num,
double id,
const void *data
);
CGEXTERN int cgio_write_all_data_type (
int cgio_num,
double id,
const char *m_data_type,
const void *data
);
CGEXTERN int cgio_write_block_data (
int cgio_num,
double id,
cgsize_t b_start,
cgsize_t b_end,
void *data
);
CGEXTERN int cgio_write_data (
int cgio_num,
double id,
const cgsize_t *s_start,
const cgsize_t *s_end,
const cgsize_t *s_stride,
int m_num_dims,
const cgsize_t *m_dims,
const cgsize_t *m_start,
const cgsize_t *m_end,
const cgsize_t *m_stride,
const void *data
);
CGEXTERN int cgio_write_data_type (
int cgio_num,
double id,
const cgsize_t *s_start,
const cgsize_t *s_end,
const cgsize_t *s_stride,
const char *m_data_type,
int m_num_dims,
const cgsize_t *m_dims,
const cgsize_t *m_start,
const cgsize_t *m_end,
const cgsize_t *m_stride,
const void *data
);
#ifdef __cplusplus
}
#endif
#undef CGEXTERN
#endif

View File

@ -0,0 +1,59 @@
/* ------------------------------------------------------------------------- *
* CGNS - CFD General Notation System (http://www.cgns.org) *
* CGNS/MLL - Mid-Level Library header file *
* ------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------- *
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from
the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
* ------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------- *
This file has been generated during the CGNS/MLL installation.
This is a snapshot of the parameters used for CGNS/MLL production and
some PATHS parameters (headers or shared libs) may change or
disappear (for example in case of cross-compilation).
* ------------------------------------------------------------------------- */
#ifndef CGNSCONFIG_H
#define CGNSCONFIG_H
#define CG_BUILD_DEBUG 0
#define CG_BUILD_FORTRAN 0
#define CG_BUILD_BASESCOPE 0
#define HDF5_INCLUDE_PATH ""
#define HDF5_LIBRARY "hdf5-shared"
#define HDF5_NEED_MPI 0
#define HDF5_NEED_SZIP 0
#define HDF5_NEED_ZLIB 0
#define MPI_INCLUDE_PATH ""
#define MPI_LIBRARY ""
#define SZIP_LIBRARY ""
#define ZLIB_LIBRARY ""
#define MPI_INC ""
#define MPI_LIBS ""
#include "cgnstypes.h"
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,106 @@
/* ------------------------------------------------------------------------- *
* CGNS - CFD General Notation System (http://www.cgns.org) *
* CGNS/MLL - Mid-Level Library header file *
* Please see cgnsconfig.h file for this local installation configuration *
* ------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------- *
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from
the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
* ------------------------------------------------------------------------- */
#ifndef CGNSTYPES_H
#define CGNSTYPES_H
#define CG_BUILD_HDF5 1
#define CG_BUILD_LEGACY 0
#define CG_BUILD_64BIT 1
#define CG_BUILD_SCOPE 0
#define CG_BUILD_BASESCOPE 0
#define CG_BUILD_PARALLEL 0
#define CG_BUILD_COMPLEX_C99_EXT 0
#define CG_MAX_INT32 0x7FFFFFFF
#ifdef _WIN32
# define CG_LONG_T __int64
#else
# define CG_LONG_T long long
#endif
#if CG_BUILD_HDF5
/* ----------------------------------------------------------------
* convert between HDF5 and ADF ids
* ---------------------------------------------------------------- */
#define to_ADF_ID(ID,ADF_ID) memcpy(&(ADF_ID),&(ID),sizeof(hid_t))
#define to_HDF_ID(ADF_ID,ID) memcpy(&(ID),&(ADF_ID),sizeof(hid_t))
/* Determine if hdf5 has multi-dataset read/write capabilities */
#define HDF5_HAVE_MULTI_DATASETS 0
/* Determine if hdf5 has collective metadata APIs */
#define HDF5_HAVE_COLL_METADATA 0
/* Determine if hdf5 H5Pset_file_space_strategy */
#define HDF5_HAVE_FILE_SPACE_STRATEGY 1
#endif
#define CG_HAVE_STAT64_STRUCT 1
#if CG_BUILD_LEGACY
# define CG_SIZEOF_SIZE 32
# define CG_SIZE_DATATYPE "I4"
# define cgerr_t int
# define cgint_t int
# define cgsize_t int
# define cgid_t double
#else
# if CG_BUILD_64BIT
# define CG_SIZEOF_SIZE 64
# define CG_SIZE_DATATYPE "I8"
typedef CG_LONG_T cgsize_t;
# else
# define CG_SIZEOF_SIZE 32
# define CG_SIZE_DATATYPE "I4"
typedef int cgsize_t;
# endif
typedef int cgerr_t;
typedef int cgint_t;
typedef double cgid_t;
#endif
/* Define an int type that is interoperabable with Fortran's INTEGER */
#define FORTRAN_DEFAULT_INTEGER_C_INT64_T 0
#if FORTRAN_DEFAULT_INTEGER_C_INT64_T == 1
typedef CG_LONG_T cgint_f;
#else
typedef int cgint_f;
#endif
typedef CG_LONG_T cglong_t;
typedef unsigned CG_LONG_T cgulong_t;
#endif

View File

@ -0,0 +1,65 @@
!* ------------------------------------------------------------------------- *
!* CGNS - CFD General Notation System (http://www.cgns.org) *
!* CGNS/MLL - Mid-Level Library header file *
!* Please see cgnsconfig.h file for this local installation configuration *
!* ------------------------------------------------------------------------- *
!
!* ------------------------------------------------------------------------- *
!
! This software is provided 'as-is', without any express or implied warranty.
! In no event will the authors be held liable for any damages arising from
! the use of this software.
!
! Permission is granted to anyone to use this software for any purpose,
! including commercial applications, and to alter it and redistribute it
! freely, subject to the following restrictions:
!
! 1. The origin of this software must not be misrepresented; you must not
! claim that you wrote the original software. If you use this software
! in a product, an acknowledgment in the product documentation would be
! appreciated but is not required.
!
! 2. Altered source versions must be plainly marked as such, and must not
! be misrepresented as being the original software.
!
! 3. This notice may not be removed or altered from any source distribution.
!
!* ------------------------------------------------------------------------- *
#ifndef CGNSTYPES_F_H
#define CGNSTYPES_F_H
#define CG_BUILD_PARALLEL_F 0
#define CG_BUILD_64BIT_F 1
!#define HAVE_FORTRAN_2003 0
#define HAVE_FORTRAN_2003 0
#if HAVE_FORTRAN_2003
# if CG_BUILD_64BIT_F
# define cgsize_t INTEGER(KIND=C_LONG_LONG)
# define CGSIZE_T INTEGER(KIND=C_LONG_LONG)
# else
# define cgsize_t INTEGER(KIND=C_INT)
# define CGSIZE_T INTEGER(KIND=C_INT)
# endif
# define cglong_t INTEGER(KIND=C_LONG_LONG)
# define CGLONG_T INTEGER(KIND=C_LONG_LONG)
# define cgid_t REAL(KIND=C_DOUBLE)
# define CGID_T REAL(KIND=C_DOUBLE)
#else
# if CG_BUILD_64BIT_F
# define cgsize_t integer*8
# define CGSIZE_T integer*8
# else
# define cgsize_t integer*4
# define CGSIZE_T integer*4
# endif
# define cglong_t integer*8
# define CGLONG_T integer*8
# define cgid_t real*8
# define CGID_T real*8
#endif
#endif

View File

@ -0,0 +1,70 @@
!* ------------------------------------------------------------------------- *
!* CGNS - CFD General Notation System (http://www.cgns.org) *
!* CGNS/MLL - Mid-Level Library header file *
!* Please see cgnsconfig.h file for this local installation configuration *
!* ------------------------------------------------------------------------- *
!
!* ------------------------------------------------------------------------- *
!
! This software is provided 'as-is', without any express or implied warranty.
! In no event will the authors be held liable for any damages arising from
! the use of this software.
!
! Permission is granted to anyone to use this software for any purpose,
! including commercial applications, and to alter it and redistribute it
! freely, subject to the following restrictions:
!
! 1. The origin of this software must not be misrepresented; you must not
! claim that you wrote the original software. If you use this software
! in a product, an acknowledgment in the product documentation would be
! appreciated but is not required.
!
! 2. Altered source versions must be plainly marked as such, and must not
! be misrepresented as being the original software.
!
! 3. This notice may not be removed or altered from any source distribution.
!
!* ------------------------------------------------------------------------- *
#ifndef CGNSTYPES_F03_H
#define CGNSTYPES_F03_H
#define CG_BUILD_PARALLEL_F 0
#define CG_BUILD_64BIT_F 1
#define HAVE_FORTRAN_95 0
#define HAVE_FORTRAN_2003 0
#define HAVE_FORTRAN_2008TS 0
#define HDF5_HAVE_MULTI_DATASETS 0
#define CG_BUILD_HDF5 1
#define CG_BUILD_SCOPE 0
#define CGNS_BASESCOPE 0
#if CG_BUILD_SCOPE
# ifndef CGNS_SCOPE_ENUMS
# define CGNS_SCOPE_ENUMS
# endif
#else
# ifdef CGNS_SCOPE_ENUMS
# undef CGNS_SCOPE_ENUMS
# endif
#endif
#ifdef __GFORTRAN__
#define PASTE(a) a
#define CONCATENATE(a,b) PASTE(a)b
#else
#define PASTE(a,b) a ## b
#define CONCATENATE(a,b) PASTE(a,b)
#endif
#ifdef CGNS_SCOPE_ENUMS
! set scope prefix (case does not matter in Fortran)
#define CGNS_ENUMV(x) CONCATENATE(CG_,x)
#else
#define CGNS_ENUMV(x) x
#endif
#endif

View File

@ -0,0 +1,5 @@
!DEC$ ATTRIBUTES REFERENCE, C, VARYING :: cg_goto_f
!DEC$ ATTRIBUTES REFERENCE, C, VARYING :: cg_array_read_f
!DEC$ ATTRIBUTES REFERENCE, C, VARYING :: cg_array_read_as_f
!DEC$ ATTRIBUTES REFERENCE, C, VARYING :: cg_array_write_f

BIN
extlib/CGNS/lib/cgns.lib Normal file

Binary file not shown.

BIN
extlib/CGNS/lib/cgnsdll.lib Normal file

Binary file not shown.

View File

@ -0,0 +1,29 @@
#----------------------------------------------------------------
# Generated CMake target import file for configuration "Release".
#----------------------------------------------------------------
# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)
# Import target "CGNS::cgns_static" for configuration "Release"
set_property(TARGET CGNS::cgns_static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(CGNS::cgns_static PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/cgns.lib"
)
list(APPEND _IMPORT_CHECK_TARGETS CGNS::cgns_static )
list(APPEND _IMPORT_CHECK_FILES_FOR_CGNS::cgns_static "${_IMPORT_PREFIX}/lib/cgns.lib" )
# Import target "CGNS::cgns_shared" for configuration "Release"
set_property(TARGET CGNS::cgns_shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(CGNS::cgns_shared PROPERTIES
IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/cgnsdll.lib"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/cgnsdll.dll"
)
list(APPEND _IMPORT_CHECK_TARGETS CGNS::cgns_shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_CGNS::cgns_shared "${_IMPORT_PREFIX}/lib/cgnsdll.lib" "${_IMPORT_PREFIX}/bin/cgnsdll.dll" )
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)

View File

@ -0,0 +1,108 @@
# Generated by CMake
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6)
message(FATAL_ERROR "CMake >= 2.6.0 required")
endif()
cmake_policy(PUSH)
cmake_policy(VERSION 2.6...3.21)
#----------------------------------------------------------------
# Generated CMake target import file.
#----------------------------------------------------------------
# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)
# Protect against multiple inclusion, which would fail when already imported targets are added once more.
set(_targetsDefined)
set(_targetsNotDefined)
set(_expectedTargets)
foreach(_expectedTarget CGNS::cgns_static CGNS::cgns_shared)
list(APPEND _expectedTargets ${_expectedTarget})
if(NOT TARGET ${_expectedTarget})
list(APPEND _targetsNotDefined ${_expectedTarget})
endif()
if(TARGET ${_expectedTarget})
list(APPEND _targetsDefined ${_expectedTarget})
endif()
endforeach()
if("${_targetsDefined}" STREQUAL "${_expectedTargets}")
unset(_targetsDefined)
unset(_targetsNotDefined)
unset(_expectedTargets)
set(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP)
return()
endif()
if(NOT "${_targetsDefined}" STREQUAL "")
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n")
endif()
unset(_targetsDefined)
unset(_targetsNotDefined)
unset(_expectedTargets)
# Compute the installation prefix relative to this file.
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
if(_IMPORT_PREFIX STREQUAL "/")
set(_IMPORT_PREFIX "")
endif()
# Create imported target CGNS::cgns_static
add_library(CGNS::cgns_static STATIC IMPORTED)
set_target_properties(CGNS::cgns_static PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:\$<\$<BOOL:ON>:hdf5::hdf5-shared>>"
)
# Create imported target CGNS::cgns_shared
add_library(CGNS::cgns_shared SHARED IMPORTED)
set_target_properties(CGNS::cgns_shared PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "USE_DLL"
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "hdf5::hdf5-shared;\$<\$<NOT:\$<PLATFORM_ID:Windows>>:>"
)
if(CMAKE_VERSION VERSION_LESS 2.8.12)
message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.")
endif()
# Load information for each installed configuration.
get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
file(GLOB CONFIG_FILES "${_DIR}/cgns-targets-*.cmake")
foreach(f ${CONFIG_FILES})
include(${f})
endforeach()
# Cleanup temporary variables.
set(_IMPORT_PREFIX)
# Loop over all imported files and verify that they actually exist
foreach(target ${_IMPORT_CHECK_TARGETS} )
foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} )
if(NOT EXISTS "${file}" )
message(FATAL_ERROR "The imported target \"${target}\" references the file
\"${file}\"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
\"${CMAKE_CURRENT_LIST_FILE}\"
but not all the files it references.
")
endif()
endforeach()
unset(_IMPORT_CHECK_FILES_FOR_${target})
endforeach()
unset(_IMPORT_CHECK_TARGETS)
# This file does not depend on other imported targets which have
# been exported from the same project but in a separate export set.
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP)

BIN
extlib/Gmsh/gmsh.exe Normal file

Binary file not shown.

106
extlib/HDF5/COPYING Normal file
View File

@ -0,0 +1,106 @@
Copyright Notice and License Terms for
HDF5 (Hierarchical Data Format 5) Software Library and Utilities
-----------------------------------------------------------------------------
HDF5 (Hierarchical Data Format 5) Software Library and Utilities
Copyright 2006 by The HDF Group.
NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities
Copyright 1998-2006 by The Board of Trustees of the University of Illinois.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted for any purpose (including commercial purposes)
provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions, and the following disclaimer in the documentation
and/or materials provided with the distribution.
3. Neither the name of The HDF Group, the name of the University, nor the
name of any Contributor may be used to endorse or promote products derived
from this software without specific prior written permission from
The HDF Group, the University, or the Contributor, respectively.
DISCLAIMER:
THIS SOFTWARE IS PROVIDED BY THE HDF GROUP AND THE CONTRIBUTORS
"AS IS" WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. IN NO
EVENT SHALL THE HDF GROUP OR THE CONTRIBUTORS BE LIABLE FOR ANY DAMAGES
SUFFERED BY THE USERS ARISING OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
You are under no obligation whatsoever to provide any bug fixes, patches, or
upgrades to the features, functionality or performance of the source code
("Enhancements") to anyone; however, if you choose to make your Enhancements
available either publicly, or directly to The HDF Group, without imposing a
separate written license agreement for such Enhancements, then you hereby
grant the following license: a non-exclusive, royalty-free perpetual license
to install, use, modify, prepare derivative works, incorporate into other
computer software, distribute, and sublicense such enhancements or derivative
works thereof, in binary and source code form.
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Limited portions of HDF5 were developed by Lawrence Berkeley National
Laboratory (LBNL). LBNL's Copyright Notice and Licensing Terms can be
found here: COPYING_LBNL_HDF5 file in this directory or at
http://support.hdfgroup.org/ftp/HDF5/releases/COPYING_LBNL_HDF5.
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Contributors: National Center for Supercomputing Applications (NCSA) at
the University of Illinois, Fortner Software, Unidata Program Center
(netCDF), The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark Adler
(gzip), and Digital Equipment Corporation (DEC).
-----------------------------------------------------------------------------
Portions of HDF5 were developed with support from the Lawrence Berkeley
National Laboratory (LBNL) and the United States Department of Energy
under Prime Contract No. DE-AC02-05CH11231.
-----------------------------------------------------------------------------
Portions of HDF5 were developed with support from Lawrence Livermore
National Laboratory and the United States Department of Energy under
Prime Contract No. DE-AC52-07NA27344.
-----------------------------------------------------------------------------
Portions of HDF5 were developed with support from the University of
California, Lawrence Livermore National Laboratory (UC LLNL).
The following statement applies to those portions of the product and must
be retained in any redistribution of source code, binaries, documentation,
and/or accompanying materials:
This work was partially produced at the University of California,
Lawrence Livermore National Laboratory (UC LLNL) under contract
no. W-7405-ENG-48 (Contract 48) between the U.S. Department of Energy
(DOE) and The Regents of the University of California (University)
for the operation of UC LLNL.
DISCLAIMER:
THIS WORK WAS PREPARED AS AN ACCOUNT OF WORK SPONSORED BY AN AGENCY OF
THE UNITED STATES GOVERNMENT. NEITHER THE UNITED STATES GOVERNMENT NOR
THE UNIVERSITY OF CALIFORNIA NOR ANY OF THEIR EMPLOYEES, MAKES ANY
WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY OR RESPONSIBILITY
FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY INFORMATION,
APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS THAT ITS USE
WOULD NOT INFRINGE PRIVATELY- OWNED RIGHTS. REFERENCE HEREIN TO ANY
SPECIFIC COMMERCIAL PRODUCTS, PROCESS, OR SERVICE BY TRADE NAME,
TRADEMARK, MANUFACTURER, OR OTHERWISE, DOES NOT NECESSARILY CONSTITUTE
OR IMPLY ITS ENDORSEMENT, RECOMMENDATION, OR FAVORING BY THE UNITED
STATES GOVERNMENT OR THE UNIVERSITY OF CALIFORNIA. THE VIEWS AND
OPINIONS OF AUTHORS EXPRESSED HEREIN DO NOT NECESSARILY STATE OR REFLECT
THOSE OF THE UNITED STATES GOVERNMENT OR THE UNIVERSITY OF CALIFORNIA,
AND SHALL NOT BE USED FOR ADVERTISING OR PRODUCT ENDORSEMENT PURPOSES.
-----------------------------------------------------------------------------

475
extlib/HDF5/RELEASE.txt Normal file
View File

@ -0,0 +1,475 @@
HDF5 version 1.13.1 released on 2022-03-02
================================================================================
INTRODUCTION
============
This document describes the differences between this release and the previous
HDF5 release. It contains information on the platforms tested and known
problems in this release. For more details check the HISTORY*.txt files in the
HDF5 source.
Note that documentation in the links below will be updated at the time of each
final release.
Links to HDF5 documentation can be found on The HDF5 web page:
https://portal.hdfgroup.org/display/HDF5/HDF5
The official HDF5 releases can be obtained from:
https://www.hdfgroup.org/downloads/hdf5/
Changes from Release to Release and New Features in the HDF5-1.13.x release series
can be found at:
https://portal.hdfgroup.org/display/HDF5/HDF5+Application+Developer%27s+Guide
If you have any questions or comments, please send them to the HDF Help Desk:
help@hdfgroup.org
CONTENTS
========
- New Features
- Support for new platforms and languages
- Bug Fixes since HDF5-1.13.0
- Platforms Tested
- Known Problems
- CMake vs. Autotools installations
New Features
============
Configuration:
-------------
- CPack will now generate RPM/DEB packages.
Enabled the RPM and DEB CPack generators on linux. In addition to
generating STGZ and TGZ packages, CPack will try to package the
library for RPM and DEB packages. This is the initial attempt and
may change as issues are resolved.
(ADB - 2022/01/27)
- Added new option to the h5cc scripts produced by CMake.
Add -showconfig option to h5cc scripts to cat the
libhdf5.settings file to the standard output.
(ADB - 2022/01/25)
- CMake will now run the PowerShell script tests in test/ by default
on Windows.
The test directory includes several shell script tests that previously
were not run by CMake on Windows. These are now run by default.
If TEST_SHELL_SCRIPTS is ON and PWSH is found, the PowerShell scripts
will execute. Similar to the bash scripts on unix platforms.
(ADB - 2021/11/23)
Library:
--------
- Add a new public function, H5ESget_requests()
This function allows the user to retrieve request pointers from an event
set. It is intended for use primarily by VOL plugin developers.
(NAF - 2022/01/11)
Parallel Library:
-----------------
- Several improvements to parallel compression feature, including:
* Improved support for collective I/O (for both writes and reads)
* Significant reduction of memory usage for the feature as a whole
* Reduction of copying of application data buffers passed to H5Dwrite
* Addition of support for incremental file space allocation for filtered
datasets created in parallel. Incremental file space allocation is the
default for these types of datasets (early file space allocation is
also still supported), while early file space allocation is still the
default (and only supported at allocation time) for unfiltered datasets
created in parallel. Incremental file space allocation should help with
parallel HDF5 applications that wish to use fill values on filtered
datasets, but would typically avoid doing so since dataset creation in
parallel would often take an excessive amount of time. Since these
datasets previously used early file space allocation, HDF5 would
allocate space for and write fill values to every chunk in the dataset
at creation time, leading to noticeable overhead. Instead, with
incremental file space allocation, allocation of file space for chunks
and writing of fill values to those chunks will be delayed until each
individual chunk is initially written to.
* Addition of support for HDF5's "don't filter partial edge chunks" flag
(https://portal.hdfgroup.org/display/HDF5/H5P_SET_CHUNK_OPTS)
* Addition of proper support for HDF5 fill values with the feature
* Addition of 'H5_HAVE_PARALLEL_FILTERED_WRITES' macro to H5pubconf.h
so HDF5 applications can determine at compile-time whether the feature
is available
* Addition of simple examples (ph5_filtered_writes.c and
ph5_filtered_writes_no_sel.c) under examples directory to demonstrate
usage of the feature
* Improved coverage of regression testing for the feature
(JTH - 2022/2/23)
Fortran Library:
----------------
-
C++ Library:
------------
-
Java Library:
-------------
-
Tools:
------
-
High-Level APIs:
----------------
-
C Packet Table API:
-------------------
-
Internal header file:
---------------------
-
Documentation:
--------------
-
Support for new platforms, languages and compilers
==================================================
-
Bug Fixes since HDF5-1.13.0 release
===================================
Library
-------
- Fixed a metadata cache bug when resizing a pinned/protected cache entry
When resizing a pinned/protected cache entry, the metadata
cache code previously would wait until after resizing the
entry to attempt to log the newly-dirtied entry. This
caused H5C_resize_entry to mark the entry as dirty and made
H5AC_resize_entry think that it didn't need to add the
newly-dirtied entry to the dirty entries skiplist.
Thus, a subsequent H5AC__log_moved_entry would think it
needed to allocate a new entry for insertion into the dirty
entry skip list, since the entry didGn't exist on that list.
This caused an assertion failure, as the code to allocate a
new entry assumes that the entry is not dirty.
(JRM - 2022/02/28)
- Issue #1436 identified a problem with the H5_VERS_RELEASE check in the
H5check_version function.
Investigating the original fix, #812, we discovered some inconsistencies
with a new block added to check H5_VERS_RELEASE for incompatibilities.
This new block was not using the new warning text dealing with the
H5_VERS_RELEASE check and would cause the warning to be duplicated.
By removing the H5_VERS_RELEASE argument in the first check for
H5_VERS_MAJOR and H5_VERS_MINOR, the second check would only check
the H5_VERS_RELEASE for incompatible release versions. This adheres
to the statement that except for the develop branch, all release versions
in a major.minor maintenance branch should be compatible. The prerequisite
is that an application will not use any APIs not present in all release versions.
(ADB - 2022/02/24, #1438)
- Unified handling of collective metadata reads to correctly fix old bugs
Due to MPI-related issues occurring in HDF5 from mismanagement of the
status of collective metadata reads, they were forced to be disabled
during chunked dataset raw data I/O in the HDF5 1.10.5 release. This
wouldn't generally have affected application performance because HDF5
already disables collective metadata reads during chunk lookup, since
it is generally unlikely that the same chunks will be read by all MPI
ranks in the I/O operation. However, this was only a partial solution
that wasn't granular enough.
This change now unifies the handling of the file-global flag and the
API context-level flag for collective metadata reads in order to
simplify querying of the true status of collective metadata reads. Thus,
collective metadata reads are once again enabled for chunked dataset
raw data I/O, but manually controlled at places where some processing
occurs on MPI rank 0 only and would cause issues when collective
metadata reads are enabled.
(JTH - 2021/11/16, HDFFV-10501/HDFFV-10562)
- Fixed several potential MPI deadlocks in library failure conditions
In the parallel library, there were several places where MPI rank 0
could end up skipping past collective MPI operations when some failure
occurs in rank 0-specific processing. This would lead to deadlocks
where rank 0 completes an operation while other ranks wait in the
collective operation. These places have been rewritten to have rank 0
push an error and try to cleanup after the failure, then continue to
participate in the collective operation to the best of its ability.
(JTH - 2021/11/09)
Java Library
------------
-
Configuration
-------------
-
Tools
-----
-
Performance
-------------
-
Fortran API
-----------
-
High-Level Library
------------------
-
Fortran High-Level APIs
-----------------------
-
Documentation
-------------
-
F90 APIs
--------
-
C++ APIs
--------
-
Platforms Tested
===================
Linux 5.13.14-200.fc34 GNU gcc (GCC) 11.2.1 2021078 (Red Hat 11.2.1-1)
#1 SMP x86_64 GNU/Linux GNU Fortran (GCC) 11.2.1 2021078 (Red Hat 11.2.1-1)
Fedora34 clang version 12.0.1 (Fedora 12.0.1-1.fc34)
(cmake and autotools)
Linux 5.11.0-34-generic GNU gcc (GCC) 9.3.0-17ubuntu1
#36-Ubuntu SMP x86_64 GNU/Linux GNU Fortran (GCC) 9.3.0-17ubuntu1
Ubuntu 20.04 Ubuntu clang version 10.0.0-4
(cmake and autotools)
Linux 5.8.0-63-generic GNU gcc (GCC) 10.3.0-1ubuntu1
#71-Ubuntu SMP x86_64 GNU/Linux GNU Fortran (GCC) 10.3.0-1ubuntu1
Ubuntu20.10 Ubuntu clang version 11.0.0-2
(cmake and autotools)
Linux 5.3.18-22-default GNU gcc (SUSE Linux) 7.5.0
#1 SMP x86_64 GNU/Linux GNU Fortran (SUSE Linux) 7.5.0
SUSE15sp2 clang version 7.0.1 (tags/RELEASE_701/final 349238)
(cmake and autotools)
Linux-4.14.0-115.21.2 spectrum-mpi/rolling-release
#1 SMP ppc64le GNU/Linux clang 8.0.1, 11.0.1
(lassen) GCC 7.3.1
XL 16.1.1.2
(cmake)
Linux-3.10.0-1160.49.1 openmpi-intel/4.1
#1 SMP x86_64 GNU/Linux Intel(R) Version 18.0.5, 19.1.2
(chama) (cmake)
Linux-4.12.14-150.75-default cray-mpich/7.7.10
#1 SMP x86_64 GNU/Linux GCC 7.3.0, 8.2.0
(cori) Intel (R) Version 19.0.3.199
(cmake)
Linux-4.12.14-197.86-default cray-mpich/7.7.6
# 1SMP x86_64 GNU/Linux GCC 7.3.0, 9.3.0, 10.2.0
(mutrino) Intel (R) Version 17.0.4, 18.0.5, 19.1.3
(cmake)
Linux 3.10.0-1160.36.2.el7.ppc64 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
#1 SMP ppc64be GNU/Linux g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
Power8 (echidna) GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
Linux 3.10.0-1160.24.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++)
#1 SMP x86_64 GNU/Linux compilers:
Centos7 Version 4.8.5 20150623 (Red Hat 4.8.5-4)
(jelly/kituo/moohan) Version 4.9.3, Version 5.3.0, Version 6.3.0,
Version 7.2.0, Version 8.3.0, Version 9.1.0
Intel(R) C (icc), C++ (icpc), Fortran (icc)
compilers:
Version 17.0.0.098 Build 20160721
GNU C (gcc) and C++ (g++) 4.8.5 compilers
with NAG Fortran Compiler Release 6.1(Tozai)
Intel(R) C (icc) and C++ (icpc) 17.0.0.098 compilers
with NAG Fortran Compiler Release 6.1(Tozai)
MPICH 3.1.4 compiled with GCC 4.9.3
MPICH 3.3 compiled with GCC 7.2.0
OpenMPI 2.1.6 compiled with icc 18.0.1
OpenMPI 3.1.3 and 4.0.0 compiled with GCC 7.2.0
PGI C, Fortran, C++ for 64-bit target on
x86_64;
Version 19.10-0
Linux-3.10.0-1127.0.0.1chaos openmpi-4.0.0
#1 SMP x86_64 GNU/Linux clang 6.0.0, 11.0.1
(quartz) GCC 7.3.0, 8.1.0
Intel 16.0.4, 18.0.2, 19.0.4
macOS Apple M1 11.6 Apple clang version 12.0.5 (clang-1205.0.22.11)
Darwin 20.6.0 arm64 gfortran GNU Fortran (Homebrew GCC 11.2.0) 11.1.0
(macmini-m1) Intel icc/icpc/ifort version 2021.3.0 202106092021.3.0 20210609
macOS Big Sur 11.3.1 Apple clang version 12.0.5 (clang-1205.0.22.9)
Darwin 20.4.0 x86_64 gfortran GNU Fortran (Homebrew GCC 10.2.0_3) 10.2.0
(bigsur-1) Intel icc/icpc/ifort version 2021.2.0 20210228
macOS High Sierra 10.13.6 Apple LLVM version 10.0.0 (clang-1000.10.44.4)
64-bit gfortran GNU Fortran (GCC) 6.3.0
(bear) Intel icc/icpc/ifort version 19.0.4.233 20190416
macOS Sierra 10.12.6 Apple LLVM version 9.0.0 (clang-900.39.2)
64-bit gfortran GNU Fortran (GCC) 7.4.0
(kite) Intel icc/icpc/ifort version 17.0.2
Mac OS X El Capitan 10.11.6 Apple clang version 7.3.0 from Xcode 7.3
64-bit gfortran GNU Fortran (GCC) 5.2.0
(osx1011test) Intel icc/icpc/ifort version 16.0.2
Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++)
#1 SMP x86_64 GNU/Linux compilers:
Centos6 Version 4.4.7 20120313
(platypus) Version 4.9.3, 5.3.0, 6.2.0
MPICH 3.1.4 compiled with GCC 4.9.3
PGI C, Fortran, C++ for 64-bit target on
x86_64;
Version 19.10-0
Windows 10 x64 Visual Studio 2015 w/ Intel C/C++/Fortran 18 (cmake)
Visual Studio 2017 w/ Intel C/C++/Fortran 19 (cmake)
Visual Studio 2019 w/ clang 12.0.0
with MSVC-like command-line (C/C++ only - cmake)
Visual Studio 2019 w/ Intel Fortran 19 (cmake)
Visual Studio 2019 w/ MSMPI 10.1 (C only - cmake)
Known Problems
==============
Setting a variable-length dataset fill value will leak the memory allocated
for the p field of the hvl_t struct. A fix is in progress for this.
HDFFV-10840
CMake files do not behave correctly with paths containing spaces.
Do not use spaces in paths because the required escaping for handling spaces
results in very complex and fragile build files.
ADB - 2019/05/07
At present, metadata cache images may not be generated by parallel
applications. Parallel applications can read files with metadata cache
images, but since this is a collective operation, a deadlock is possible
if one or more processes do not participate.
CPP ptable test fails on both VS2017 and VS2019 with Intel compiler, JIRA
issue: HDFFV-10628. This test will pass with VS2015 with Intel compiler.
The subsetting option in ph5diff currently will fail and should be avoided.
The subsetting option works correctly in serial h5diff.
Known problems in previous releases can be found in the HISTORY*.txt files
in the HDF5 source. Please report any new problems found to
help@hdfgroup.org.
CMake vs. Autotools installations
=================================
While both build systems produce similar results, there are differences.
Each system produces the same set of folders on linux (only CMake works
on standard Windows); bin, include, lib and share. Autotools places the
COPYING and RELEASE.txt file in the root folder, CMake places them in
the share folder.
The bin folder contains the tools and the build scripts. Additionally, CMake
creates dynamic versions of the tools with the suffix "-shared". Autotools
installs one set of tools depending on the "--enable-shared" configuration
option.
build scripts
-------------
Autotools: h5c++, h5cc, h5fc
CMake: h5c++, h5cc, h5hlc++, h5hlcc
The include folder holds the header files and the fortran mod files. CMake
places the fortran mod files into separate shared and static subfolders,
while Autotools places one set of mod files into the include folder. Because
CMake produces a tools library, the header files for tools will appear in
the include folder.
The lib folder contains the library files, and CMake adds the pkgconfig
subfolder with the hdf5*.pc files used by the bin/build scripts created by
the CMake build. CMake separates the C interface code from the fortran code by
creating C-stub libraries for each Fortran library. In addition, only CMake
installs the tools library. The names of the szip libraries are different
between the build systems.
The share folder will have the most differences because CMake builds include
a number of CMake specific files for support of CMake's find_package and support
for the HDF5 Examples CMake project.
The issues with the gif tool are:
HDFFV-10592 CVE-2018-17433
HDFFV-10593 CVE-2018-17436
HDFFV-11048 CVE-2020-10809
These CVE issues have not yet been addressed and can be avoided by not building
the gif tool. Disable building the High-Level tools with these options:
autotools: --disable-hltools
cmake: HDF5_BUILD_HL_TOOLS=OFF

View File

@ -0,0 +1,254 @@
************************************************************************
* Build and Install HDF5 Applications with CMake *
************************************************************************
Notes: This short instruction is written for users who want to quickly
build HDF5 applications using the CMake tools. Users can adapt
these instructions for their own applications. For more information,
see the "Minimum C Project Files for CMake" section.
More information about using CMake can be found at the KitWare
site, www.cmake.org.
CMake uses the command line; however, the visual CMake tool is
available for the configuration step. The steps are similar for
all of the operating systems supported by CMake.
NOTES:
1. Using CMake for building and using HDF5 is under active
development. While we have attempted to provide error-free
files, please understand that development with CMake has not
been extensively tested outside of HDF. The CMake specific
files may change before the next release.
2. CMake for HDF5 development should be usable on any system
where CMake is supported. Please send us any comments on how
CMake support can be improved on any system.
3. See the appendix at the bottom of this file for an example
of using a ctest script for building and testing. See
INSTALL_CMake.txt for more information.
4. See https://cmake.org/cmake/help/latest/command/find_package.html
for more information on the CMake "Config Mode Search Procedure".
========================================================================
I. Preconditions
========================================================================
1. We suggest you obtain the latest CMake for your platform from the Kitware
web site. The HDF5 1.13.x product requires a minimum CMake version
of 3.12. If you are using VS2019, the minimum version is 3.15.
2. You have installed the HDF5 library built with CMake, by executing
the HDF Install Utility (the *.msi file in the binary package for
Windows or the *.sh on Linux). You can obtain pre-built binaries
from The HDF Group's website at www.hdfgroup.org.
3. Set the HDF5_ROOT CMake variable, -DHDF5_ROOT=<install_path>
or environment variable, set(ENV{HDF5_ROOT} "<install_path>")
to the installed location of HDF5.
On Windows:
HDF5_ROOT=C:/Program Files/HDF_Group/HDF5/1.13.x/
On unix:
HDF5_ROOT=<install root folder>/HDF_Group/HDF5/1.13.x/
If you are using shared libraries, you may need to add to the path
environment variable. Set the path environment variable to the
installed location of the library files for HDF5.
On Windows (*.dll):
PATH=%PATH%;C:/Program Files/HDF_Group/HDF5/1.13.x/bin
On unix (*.so):
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<install root folder>/HDF_Group/HDF5/1.13.x/lib
If you are using filter plugin libraries, you will need to set the
HDF5_PLUGIN_PATH environment variable.
On Windows:
HDF5_PLUGIN_PATH=C:/Program Files/HDF_Group/HDF5/1.13.x/lib/plugin
On unix:
HDF5_PLUGIN_PATH=<install root folder>/HDF_Group/HDF5/1.13.x/lib/plugin
(Note there are no quote characters used on Windows and all platforms
use forward slashes)
4. Created separate source and build directories.
(CMake commands are executed in the build directory)
5. Created a CMakeLists.txt file(s) for your source. See Section III
below.
========================================================================
II. Building HDF5 Applications with CMake
========================================================================
Go through these steps to build HDF5 applications with CMake.
(The application must support building with CMake.)
1. Run CMake
2. Configure the cache settings
3. Build HDF5 Applications
4. Test HDF5 Applications
These steps are described in more detail below.
1. Run CMake
The visual CMake executable is named "cmake-gui.exe" on Windows and should be
available in your Start menu. For Linux, UNIX, and Mac users the
executable is named "cmake-gui" and can be found where CMake was
installed.
Specify the source and build directories. Make the build and source
directories different. For example on Windows, if the source is at
c:\MyHDFstuff\hdf5, then use c:\MyHDFstuff\hdf5\build or
c:\MyHDFstuff\build\hdf5 for the build directory.
PREFERRED:
Users can perform the configuration step without using the visual
cmake-gui program. The following is an example command line
configuration step executed within the build directory:
cmake -G "<generator>" [-D<options>] <sourcepath>
Where <generator> is
* MinGW Makefiles
* NMake Makefiles
* Unix Makefiles
* Visual Studio 14 2015
* Visual Studio 14 2015 Win64
* Visual Studio 15 2017
* Visual Studio 15 2017 Win64
* Visual Studio 16 2019
* ... in addition VS2019 will need to set the "-A" option,
* ... [Win32, x64, ARM, ARM64]
<options> is:
* BUILD_TESTING:BOOL=ON
* BUILD_SHARED_LIBS:BOOL=[ON | OFF]
2. Configure the cache settings
2.1 Visual CMake users, click the Configure button. If this is the first time you are
running cmake-gui in this directory, you will be prompted for the
generator you wish to use (for example on Windows, Visual Studio 14 2015 Win64).
CMake will read in the CMakeLists.txt files from the source directory and
display options for the HDF5 project. After the first configure you
can adjust the cache settings and/or specify locations of other programs.
Any conflicts or new values will be highlighted by the configure
process in red. Once you are happy with all the settings and there are no
more values in red, click the Generate button to produce the appropriate
build files.
On Windows, if you are using a Visual Studio generator, the solution and
project files will be created in the build folder.
On linux, if you are using the Unix Makefiles generator, the Makefiles will
be created in the build folder.
2.2 Alternative command line example on Windows in c:\MyHDFstuff\hdf5\build directory:
cmake -G "Visual Studio 14 2015 Win64" -DBUILD_TESTING:BOOL=ON ..
3. Build HDF5 Applications
On Windows, you can build HDF5 applications using either the Visual Studio Environment
or the command line. The command line is normally used on linux, Unix, and Mac.
To build from the command line, navigate to your build directory and
execute the following:
cmake --build . --config {Debug | Release}
NOTE: "--config {Debug | Release}" may be optional on your platform. We
recommend choosing either Debug or Release on Windows. If you are
using the pre-built binaries from HDF, use Release.
3.1 If you wish to use the Visual Studio environment, open the solution
file in your build directory. Be sure to select either Debug or
Release and build the solution.
4. Test HDF5 Applications
To test the build, navigate to your build directory and execute:
ctest . -C {Debug | Release}
NOTE: "-C {Debug | Release}" may be optional on your platform. We
recommend choosing either Debug or Release to match the build
step on Windows.
5. The files that support building with CMake are all of the files in the
config/cmake folder, the CMakeLists.txt files in each source folder, and
CTestConfig.cmake. CTestConfig.cmake is specific to the internal testing
performed by The HDF Group. It should be altered for the user's
installation and needs. The cacheinit.cmake file settings are used by
The HDF Group for daily testing. It should be altered/ignored for the user's
installation and needs.
========================================================================
III. Minimum C Project Files for CMake
========================================================================
Given the preconditions in section I, create a CMakeLists.txt file at the
source root. Include the following text in the file:
##########################################################
cmake_minimum_required (VERSION 3.12)
project (HDF5MyApp C CXX)
set (LIB_TYPE STATIC) # or SHARED
string(TOLOWER ${LIB_TYPE} SEARCH_TYPE)
find_package (HDF5 NAMES hdf5 COMPONENTS C ${SEARCH_TYPE})
# find_package (HDF5) # Find non-cmake built HDF5
set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES "${HDF5_INCLUDE_DIR}")
set (LINK_LIBS ${LINK_LIBS} ${HDF5_C_${LIB_TYPE}_LIBRARY})
set (example hdf_example)
add_executable (${example} ${PROJECT_SOURCE_DIR}/${example}.c)
TARGET_C_PROPERTIES (${example} PRIVATE ${LIB_TYPE})
target_link_libraries (${example} ${LINK_LIBS})
enable_testing ()
include (CTest)
add_test (NAME test_example COMMAND ${example})
##########################################################
========================================================================
IV. APPENDIX
========================================================================
Below is an example of a ctest script that can be used to build the examples.
Adjust the values as necessary. Note that the defaults can be entered on the
command line and the build folder is created as a sub-folder. Windows should
adjust the forward slash to double backslashes, except for the HDF_DIR
environment variable.
NOTE: this file is available at the HDF web site:
https://portal.hdfgroup.org/display/support/Building+HDF5+with+CMake
HDF5_Examples.cmake
HDF5_Examples_options.cmake
Also available at the HDF web site is a CMake application framework template.
You can quickly add files to the framework and execute the script to compile
your application with an installed HDF5 binary.
========================================================================
For further assistance, send email to help@hdfgroup.org
========================================================================

View File

@ -0,0 +1,87 @@
***********************************************************************
* HDF5 Build and Install Suggestions for Windows and Visual Studio *
* (Full Version) *
***********************************************************************
These suggestions are for Visual Studio users.
Instructions for building and testing HDF5 applications using CMake can
be found in the USING_HDF5_CMake.txt file found in this folder.
NOTE: Building applications with the dynamic/shared hdf5 libraries requires
that the "H5_BUILT_AS_DYNAMIC_LIB" compile definition be used.
The following two sections are helpful if you do not use CMake to build
your applications.
==============================================================================================
Using Visual Studio 2010 and above with HDF5 Libraries built with Visual Studio 2010 and above
==============================================================================================
1. Set up path for external libraries and headers
The path settings will need to be in the project property sheets per project.
Go to "Project" and select "Properties", find "Configuration Properties",
and then "VC++ Directories".
1.1 If you are building on 64-bit Windows, find the "Platform" dropdown
and select "x64".
1.2 Add the header path to the "Include Directories" setting.
1.3 Add the library path to the "Library Directories" setting.
1.4 Select Linker->Input and beginning with the
"Additional Dependencies" line, enter the library names. The
external libraries should be listed first, followed by the HDF5
library, and then optionally the HDF5 High Level, Fortran or C++
libraries. For example, to compile a C++ application, enter:
szip.lib zlib.lib hdf5.lib hdf5_cpp.lib
==========================================================================
Using Visual Studio 2008 with HDF5 Libraries built with Visual Studio 2008
==========================================================================
2. Set up the path for external libraries and headers
Invoke Microsoft Visual Studio and go to "Tools" and select "Options",
find "Projects", and then "VC++ Directories".
2.1 If you are building on 64-bit Windows, find the "Platform" dropdown
and select "x64".
2.2 Find the box "Show directories for", choose "Include files", add the
header path (i.e. c:\Program Files\HDF_Group\HDF5\1.13.x\include)
to the included directories.
2.3 Find the box "Show directories for", choose "Library files", add the
library path (i.e. c:\Program Files\HDF_Group\HDF5\1.13.x\lib)
to the library directories.
2.4 If using Fortran libraries, you will also need to setup the path
for the Intel Fortran compiler.
2.5 Select Project->Properties->Linker->Input and beginning with the
"Additional Dependencies" line, enter the library names. The
external libraries should be listed first, followed by the HDF5
library, and then optionally the HDF5 High Level, Fortran or C++
libraries. For example, to compile a C++ application, enter:
szip.lib zlib.lib hdf5.lib hdf5_cpp.lib
========================================================================
3. Helpful Pointers
========================================================================
3.1 FAQ
Many other common questions and hints are located online and being updated
in the HDF Knowledge Base, please see:
https://portal.hdfgroup.org/display/knowledge/HDF+Knowledge+Base
************************************************************************
Please send email to help@hdfgroup.org for further assistance.

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/gif2h5.exe Normal file

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h52gif.exe Normal file

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h5clear.exe Normal file

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h5copy.exe Normal file

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h5debug.exe Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h5diff.exe Normal file

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h5dump.exe Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h5jam.exe Normal file

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h5ls.exe Normal file

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h5mkgrp.exe Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h5stat.exe Normal file

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h5unjam.exe Normal file

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/h5watch.exe Normal file

Binary file not shown.

BIN
extlib/HDF5/bin/hdf5.dll Normal file

Binary file not shown.

Binary file not shown.

BIN
extlib/HDF5/bin/hdf5_hl.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,90 @@
# This is a basic version file for the Config-mode of find_package().
# It is used by write_basic_package_version_file() as input file for configure_file()
# to create a version-file which can be installed along a config.cmake file.
#
# The created file sets PACKAGE_VERSION_EXACT if the current version string and
# the requested version string are exactly the same and it sets
# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version,
# but only if the requested major and minor versions are the same as the current
# one.
# The variable CVF_VERSION must be set before calling configure_file().
set(PACKAGE_VERSION "1.13.1")
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
if("1.13.1" MATCHES "^([0-9]+)\\.([0-9]+)")
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
set(CVF_VERSION_MINOR "${CMAKE_MATCH_2}")
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
endif()
if(NOT CVF_VERSION_MINOR VERSION_EQUAL 0)
string(REGEX REPLACE "^0+" "" CVF_VERSION_MINOR "${CVF_VERSION_MINOR}")
endif()
else()
set(CVF_VERSION_MAJOR "1.13.1")
set(CVF_VERSION_MINOR "")
endif()
if(PACKAGE_FIND_VERSION_RANGE)
# both endpoints of the range must have the expected major and minor versions
math (EXPR CVF_VERSION_MINOR_NEXT "${CVF_VERSION_MINOR} + 1")
if (NOT (PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR
AND PACKAGE_FIND_VERSION_MIN_MINOR STREQUAL CVF_VERSION_MINOR)
OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE"
AND NOT (PACKAGE_FIND_VERSION_MAX_MAJOR STREQUAL CVF_VERSION_MAJOR
AND PACKAGE_FIND_VERSION_MAX_MINOR STREQUAL CVF_VERSION_MINOR))
OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE"
AND NOT PACKAGE_FIND_VERSION_MAX VERSION_LESS_EQUAL ${CVF_VERSION_MAJOR}.${CVF_VERSION_MINOR_NEXT})))
set(PACKAGE_VERSION_COMPATIBLE FALSE)
elseif(PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR
AND PACKAGE_FIND_VERSION_MIN_MINOR STREQUAL CVF_VERSION_MINOR
AND ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS_EQUAL PACKAGE_FIND_VERSION_MAX)
OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MAX)))
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else()
set(PACKAGE_VERSION_COMPATIBLE FALSE)
endif()
else()
if(NOT PACKAGE_FIND_VERSION_MAJOR VERSION_EQUAL 0)
string(REGEX REPLACE "^0+" "" PACKAGE_FIND_VERSION_MAJOR "${PACKAGE_FIND_VERSION_MAJOR}")
endif()
if(NOT PACKAGE_FIND_VERSION_MINOR VERSION_EQUAL 0)
string(REGEX REPLACE "^0+" "" PACKAGE_FIND_VERSION_MINOR "${PACKAGE_FIND_VERSION_MINOR}")
endif()
if((PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) AND
(PACKAGE_FIND_VERSION_MINOR STREQUAL CVF_VERSION_MINOR))
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else()
set(PACKAGE_VERSION_COMPATIBLE FALSE)
endif()
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()
endif()
# if the installed project requested no architecture check, don't perform the check
if("FALSE")
return()
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 "8" 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 "8")
math(EXPR installedBits "8 * 8")
set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif()

View File

@ -0,0 +1,238 @@
#
# Copyright by The HDF Group.
# All rights reserved.
#
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the COPYING file, which can be found at the root of the source code
# distribution tree, or in https://www.hdfgroup.org/licenses.
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
#
#-----------------------------------------------------------------------------
# HDF5 Config file for compiling against hdf5 build/install directory
#-----------------------------------------------------------------------------
####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
####### Any changes to this file will be overwritten by the next CMake run ####
####### The input file was hdf5-config.cmake.in ########
get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE)
macro(set_and_check _var _file)
set(${_var} "${_file}")
if(NOT EXISTS "${_file}")
message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
endif()
endmacro()
macro(check_required_components _NAME)
foreach(comp ${${_NAME}_FIND_COMPONENTS})
if(NOT ${_NAME}_${comp}_FOUND)
if(${_NAME}_FIND_REQUIRED_${comp})
set(${_NAME}_FOUND FALSE)
endif()
endif()
endforeach()
endmacro()
####################################################################################
string(TOUPPER hdf5 HDF5_PACKAGE_NAME)
set (${HDF5_PACKAGE_NAME}_VALID_COMPONENTS
static
shared
C
CXX
Fortran
HL
CXX_HL
Fortran_HL
Java
Tools
)
#-----------------------------------------------------------------------------
# User Options
#-----------------------------------------------------------------------------
set (${HDF5_PACKAGE_NAME}_ENABLE_PARALLEL OFF)
set (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN OFF)
set (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB ON)
set (${HDF5_PACKAGE_NAME}_BUILD_JAVA OFF)
set (${HDF5_PACKAGE_NAME}_BUILD_TOOLS ON)
set (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB ON)
set (${HDF5_PACKAGE_NAME}_BUILD_HL_TOOLS ON)
set (${HDF5_PACKAGE_NAME}_ENABLE_THREADSAFE OFF)
set (${HDF5_PACKAGE_NAME}_ENABLE_PLUGIN_SUPPORT OFF)
set (${HDF5_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT OFF)
set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT OFF)
set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_ENCODING )
set (${HDF5_PACKAGE_NAME}_BUILD_SHARED_LIBS YES)
set (${HDF5_PACKAGE_NAME}_BUILD_STATIC_LIBS YES)
set (${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS OFF)
set (${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES hdf5-static;hdf5-shared;hdf5_tools-static;hdf5_tools-shared;hdf5_hl-static;hdf5_hl-shared;hdf5_cpp-static;hdf5_cpp-shared;hdf5_hl_cpp-static;hdf5_hl_cpp-shared)
set (${HDF5_PACKAGE_NAME}_ARCHITECTURE "")
set (${HDF5_PACKAGE_NAME}_TOOLSET "")
set (${HDF5_PACKAGE_NAME}_DEFAULT_API_VERSION "v114")
set (${HDF5_PACKAGE_NAME}_PARALLEL_FILTERED_WRITES "")
#-----------------------------------------------------------------------------
# Dependencies
#-----------------------------------------------------------------------------
if (${HDF5_PACKAGE_NAME}_ENABLE_PARALLEL)
set (${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_PATH "")
set (${HDF5_PACKAGE_NAME}_MPI_C_LIBRARIES "")
if (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN)
set (${HDF5_PACKAGE_NAME}_MPI_Fortran_INCLUDE_PATH "")
set (${HDF5_PACKAGE_NAME}_MPI_Fortran_LIBRARIES "")
endif ()
endif ()
if (${HDF5_PACKAGE_NAME}_BUILD_JAVA)
set (${HDF5_PACKAGE_NAME}_JAVA_INCLUDE_DIRS
${PACKAGE_PREFIX_DIR}/lib/jarhdf5-1.13.1.jar
${PACKAGE_PREFIX_DIR}/lib/slf4j-api-1.7.33.jar
${PACKAGE_PREFIX_DIR}/lib/slf4j-nop-1.7.33.jar
)
set (${HDF5_PACKAGE_NAME}_JAVA_LIBRARY "${PACKAGE_PREFIX_DIR}/lib")
set (${HDF5_PACKAGE_NAME}_JAVA_LIBRARIES "${${HDF5_PACKAGE_NAME}_JAVA_LIBRARY}")
endif ()
#-----------------------------------------------------------------------------
# Directories
#-----------------------------------------------------------------------------
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include" "${${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_DIRS}")
set (${HDF5_PACKAGE_NAME}_SHARE_DIR "${PACKAGE_PREFIX_DIR}/cmake")
set_and_check (${HDF5_PACKAGE_NAME}_BUILD_DIR "${PACKAGE_PREFIX_DIR}")
if (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB)
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_CPP "${PACKAGE_PREFIX_DIR}/include")
endif ()
if (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB)
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL "${PACKAGE_PREFIX_DIR}/include")
endif ()
if (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB AND ${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB)
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL_CPP "${PACKAGE_PREFIX_DIR}/include")
endif ()
if (${HDF5_PACKAGE_NAME}_BUILD_TOOLS)
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_TOOLS "${PACKAGE_PREFIX_DIR}/include")
set_and_check (${HDF5_PACKAGE_NAME}_TOOLS_DIR "${PACKAGE_PREFIX_DIR}/bin")
endif ()
#-----------------------------------------------------------------------------
# Version Strings
#-----------------------------------------------------------------------------
set (${HDF5_PACKAGE_NAME}_VERSION_STRING 1.13.1)
set (${HDF5_PACKAGE_NAME}_VERSION_MAJOR 1.13)
set (${HDF5_PACKAGE_NAME}_VERSION_MINOR 1)
#-----------------------------------------------------------------------------
# Don't include targets if this file is being picked up by another
# project which has already built hdf5 as a subproject
#-----------------------------------------------------------------------------
if (NOT TARGET "hdf5")
if (${HDF5_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT AND ${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS)
include (${PACKAGE_PREFIX_DIR}/cmake/-targets.cmake)
endif ()
if (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT AND ${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS)
include (${PACKAGE_PREFIX_DIR}/cmake/-targets.cmake)
endif ()
include (${PACKAGE_PREFIX_DIR}/cmake/hdf5-targets.cmake)
endif ()
# Handle default component(static) :
if (NOT ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
if (${HDF5_PACKAGE_NAME}_BUILD_STATIC_LIBS)
set (${HDF5_PACKAGE_NAME}_LIB_TYPE)
set (${HDF5_PACKAGE_NAME}_FIND_COMPONENTS C HL static)
set (${HDF5_PACKAGE_NAME}_FIND_REQUIRED_static_C true)
else ()
set (${HDF5_PACKAGE_NAME}_LIB_TYPE)
set (${HDF5_PACKAGE_NAME}_FIND_COMPONENTS C HL shared)
set (${HDF5_PACKAGE_NAME}_FIND_REQUIRED_shared_C true)
endif ()
endif ()
# Handle requested components:
list (REMOVE_DUPLICATES ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
foreach (comp IN LISTS ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
if (comp STREQUAL "shared")
list (REMOVE_ITEM ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS ${comp})
set (${HDF5_PACKAGE_NAME}_LIB_TYPE ${${HDF5_PACKAGE_NAME}_LIB_TYPE} ${comp})
if (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN)
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "${PACKAGE_PREFIX_DIR}/include/shared")
endif ()
elseif (comp STREQUAL "static")
list (REMOVE_ITEM ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS ${comp})
set (${HDF5_PACKAGE_NAME}_LIB_TYPE ${${HDF5_PACKAGE_NAME}_LIB_TYPE} ${comp})
if (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN)
set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "${PACKAGE_PREFIX_DIR}/include/static")
endif ()
endif ()
endforeach ()
foreach (libtype IN LISTS ${HDF5_PACKAGE_NAME}_LIB_TYPE)
foreach (comp IN LISTS ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
set (hdf5_comp2)
if (comp STREQUAL "C")
set (hdf5_comp "hdf5")
elseif (comp STREQUAL "CXX")
set (hdf5_comp "hdf5_cpp")
elseif (comp STREQUAL "HL")
set (hdf5_comp "hdf5_hl")
elseif (comp STREQUAL "CXX_HL")
set (hdf5_comp "hdf5_hl_cpp")
elseif (comp STREQUAL "Java")
set (hdf5_comp "hdf5_java")
elseif (comp STREQUAL "Tools")
set (hdf5_comp "hdf5_tools")
elseif (comp STREQUAL "Fortran")
set (hdf5_comp2 "hdf5_f90cstub")
set (hdf5_comp "hdf5_fortran")
elseif (comp STREQUAL "Fortran_HL")
set (hdf5_comp2 "hdf5_hl_f90cstub")
set (hdf5_comp "hdf5_hl_fortran")
endif ()
if (comp STREQUAL "Java")
list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp}" HAVE_COMP)
else ()
list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp}-${libtype}" HAVE_COMP)
endif ()
if (${HAVE_COMP} LESS 0)
if (comp STREQUAL "Java")
set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0)
else ()
set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 0)
endif ()
else ()
if (hdf5_comp2)
list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp2}-${libtype}" HAVE_COMP2)
if (${HAVE_COMP2} LESS 0)
set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 0)
else ()
set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 1)
string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_${libtype}_LIBRARY COMP_LIBRARY)
set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp2}-${libtype} ${hdf5_comp}-${libtype})
endif ()
elseif (comp STREQUAL "Java")
set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1)
string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY)
set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp})
else ()
set (${HDF5_PACKAGE_NAME}_${libtype}_${comp}_FOUND 1)
string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_${libtype}_LIBRARY COMP_LIBRARY)
set (${COMP_LIBRARY} ${${COMP_LIBRARY}} ${hdf5_comp}-${libtype})
endif ()
endif ()
endforeach ()
endforeach ()
foreach (libtype IN LISTS ${HDF5_PACKAGE_NAME}_LIB_TYPE)
check_required_components(${HDF5_PACKAGE_NAME}_${libtype})
endforeach ()

View File

@ -0,0 +1,460 @@
#----------------------------------------------------------------
# Generated CMake target import file for configuration "Release".
#----------------------------------------------------------------
# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)
# Import target "hdf5-static" for configuration "Release"
set_property(TARGET hdf5-static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(hdf5-static PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libhdf5.lib"
)
list(APPEND _IMPORT_CHECK_TARGETS hdf5-static )
list(APPEND _IMPORT_CHECK_FILES_FOR_hdf5-static "${_IMPORT_PREFIX}/lib/libhdf5.lib" )
# Import target "hdf5-shared" for configuration "Release"
set_property(TARGET hdf5-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(hdf5-shared PROPERTIES
IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/hdf5.lib"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/hdf5.dll"
)
list(APPEND _IMPORT_CHECK_TARGETS hdf5-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_hdf5-shared "${_IMPORT_PREFIX}/lib/hdf5.lib" "${_IMPORT_PREFIX}/bin/hdf5.dll" )
# Import target "mirror_server" for configuration "Release"
set_property(TARGET mirror_server APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(mirror_server PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/mirror_server.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS mirror_server )
list(APPEND _IMPORT_CHECK_FILES_FOR_mirror_server "${_IMPORT_PREFIX}/bin/mirror_server.exe" )
# Import target "mirror_server_stop" for configuration "Release"
set_property(TARGET mirror_server_stop APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(mirror_server_stop PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/mirror_server_stop.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS mirror_server_stop )
list(APPEND _IMPORT_CHECK_FILES_FOR_mirror_server_stop "${_IMPORT_PREFIX}/bin/mirror_server_stop.exe" )
# Import target "hdf5_tools-static" for configuration "Release"
set_property(TARGET hdf5_tools-static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(hdf5_tools-static PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libhdf5_tools.lib"
)
list(APPEND _IMPORT_CHECK_TARGETS hdf5_tools-static )
list(APPEND _IMPORT_CHECK_FILES_FOR_hdf5_tools-static "${_IMPORT_PREFIX}/lib/libhdf5_tools.lib" )
# Import target "hdf5_tools-shared" for configuration "Release"
set_property(TARGET hdf5_tools-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(hdf5_tools-shared PROPERTIES
IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/hdf5_tools.lib"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/hdf5_tools.dll"
)
list(APPEND _IMPORT_CHECK_TARGETS hdf5_tools-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_hdf5_tools-shared "${_IMPORT_PREFIX}/lib/hdf5_tools.lib" "${_IMPORT_PREFIX}/bin/hdf5_tools.dll" )
# Import target "h5diff" for configuration "Release"
set_property(TARGET h5diff APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5diff PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5diff.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5diff )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5diff "${_IMPORT_PREFIX}/bin/h5diff.exe" )
# Import target "h5diff-shared" for configuration "Release"
set_property(TARGET h5diff-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5diff-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5diff-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5diff-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5diff-shared "${_IMPORT_PREFIX}/bin/h5diff-shared.exe" )
# Import target "h5ls" for configuration "Release"
set_property(TARGET h5ls APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5ls PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5ls.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5ls )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5ls "${_IMPORT_PREFIX}/bin/h5ls.exe" )
# Import target "h5ls-shared" for configuration "Release"
set_property(TARGET h5ls-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5ls-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5ls-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5ls-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5ls-shared "${_IMPORT_PREFIX}/bin/h5ls-shared.exe" )
# Import target "h5debug" for configuration "Release"
set_property(TARGET h5debug APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5debug PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5debug.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5debug )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5debug "${_IMPORT_PREFIX}/bin/h5debug.exe" )
# Import target "h5repart" for configuration "Release"
set_property(TARGET h5repart APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5repart PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5repart.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5repart )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5repart "${_IMPORT_PREFIX}/bin/h5repart.exe" )
# Import target "h5mkgrp" for configuration "Release"
set_property(TARGET h5mkgrp APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5mkgrp PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5mkgrp.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5mkgrp )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5mkgrp "${_IMPORT_PREFIX}/bin/h5mkgrp.exe" )
# Import target "h5clear" for configuration "Release"
set_property(TARGET h5clear APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5clear PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5clear.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5clear )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5clear "${_IMPORT_PREFIX}/bin/h5clear.exe" )
# Import target "h5delete" for configuration "Release"
set_property(TARGET h5delete APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5delete PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5delete.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5delete )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5delete "${_IMPORT_PREFIX}/bin/h5delete.exe" )
# Import target "h5debug-shared" for configuration "Release"
set_property(TARGET h5debug-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5debug-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5debug-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5debug-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5debug-shared "${_IMPORT_PREFIX}/bin/h5debug-shared.exe" )
# Import target "h5repart-shared" for configuration "Release"
set_property(TARGET h5repart-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5repart-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5repart-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5repart-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5repart-shared "${_IMPORT_PREFIX}/bin/h5repart-shared.exe" )
# Import target "h5mkgrp-shared" for configuration "Release"
set_property(TARGET h5mkgrp-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5mkgrp-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5mkgrp-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5mkgrp-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5mkgrp-shared "${_IMPORT_PREFIX}/bin/h5mkgrp-shared.exe" )
# Import target "h5clear-shared" for configuration "Release"
set_property(TARGET h5clear-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5clear-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5clear-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5clear-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5clear-shared "${_IMPORT_PREFIX}/bin/h5clear-shared.exe" )
# Import target "h5delete-shared" for configuration "Release"
set_property(TARGET h5delete-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5delete-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5delete-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5delete-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5delete-shared "${_IMPORT_PREFIX}/bin/h5delete-shared.exe" )
# Import target "h5import" for configuration "Release"
set_property(TARGET h5import APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5import PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5import.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5import )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5import "${_IMPORT_PREFIX}/bin/h5import.exe" )
# Import target "h5import-shared" for configuration "Release"
set_property(TARGET h5import-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5import-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5import-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5import-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5import-shared "${_IMPORT_PREFIX}/bin/h5import-shared.exe" )
# Import target "h5repack" for configuration "Release"
set_property(TARGET h5repack APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5repack PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5repack.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5repack )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5repack "${_IMPORT_PREFIX}/bin/h5repack.exe" )
# Import target "h5repack-shared" for configuration "Release"
set_property(TARGET h5repack-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5repack-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5repack-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5repack-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5repack-shared "${_IMPORT_PREFIX}/bin/h5repack-shared.exe" )
# Import target "h5jam" for configuration "Release"
set_property(TARGET h5jam APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5jam PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5jam.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5jam )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5jam "${_IMPORT_PREFIX}/bin/h5jam.exe" )
# Import target "h5unjam" for configuration "Release"
set_property(TARGET h5unjam APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5unjam PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5unjam.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5unjam )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5unjam "${_IMPORT_PREFIX}/bin/h5unjam.exe" )
# Import target "h5jam-shared" for configuration "Release"
set_property(TARGET h5jam-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5jam-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5jam-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5jam-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5jam-shared "${_IMPORT_PREFIX}/bin/h5jam-shared.exe" )
# Import target "h5unjam-shared" for configuration "Release"
set_property(TARGET h5unjam-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5unjam-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5unjam-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5unjam-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5unjam-shared "${_IMPORT_PREFIX}/bin/h5unjam-shared.exe" )
# Import target "h5copy" for configuration "Release"
set_property(TARGET h5copy APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5copy PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5copy.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5copy )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5copy "${_IMPORT_PREFIX}/bin/h5copy.exe" )
# Import target "h5copy-shared" for configuration "Release"
set_property(TARGET h5copy-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5copy-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5copy-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5copy-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5copy-shared "${_IMPORT_PREFIX}/bin/h5copy-shared.exe" )
# Import target "h5stat" for configuration "Release"
set_property(TARGET h5stat APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5stat PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5stat.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5stat )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5stat "${_IMPORT_PREFIX}/bin/h5stat.exe" )
# Import target "h5stat-shared" for configuration "Release"
set_property(TARGET h5stat-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5stat-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5stat-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5stat-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5stat-shared "${_IMPORT_PREFIX}/bin/h5stat-shared.exe" )
# Import target "h5dump" for configuration "Release"
set_property(TARGET h5dump APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5dump PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5dump.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5dump )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5dump "${_IMPORT_PREFIX}/bin/h5dump.exe" )
# Import target "h5dump-shared" for configuration "Release"
set_property(TARGET h5dump-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5dump-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5dump-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5dump-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5dump-shared "${_IMPORT_PREFIX}/bin/h5dump-shared.exe" )
# Import target "h5format_convert" for configuration "Release"
set_property(TARGET h5format_convert APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5format_convert PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5format_convert.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5format_convert )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5format_convert "${_IMPORT_PREFIX}/bin/h5format_convert.exe" )
# Import target "h5format_convert-shared" for configuration "Release"
set_property(TARGET h5format_convert-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5format_convert-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5format_convert-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5format_convert-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5format_convert-shared "${_IMPORT_PREFIX}/bin/h5format_convert-shared.exe" )
# Import target "h5perf_serial" for configuration "Release"
set_property(TARGET h5perf_serial APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5perf_serial PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5perf_serial.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5perf_serial )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5perf_serial "${_IMPORT_PREFIX}/bin/h5perf_serial.exe" )
# Import target "hdf5_hl-static" for configuration "Release"
set_property(TARGET hdf5_hl-static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(hdf5_hl-static PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libhdf5_hl.lib"
)
list(APPEND _IMPORT_CHECK_TARGETS hdf5_hl-static )
list(APPEND _IMPORT_CHECK_FILES_FOR_hdf5_hl-static "${_IMPORT_PREFIX}/lib/libhdf5_hl.lib" )
# Import target "hdf5_hl-shared" for configuration "Release"
set_property(TARGET hdf5_hl-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(hdf5_hl-shared PROPERTIES
IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/hdf5_hl.lib"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/hdf5_hl.dll"
)
list(APPEND _IMPORT_CHECK_TARGETS hdf5_hl-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_hdf5_hl-shared "${_IMPORT_PREFIX}/lib/hdf5_hl.lib" "${_IMPORT_PREFIX}/bin/hdf5_hl.dll" )
# Import target "gif2h5" for configuration "Release"
set_property(TARGET gif2h5 APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(gif2h5 PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/gif2h5.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS gif2h5 )
list(APPEND _IMPORT_CHECK_FILES_FOR_gif2h5 "${_IMPORT_PREFIX}/bin/gif2h5.exe" )
# Import target "gif2h5-shared" for configuration "Release"
set_property(TARGET gif2h5-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(gif2h5-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/gif2h5-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS gif2h5-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_gif2h5-shared "${_IMPORT_PREFIX}/bin/gif2h5-shared.exe" )
# Import target "h52gif" for configuration "Release"
set_property(TARGET h52gif APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h52gif PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h52gif.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h52gif )
list(APPEND _IMPORT_CHECK_FILES_FOR_h52gif "${_IMPORT_PREFIX}/bin/h52gif.exe" )
# Import target "h52gif-shared" for configuration "Release"
set_property(TARGET h52gif-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h52gif-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h52gif-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h52gif-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h52gif-shared "${_IMPORT_PREFIX}/bin/h52gif-shared.exe" )
# Import target "h5watch" for configuration "Release"
set_property(TARGET h5watch APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5watch PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5watch.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5watch )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5watch "${_IMPORT_PREFIX}/bin/h5watch.exe" )
# Import target "h5watch-shared" for configuration "Release"
set_property(TARGET h5watch-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(h5watch-shared PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/h5watch-shared.exe"
)
list(APPEND _IMPORT_CHECK_TARGETS h5watch-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_h5watch-shared "${_IMPORT_PREFIX}/bin/h5watch-shared.exe" )
# Import target "hdf5_cpp-static" for configuration "Release"
set_property(TARGET hdf5_cpp-static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(hdf5_cpp-static PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libhdf5_cpp.lib"
)
list(APPEND _IMPORT_CHECK_TARGETS hdf5_cpp-static )
list(APPEND _IMPORT_CHECK_FILES_FOR_hdf5_cpp-static "${_IMPORT_PREFIX}/lib/libhdf5_cpp.lib" )
# Import target "hdf5_cpp-shared" for configuration "Release"
set_property(TARGET hdf5_cpp-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(hdf5_cpp-shared PROPERTIES
IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/hdf5_cpp.lib"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/hdf5_cpp.dll"
)
list(APPEND _IMPORT_CHECK_TARGETS hdf5_cpp-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_hdf5_cpp-shared "${_IMPORT_PREFIX}/lib/hdf5_cpp.lib" "${_IMPORT_PREFIX}/bin/hdf5_cpp.dll" )
# Import target "hdf5_hl_cpp-static" for configuration "Release"
set_property(TARGET hdf5_hl_cpp-static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(hdf5_hl_cpp-static PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libhdf5_hl_cpp.lib"
)
list(APPEND _IMPORT_CHECK_TARGETS hdf5_hl_cpp-static )
list(APPEND _IMPORT_CHECK_FILES_FOR_hdf5_hl_cpp-static "${_IMPORT_PREFIX}/lib/libhdf5_hl_cpp.lib" )
# Import target "hdf5_hl_cpp-shared" for configuration "Release"
set_property(TARGET hdf5_hl_cpp-shared APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(hdf5_hl_cpp-shared PROPERTIES
IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/hdf5_hl_cpp.lib"
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/hdf5_hl_cpp.dll"
)
list(APPEND _IMPORT_CHECK_TARGETS hdf5_hl_cpp-shared )
list(APPEND _IMPORT_CHECK_FILES_FOR_hdf5_hl_cpp-shared "${_IMPORT_PREFIX}/lib/hdf5_hl_cpp.lib" "${_IMPORT_PREFIX}/bin/hdf5_hl_cpp.dll" )
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)

View File

@ -0,0 +1,291 @@
# Generated by CMake
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6)
message(FATAL_ERROR "CMake >= 2.6.0 required")
endif()
cmake_policy(PUSH)
cmake_policy(VERSION 2.6...3.21)
#----------------------------------------------------------------
# Generated CMake target import file.
#----------------------------------------------------------------
# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)
# Protect against multiple inclusion, which would fail when already imported targets are added once more.
set(_targetsDefined)
set(_targetsNotDefined)
set(_expectedTargets)
foreach(_expectedTarget hdf5-static hdf5-shared mirror_server mirror_server_stop hdf5_tools-static hdf5_tools-shared h5diff h5diff-shared h5ls h5ls-shared h5debug h5repart h5mkgrp h5clear h5delete h5debug-shared h5repart-shared h5mkgrp-shared h5clear-shared h5delete-shared h5import h5import-shared h5repack h5repack-shared h5jam h5unjam h5jam-shared h5unjam-shared h5copy h5copy-shared h5stat h5stat-shared h5dump h5dump-shared h5format_convert h5format_convert-shared h5perf_serial hdf5_hl-static hdf5_hl-shared gif2h5 gif2h5-shared h52gif h52gif-shared h5watch h5watch-shared hdf5_cpp-static hdf5_cpp-shared hdf5_hl_cpp-static hdf5_hl_cpp-shared)
list(APPEND _expectedTargets ${_expectedTarget})
if(NOT TARGET ${_expectedTarget})
list(APPEND _targetsNotDefined ${_expectedTarget})
endif()
if(TARGET ${_expectedTarget})
list(APPEND _targetsDefined ${_expectedTarget})
endif()
endforeach()
if("${_targetsDefined}" STREQUAL "${_expectedTargets}")
unset(_targetsDefined)
unset(_targetsNotDefined)
unset(_expectedTargets)
set(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP)
return()
endif()
if(NOT "${_targetsDefined}" STREQUAL "")
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n")
endif()
unset(_targetsDefined)
unset(_targetsNotDefined)
unset(_expectedTargets)
# Compute the installation prefix relative to this file.
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
if(_IMPORT_PREFIX STREQUAL "/")
set(_IMPORT_PREFIX "")
endif()
# Create imported target hdf5-static
add_library(hdf5-static STATIC IMPORTED)
set_target_properties(hdf5-static PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:\$<\$<BOOL:OFF>:>>;\$<\$<NOT:\$<PLATFORM_ID:Windows>>:>"
)
# Create imported target hdf5-shared
add_library(hdf5-shared SHARED IMPORTED)
set_target_properties(hdf5-shared PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
INTERFACE_INCLUDE_DIRECTORIES "\$<\$<BOOL:OFF>:>;${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "\$<\$<NOT:\$<PLATFORM_ID:Windows>>:>"
)
# Create imported target mirror_server
add_executable(mirror_server IMPORTED)
# Create imported target mirror_server_stop
add_executable(mirror_server_stop IMPORTED)
# Create imported target hdf5_tools-static
add_library(hdf5_tools-static STATIC IMPORTED)
set_target_properties(hdf5_tools-static PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "hdf5-static;\$<LINK_ONLY:\$<\$<BOOL:OFF>:>>"
)
# Create imported target hdf5_tools-shared
add_library(hdf5_tools-shared SHARED IMPORTED)
set_target_properties(hdf5_tools-shared PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "hdf5-shared"
)
# Create imported target h5diff
add_executable(h5diff IMPORTED)
# Create imported target h5diff-shared
add_executable(h5diff-shared IMPORTED)
# Create imported target h5ls
add_executable(h5ls IMPORTED)
# Create imported target h5ls-shared
add_executable(h5ls-shared IMPORTED)
# Create imported target h5debug
add_executable(h5debug IMPORTED)
# Create imported target h5repart
add_executable(h5repart IMPORTED)
# Create imported target h5mkgrp
add_executable(h5mkgrp IMPORTED)
# Create imported target h5clear
add_executable(h5clear IMPORTED)
# Create imported target h5delete
add_executable(h5delete IMPORTED)
# Create imported target h5debug-shared
add_executable(h5debug-shared IMPORTED)
# Create imported target h5repart-shared
add_executable(h5repart-shared IMPORTED)
# Create imported target h5mkgrp-shared
add_executable(h5mkgrp-shared IMPORTED)
# Create imported target h5clear-shared
add_executable(h5clear-shared IMPORTED)
# Create imported target h5delete-shared
add_executable(h5delete-shared IMPORTED)
# Create imported target h5import
add_executable(h5import IMPORTED)
# Create imported target h5import-shared
add_executable(h5import-shared IMPORTED)
# Create imported target h5repack
add_executable(h5repack IMPORTED)
# Create imported target h5repack-shared
add_executable(h5repack-shared IMPORTED)
# Create imported target h5jam
add_executable(h5jam IMPORTED)
# Create imported target h5unjam
add_executable(h5unjam IMPORTED)
# Create imported target h5jam-shared
add_executable(h5jam-shared IMPORTED)
# Create imported target h5unjam-shared
add_executable(h5unjam-shared IMPORTED)
# Create imported target h5copy
add_executable(h5copy IMPORTED)
# Create imported target h5copy-shared
add_executable(h5copy-shared IMPORTED)
# Create imported target h5stat
add_executable(h5stat IMPORTED)
# Create imported target h5stat-shared
add_executable(h5stat-shared IMPORTED)
# Create imported target h5dump
add_executable(h5dump IMPORTED)
# Create imported target h5dump-shared
add_executable(h5dump-shared IMPORTED)
# Create imported target h5format_convert
add_executable(h5format_convert IMPORTED)
# Create imported target h5format_convert-shared
add_executable(h5format_convert-shared IMPORTED)
# Create imported target h5perf_serial
add_executable(h5perf_serial IMPORTED)
# Create imported target hdf5_hl-static
add_library(hdf5_hl-static STATIC IMPORTED)
set_target_properties(hdf5_hl-static PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "hdf5-static"
)
# Create imported target hdf5_hl-shared
add_library(hdf5_hl-shared SHARED IMPORTED)
set_target_properties(hdf5_hl-shared PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "hdf5-shared"
)
# Create imported target gif2h5
add_executable(gif2h5 IMPORTED)
# Create imported target gif2h5-shared
add_executable(gif2h5-shared IMPORTED)
# Create imported target h52gif
add_executable(h52gif IMPORTED)
# Create imported target h52gif-shared
add_executable(h52gif-shared IMPORTED)
# Create imported target h5watch
add_executable(h5watch IMPORTED)
# Create imported target h5watch-shared
add_executable(h5watch-shared IMPORTED)
# Create imported target hdf5_cpp-static
add_library(hdf5_cpp-static STATIC IMPORTED)
set_target_properties(hdf5_cpp-static PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "hdf5-static"
)
# Create imported target hdf5_cpp-shared
add_library(hdf5_cpp-shared SHARED IMPORTED)
set_target_properties(hdf5_cpp-shared PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "hdf5-shared"
)
# Create imported target hdf5_hl_cpp-static
add_library(hdf5_hl_cpp-static STATIC IMPORTED)
set_target_properties(hdf5_hl_cpp-static PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "hdf5_hl-static;hdf5-static"
)
# Create imported target hdf5_hl_cpp-shared
add_library(hdf5_hl_cpp-shared SHARED IMPORTED)
set_target_properties(hdf5_hl_cpp-shared PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
INTERFACE_LINK_LIBRARIES "hdf5_hl-shared;hdf5-shared"
)
if(CMAKE_VERSION VERSION_LESS 2.8.12)
message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.")
endif()
# Load information for each installed configuration.
get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
file(GLOB CONFIG_FILES "${_DIR}/hdf5-targets-*.cmake")
foreach(f ${CONFIG_FILES})
include(${f})
endforeach()
# Cleanup temporary variables.
set(_IMPORT_PREFIX)
# Loop over all imported files and verify that they actually exist
foreach(target ${_IMPORT_CHECK_TARGETS} )
foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} )
if(NOT EXISTS "${file}" )
message(FATAL_ERROR "The imported target \"${target}\" references the file
\"${file}\"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
\"${CMAKE_CURRENT_LIST_FILE}\"
but not all the files it references.
")
endif()
endforeach()
unset(_IMPORT_CHECK_FILES_FOR_${target})
endforeach()
unset(_IMPORT_CHECK_TARGETS)
# This file does not depend on other imported targets which have
# been exported from the same project but in a separate export set.
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP)

View File

@ -0,0 +1,789 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*-------------------------------------------------------------------------
*
* Created: H5ACpublic.h
* Jul 10 1997
* Robb Matzke
*
* Purpose: Public include file for cache functions.
*
*-------------------------------------------------------------------------
*/
#ifndef H5ACpublic_H
#define H5ACpublic_H
/* Public headers needed by this file */
#include "H5public.h"
#include "H5Cpublic.h"
#ifdef __cplusplus
extern "C" {
#endif
/****************************************************************************
*
* structure H5AC_cache_config_t
*
* H5AC_cache_config_t is a public structure intended for use in public APIs.
* At least in its initial incarnation, it is basically a copy of struct
* H5C_auto_size_ctl_t, minus the report_fcn field, and plus the
* dirty_bytes_threshold field.
*
* The report_fcn field is omitted, as including it would require us to
* make H5C_t structure public.
*
* The dirty_bytes_threshold field does not appear in H5C_auto_size_ctl_t,
* as synchronization between caches on different processes is handled at
* the H5AC level, not at the level of H5C. Note however that there is
* considerable interaction between this value and the other fields in this
* structure.
*
* Similarly, the open_trace_file, close_trace_file, and trace_file_name
* fields do not appear in H5C_auto_size_ctl_t, as most trace file
* issues are handled at the H5AC level. The one exception is storage of
* the pointer to the trace file, which is handled by H5C.
*
* The structure is in H5ACpublic.h as we may wish to allow different
* configuration options for metadata and raw data caches.
*
* The fields of the structure are discussed individually below:
*
* version: Integer field containing the version number of this version
* of the H5AC_cache_config_t structure. Any instance of
* H5AC_cache_config_t passed to the cache must have a known
* version number, or an error will be flagged.
*
* rpt_fcn_enabled: Boolean field used to enable and disable the default
* reporting function. This function is invoked every time the
* automatic cache resize code is run, and reports on its activities.
*
* This is a debugging function, and should normally be turned off.
*
* open_trace_file: Boolean field indicating whether the trace_file_name
* field should be used to open a trace file for the cache.
*
* *** DEPRECATED *** Use H5Fstart/stop logging functions instead
*
* The trace file is a debugging feature that allow the capture of
* top level metadata cache requests for purposes of debugging and/or
* optimization. This field should normally be set to FALSE, as
* trace file collection imposes considerable overhead.
*
* This field should only be set to TRUE when the trace_file_name
* contains the full path of the desired trace file, and either
* there is no open trace file on the cache, or the close_trace_file
* field is also TRUE.
*
* close_trace_file: Boolean field indicating whether the current trace
* file (if any) should be closed.
*
* *** DEPRECATED *** Use H5Fstart/stop logging functions instead
*
* See the above comments on the open_trace_file field. This field
* should be set to FALSE unless there is an open trace file on the
* cache that you wish to close.
*
* trace_file_name: Full path of the trace file to be opened if the
* open_trace_file field is TRUE.
*
* *** DEPRECATED *** Use H5Fstart/stop logging functions instead
*
* In the parallel case, an ascii representation of the mpi rank of
* the process will be appended to the file name to yield a unique
* trace file name for each process.
*
* The length of the path must not exceed H5AC__MAX_TRACE_FILE_NAME_LEN
* characters.
*
* evictions_enabled: Boolean field used to either report the current
* evictions enabled status of the cache, or to set the cache's
* evictions enabled status.
*
* In general, the metadata cache should always be allowed to
* evict entries. However, in some cases it is advantageous to
* disable evictions briefly, and thereby postpone metadata
* writes. However, this must be done with care, as the cache
* can grow quickly. If you do this, re-enable evictions as
* soon as possible and monitor cache size.
*
* At present, evictions can only be disabled if automatic
* cache resizing is also disabled (that is, ( incr_mode ==
* H5C_incr__off ) && ( decr_mode == H5C_decr__off )). There
* is no logical reason why this should be so, but it simplifies
* implementation and testing, and I can't think of any reason
* why it would be desirable. If you can think of one, I'll
* revisit the issue.
*
* set_initial_size: Boolean flag indicating whether the size of the
* initial size of the cache is to be set to the value given in
* the initial_size field. If set_initial_size is FALSE, the
* initial_size field is ignored.
*
* initial_size: If enabled, this field contain the size the cache is
* to be set to upon receipt of this structure. Needless to say,
* initial_size must lie in the closed interval [min_size, max_size].
*
* min_clean_fraction: double in the range 0 to 1 indicating the fraction
* of the cache that is to be kept clean. This field is only used
* in parallel mode. Typical values are 0.1 to 0.5.
*
* max_size: Maximum size to which the cache can be adjusted. The
* supplied value must fall in the closed interval
* [MIN_MAX_CACHE_SIZE, MAX_MAX_CACHE_SIZE]. Also, max_size must
* be greater than or equal to min_size.
*
* min_size: Minimum size to which the cache can be adjusted. The
* supplied value must fall in the closed interval
* [H5C__MIN_MAX_CACHE_SIZE, H5C__MAX_MAX_CACHE_SIZE]. Also, min_size
* must be less than or equal to max_size.
*
* epoch_length: Number of accesses on the cache over which to collect
* hit rate stats before running the automatic cache resize code,
* if it is enabled.
*
* At the end of an epoch, we discard prior hit rate data and start
* collecting afresh. The epoch_length must lie in the closed
* interval [H5C__MIN_AR_EPOCH_LENGTH, H5C__MAX_AR_EPOCH_LENGTH].
*
*
* Cache size increase control fields:
*
* incr_mode: Instance of the H5C_cache_incr_mode enumerated type whose
* value indicates how we determine whether the cache size should be
* increased. At present there are two possible values:
*
* H5C_incr__off: Don't attempt to increase the size of the cache
* automatically.
*
* When this increment mode is selected, the remaining fields
* in the cache size increase section ar ignored.
*
* H5C_incr__threshold: Attempt to increase the size of the cache
* whenever the average hit rate over the last epoch drops
* below the value supplied in the lower_hr_threshold
* field.
*
* Note that this attempt will fail if the cache is already
* at its maximum size, or if the cache is not already using
* all available space.
*
* Note that you must set decr_mode to H5C_incr__off if you
* disable metadata cache entry evictions.
*
* lower_hr_threshold: Lower hit rate threshold. If the increment mode
* (incr_mode) is H5C_incr__threshold and the hit rate drops below the
* value supplied in this field in an epoch, increment the cache size by
* size_increment. Note that cache size may not be incremented above
* max_size, and that the increment may be further restricted by the
* max_increment field if it is enabled.
*
* When enabled, this field must contain a value in the range [0.0, 1.0].
* Depending on the incr_mode selected, it may also have to be less than
* upper_hr_threshold.
*
* increment: Double containing the multiplier used to derive the new
* cache size from the old if a cache size increment is triggered.
* The increment must be greater than 1.0, and should not exceed 2.0.
*
* The new cache size is obtained my multiplying the current max cache
* size by the increment, and then clamping to max_size and to stay
* within the max_increment as necessary.
*
* apply_max_increment: Boolean flag indicating whether the max_increment
* field should be used to limit the maximum cache size increment.
*
* max_increment: If enabled by the apply_max_increment field described
* above, this field contains the maximum number of bytes by which the
* cache size can be increased in a single re-size.
*
* flash_incr_mode: Instance of the H5C_cache_flash_incr_mode enumerated
* type whose value indicates whether and by which algorithm we should
* make flash increases in the size of the cache to accommodate insertion
* of large entries and large increases in the size of a single entry.
*
* The addition of the flash increment mode was occasioned by performance
* problems that appear when a local heap is increased to a size in excess
* of the current cache size. While the existing re-size code dealt with
* this eventually, performance was very bad for the remainder of the
* epoch.
*
* At present, there are two possible values for the flash_incr_mode:
*
* H5C_flash_incr__off: Don't perform flash increases in the size of
* the cache.
*
* H5C_flash_incr__add_space: Let x be either the size of a newly
* newly inserted entry, or the number of bytes by which the
* size of an existing entry has been increased.
*
* If
* x > flash_threshold * current max cache size,
*
* increase the current maximum cache size by x * flash_multiple
* less any free space in the cache, and star a new epoch. For
* now at least, pay no attention to the maximum increment.
*
* In both of the above cases, the flash increment pays no attention to
* the maximum increment (at least in this first incarnation), but DOES
* stay within max_size.
*
* With a little thought, it should be obvious that the above flash
* cache size increase algorithm is not sufficient for all circumstances
* -- for example, suppose the user round robins through
* (1/flash_threshold) +1 groups, adding one data set to each on each
* pass. Then all will increase in size at about the same time, requiring
* the max cache size to at least double to maintain acceptable
* performance, however the above flash increment algorithm will not be
* triggered.
*
* Hopefully, the add space algorithms detailed above will be sufficient
* for the performance problems encountered to date. However, we should
* expect to revisit the issue.
*
* flash_multiple: Double containing the multiple described above in the
* H5C_flash_incr__add_space section of the discussion of the
* flash_incr_mode section. This field is ignored unless flash_incr_mode
* is H5C_flash_incr__add_space.
*
* flash_threshold: Double containing the factor by which current max cache
* size is multiplied to obtain the size threshold for the add_space flash
* increment algorithm. The field is ignored unless flash_incr_mode is
* H5C_flash_incr__add_space.
*
*
* Cache size decrease control fields:
*
* decr_mode: Instance of the H5C_cache_decr_mode enumerated type whose
* value indicates how we determine whether the cache size should be
* decreased. At present there are four possibilities.
*
* H5C_decr__off: Don't attempt to decrease the size of the cache
* automatically.
*
* When this increment mode is selected, the remaining fields
* in the cache size decrease section are ignored.
*
* H5C_decr__threshold: Attempt to decrease the size of the cache
* whenever the average hit rate over the last epoch rises
* above the value supplied in the upper_hr_threshold
* field.
*
* H5C_decr__age_out: At the end of each epoch, search the cache for
* entries that have not been accessed for at least the number
* of epochs specified in the epochs_before_eviction field, and
* evict these entries. Conceptually, the maximum cache size
* is then decreased to match the new actual cache size. However,
* this reduction may be modified by the min_size, the
* max_decrement, and/or the empty_reserve.
*
* H5C_decr__age_out_with_threshold: Same as age_out, but we only
* attempt to reduce the cache size when the hit rate observed
* over the last epoch exceeds the value provided in the
* upper_hr_threshold field.
*
* Note that you must set decr_mode to H5C_decr__off if you
* disable metadata cache entry evictions.
*
* upper_hr_threshold: Upper hit rate threshold. The use of this field
* varies according to the current decr_mode:
*
* H5C_decr__off or H5C_decr__age_out: The value of this field is
* ignored.
*
* H5C_decr__threshold: If the hit rate exceeds this threshold in any
* epoch, attempt to decrement the cache size by size_decrement.
*
* Note that cache size may not be decremented below min_size.
*
* Note also that if the upper_threshold is 1.0, the cache size
* will never be reduced.
*
* H5C_decr__age_out_with_threshold: If the hit rate exceeds this
* threshold in any epoch, attempt to reduce the cache size
* by evicting entries that have not been accessed for more
* than the specified number of epochs.
*
* decrement: This field is only used when the decr_mode is
* H5C_decr__threshold.
*
* The field is a double containing the multiplier used to derive the
* new cache size from the old if a cache size decrement is triggered.
* The decrement must be in the range 0.0 (in which case the cache will
* try to contract to its minimum size) to 1.0 (in which case the
* cache will never shrink).
*
* apply_max_decrement: Boolean flag used to determine whether decrements
* in cache size are to be limited by the max_decrement field.
*
* max_decrement: Maximum number of bytes by which the cache size can be
* decreased in a single re-size. Note that decrements may also be
* restricted by the min_size of the cache, and (in age out modes) by
* the empty_reserve field.
*
* epochs_before_eviction: Integer field used in H5C_decr__age_out and
* H5C_decr__age_out_with_threshold decrement modes.
*
* This field contains the number of epochs an entry must remain
* unaccessed before it is evicted in an attempt to reduce the
* cache size. If applicable, this field must lie in the range
* [1, H5C__MAX_EPOCH_MARKERS].
*
* apply_empty_reserve: Boolean field controlling whether the empty_reserve
* field is to be used in computing the new cache size when the
* decr_mode is H5C_decr__age_out or H5C_decr__age_out_with_threshold.
*
* empty_reserve: To avoid a constant racheting down of cache size by small
* amounts in the H5C_decr__age_out and H5C_decr__age_out_with_threshold
* modes, this field allows one to require that any cache size
* reductions leave the specified fraction of unused space in the cache.
*
* The value of this field must be in the range [0.0, 1.0]. I would
* expect typical values to be in the range of 0.01 to 0.1.
*
*
* Parallel Configuration Fields:
*
* In PHDF5, all operations that modify metadata must be executed collectively.
*
* We used to think that this was enough to ensure consistency across the
* metadata caches, but since we allow processes to read metadata individually,
* the order of dirty entries in the LRU list can vary across processes,
* which can result in inconsistencies between the caches.
*
* PHDF5 uses several strategies to prevent such inconsistencies in metadata,
* all of which use the fact that the same stream of dirty metadata is seen
* by all processes for purposes of synchronization. This is done by
* having each process count the number of bytes of dirty metadata generated,
* and then running a "sync point" whenever this count exceeds a user
* specified threshold (see dirty_bytes_threshold below).
*
* The current metadata write strategy is indicated by the
* metadata_write_strategy field. The possible values of this field, along
* with the associated metadata write strategies are discussed below.
*
* dirty_bytes_threshold: Threshold of dirty byte creation used to
* synchronize updates between caches. (See above for outline and
* motivation.)
*
* This value MUST be consistent across all processes accessing the
* file. This field is ignored unless HDF5 has been compiled for
* parallel.
*
* metadata_write_strategy: Integer field containing a code indicating the
* desired metadata write strategy. The valid values of this field
* are enumerated and discussed below:
*
*
* H5AC_METADATA_WRITE_STRATEGY__PROCESS_0_ONLY:
*
* When metadata_write_strategy is set to this value, only process
* zero is allowed to write dirty metadata to disk. All other
* processes must retain dirty metadata until they are informed at
* a sync point that the dirty metadata in question has been written
* to disk.
*
* When the sync point is reached (or when there is a user generated
* flush), process zero flushes sufficient entries to bring it into
* compliance with its min clean size (or flushes all dirty entries in
* the case of a user generated flush), broad casts the list of
* entries just cleaned to all the other processes, and then exits
* the sync point.
*
* Upon receipt of the broadcast, the other processes mark the indicated
* entries as clean, and leave the sync point as well.
*
*
* H5AC_METADATA_WRITE_STRATEGY__DISTRIBUTED:
*
* In the distributed metadata write strategy, process zero still makes
* the decisions as to what entries should be flushed, but the actual
* flushes are distributed across the processes in the computation to
* the extent possible.
*
* In this strategy, when a sync point is triggered (either by dirty
* metadata creation or manual flush), all processes enter a barrier.
*
* On the other side of the barrier, process 0 constructs an ordered
* list of the entries to be flushed, and then broadcasts this list
* to the caches in all the processes.
*
* All processes then scan the list of entries to be flushed, flushing
* some, and marking the rest as clean. The algorithm for this purpose
* ensures that each entry in the list is flushed exactly once, and
* all are marked clean in each cache.
*
* Note that in the case of a flush of the cache, no message passing
* is necessary, as all processes have the same list of dirty entries,
* and all of these entries must be flushed. Thus in this case it is
* sufficient for each process to sort its list of dirty entries after
* leaving the initial barrier, and use this list as if it had been
* received from process zero.
*
* To avoid possible messages from the past/future, all caches must
* wait until all caches are done before leaving the sync point.
*
****************************************************************************/
#define H5AC__CURR_CACHE_CONFIG_VERSION 1
#define H5AC__MAX_TRACE_FILE_NAME_LEN 1024
#define H5AC_METADATA_WRITE_STRATEGY__PROCESS_0_ONLY 0
#define H5AC_METADATA_WRITE_STRATEGY__DISTRIBUTED 1
/**
* H5AC_cache_config_t is a public structure intended for use in public APIs.
* At least in its initial incarnation, it is basically a copy of \c struct
* \c H5C_auto_size_ctl_t, minus the \c report_fcn field, and plus the
* \c dirty_bytes_threshold field.
*
* The \c report_fcn field is omitted, as including it would require us to make
* \c H5C_t structure public.
*
* The \c dirty_bytes_threshold field does not appear in \c H5C_auto_size_ctl_t,
* as synchronization between caches on different processes is handled at the \c
* H5AC level, not at the level of \c H5C. Note however that there is
* considerable interaction between this value and the other fields in this
* structure.
*
* Similarly, the \c open_trace_file, \c close_trace_file, and \c
* trace_file_name fields do not appear in \c H5C_auto_size_ctl_t, as most trace
* file issues are handled at the \c H5AC level. The one exception is storage
* of the pointer to the trace file, which is handled by \c H5C.
*
* The structure is in H5ACpublic.h as we may wish to allow different
* configuration options for metadata and raw data caches.
*/
//! <!-- [H5AC_cache_config_t_snip] -->
typedef struct H5AC_cache_config_t {
/* general configuration fields: */
//! <!-- [H5AC_cache_config_t_general_snip] -->
int version;
/**< Integer field indicating the the version of the H5AC_cache_config_t
* in use. This field should be set to #H5AC__CURR_CACHE_CONFIG_VERSION
* (defined in H5ACpublic.h). */
hbool_t rpt_fcn_enabled;
/**< Boolean flag indicating whether the adaptive cache resize report
* function is enabled. This field should almost always be set to disabled
* (0). Since resize algorithm activity is reported via stdout, it MUST be
* set to disabled (0) on Windows machines.\n
* The report function is not supported code, and can be expected to change
* between versions of the library. Use it at your own risk. */
hbool_t open_trace_file;
/**< Boolean field indicating whether the
* \ref H5AC_cache_config_t.trace_file_name "trace_file_name"
* field should be used to open a trace file for the cache.\n
* The trace file is a debugging feature that allows the capture
* of top level metadata cache requests for purposes of debugging
* and/or optimization. This field should normally be set to 0, as
* trace file collection imposes considerable overhead.\n
* This field should only be set to 1 when the
* \ref H5AC_cache_config_t.trace_file_name "trace_file_name"
* contains the full path of the desired trace file, and either
* there is no open trace file on the cache, or the
* \ref H5AC_cache_config_t.close_trace_file "close_trace_file"
* field is also 1.\n
* The trace file feature is unsupported unless used at the
* direction of The HDF Group. It is intended to allow The HDF
* Group to collect a trace of cache activity in cases of occult
* failures and/or poor performance seen in the field, so as to aid
* in reproduction in the lab. If you use it absent the direction
* of The HDF Group, you are on your own. */
hbool_t close_trace_file;
/**< Boolean field indicating whether the current trace file
*(if any) should be closed.\n
* See the above comments on the \ref H5AC_cache_config_t.open_trace_file
* "open_trace_file" field. This field should be set to 0 unless there is
* an open trace file on the cache that you wish to close.\n
* The trace file feature is unsupported unless used at the direction of
* The HDF Group. It is intended to allow The HDF Group to collect a trace
* of cache activity in cases of occult failures and/or poor performance
* seen in the field, so as to aid in reproduction in the lab. If you use
* it absent the direction of The HDF Group, you are on your own. */
char trace_file_name[H5AC__MAX_TRACE_FILE_NAME_LEN + 1];
/**< Full path of the trace file to be opened if the
* \ref H5AC_cache_config_t.open_trace_file "open_trace_file" field is set
* to 1.\n
* In the parallel case, an ascii representation of the MPI rank of the
* process will be appended to the file name to yield a unique trace file
* name for each process.\n
* The length of the path must not exceed #H5AC__MAX_TRACE_FILE_NAME_LEN
* characters.\n
* The trace file feature is unsupported unless used at the direction of
* The HDF Group. It is intended to allow The HDF Group to collect a trace
* of cache activity in cases of occult failures and/or poor performance
* seen in the field, so as to aid in reproduction in the lab. If you use
* it absent the direction of The HDF Group, you are on your own. */
hbool_t evictions_enabled;
/**< A boolean flag indicating whether evictions from the metadata cache
* are enabled. This flag is initially set to enabled (1).\n
* In rare circumstances, the raw data throughput quirements may be so high
* that the user wishes to postpone metadata writes so as to reserve I/O
* throughput for raw data. The \p evictions_enabled field exists to allow
* this. However, this is an extreme step, and you have no business doing
* it unless you have read the User Guide section on metadata caching, and
* have considered all other options carefully.\n
* The \p evictions_enabled field may not be set to disabled (0)
* unless all adaptive cache resizing code is disabled via the
* \ref H5AC_cache_config_t.incr_mode "incr_mode",
* \ref H5AC_cache_config_t.flash_incr_mode "flash_incr_mode",
* \ref H5AC_cache_config_t.decr_mode "decr_mode" fields.\n
* When this flag is set to disabled (\c 0), the metadata cache will not
* attempt to evict entries to make space for new entries, and thus will
* grow without bound.\n
* Evictions will be re-enabled when this field is set back to \c 1.
* This should be done as soon as possible. */
hbool_t set_initial_size;
/**< Boolean flag indicating whether the cache should be created
* with a user specified initial size. */
size_t initial_size;
/**< If \ref H5AC_cache_config_t.set_initial_size "set_initial_size"
* is set to 1, \p initial_size must contain he desired initial size in
* bytes. This value must lie in the closed interval
* [ \p min_size, \p max_size ]. (see below) */
double min_clean_fraction;
/**< This field specifies the minimum fraction of the cache
* that must be kept either clean or empty.\n
* The value must lie in the interval [0.0, 1.0]. 0.01 is a good place to
* start in the serial case. In the parallel case, a larger value is needed
* -- see the overview of the metadata cache in the
* Metadata Caching in HDF5 section of the -- <em>HDF5 Users Guide</em>
* for details. */
size_t max_size;
/**< Upper bound (in bytes) on the range of values that the
* adaptive cache resize code can select as the maximum cache size. */
size_t min_size;
/**< Lower bound (in bytes) on the range of values that the
* adaptive cache resize code can select as the minimum cache * size. */
long int epoch_length;
/**< Number of cache accesses between runs of the adaptive cache resize
* code. 50,000 is a good starting number. */
//! <!-- [H5AC_cache_config_t_general_snip] -->
/* size increase control fields: */
//! <!-- [H5AC_cache_config_t_incr_snip] -->
enum H5C_cache_incr_mode incr_mode;
/**< Enumerated value indicating the operational mode of the automatic
* cache size increase code. At present, only two values listed in
* #H5C_cache_incr_mode are legal. */
double lower_hr_threshold;
/**< Hit rate threshold used by the hit rate threshold cache size
* increment algorithm.\n
* When the hit rate over an epoch is below this threshold and the cache
* is full, the maximum size of the cache is multiplied by increment
* (below), and then clipped as necessary to stay within \p max_size, and
* possibly \p max_increment.\n
* This field must lie in the interval [0.0, 1.0]. 0.8 or 0.9 is a good
* place to start. */
double increment;
/**< Factor by which the hit rate threshold cache size increment
* algorithm multiplies the current cache max size to obtain a tentative
* new cache size.\n
* The actual cache size increase will be clipped to satisfy the \p max_size
* specified in the general configuration, and possibly max_increment
* below.\n
* The parameter must be greater than or equal to 1.0 -- 2.0 is a reasonable
* value.\n
* If you set it to 1.0, you will effectively disable cache size increases.
*/
hbool_t apply_max_increment;
/**< Boolean flag indicating whether an upper limit should be applied to
* the size of cache size increases. */
size_t max_increment;
/**< Maximum number of bytes by which cache size can be increased in a
* single step -- if applicable. */
enum H5C_cache_flash_incr_mode flash_incr_mode;
/**< Enumerated value indicating the operational mode of the flash cache
* size increase code. At present, only two listed values in
* #H5C_cache_flash_incr_mode are legal.*/
double flash_multiple;
/**< The factor by which the size of the triggering entry / entry size
* increase is multiplied to obtain the initial cache size increment. This
* increment may be reduced to reflect existing free space in the cache and
* the \p max_size field above.\n
* The parameter must lie in the interval [0.0, 1.0]. 0.1 or 0.05 is a good
* place to start.\n
* At present, this field must lie in the range [0.1, 10.0]. */
double flash_threshold;
/**< The factor by which the current maximum cache size is multiplied to
* obtain the minimum size entry / entry size increase which may trigger a
* flash cache size increase. \n
* At present, this value must lie in the range [0.1, 1.0]. */
//! <!-- [H5AC_cache_config_t_incr_snip] -->
/* size decrease control fields: */
//! <!-- [H5AC_cache_config_t_decr_snip] -->
enum H5C_cache_decr_mode decr_mode;
/**< Enumerated value indicating the operational mode of the tomatic
* cache size decrease code. At present, the values listed in
* #H5C_cache_decr_mode are legal.*/
double upper_hr_threshold;
/**< Hit rate threshold for the hit rate threshold and ageout with hit
* rate threshold cache size decrement algorithms.\n
* When \p decr_mode is #H5C_decr__threshold, and the hit rate over a given
* epoch exceeds the supplied threshold, the current maximum cache
* size is multiplied by decrement to obtain a tentative new (and smaller)
* maximum cache size.\n
* When \p decr_mode is #H5C_decr__age_out_with_threshold, there is
* no attempt to find and evict aged out entries unless the hit rate in
* the previous epoch exceeded the supplied threshold.\n
* This field must lie in the interval [0.0, 1.0].\n
* For #H5C_incr__threshold, .9995 or .99995 is a good place to start.\n
* For #H5C_decr__age_out_with_threshold, .999 might be more useful.*/
double decrement;
/**< In the hit rate threshold cache size decrease algorithm, this
* parameter contains the factor by which the current max cache size is
* multiplied to produce a tentative new cache size.\n
* The actual cache size decrease will be clipped to satisfy the
* \ref H5AC_cache_config_t.min_size "min_size" specified in the general
* configuration, and possibly \ref H5AC_cache_config_t.max_decrement
* "max_decrement".\n
* The parameter must be be in the interval [0.0, 1.0].\n
* If you set it to 1.0, you will effectively
* disable cache size decreases. 0.9 is a reasonable starting point. */
hbool_t apply_max_decrement;
/**< Boolean flag indicating ether an upper limit should be applied to
* the size of cache size decreases. */
size_t max_decrement;
/**< Maximum number of bytes by which the maximum cache size can be
* decreased in any single step -- if applicable.*/
int epochs_before_eviction;
/**< In the ageout based cache size reduction algorithms, this field
* contains the minimum number of epochs an entry must remain unaccessed in
* cache before the cache size reduction algorithm tries to evict it. 3 is a
* reasonable value. */
hbool_t apply_empty_reserve;
/**< Boolean flag indicating whether the ageout based decrement
* algorithms will maintain a empty reserve when decreasing cache size. */
double empty_reserve;
/**< Empty reserve as a fraction maximum cache size if applicable.\n When
* so directed, the ageout based algorithms will not decrease the maximum
* cache size unless the empty reserve can be met.\n The parameter must lie
* in the interval [0.0, 1.0]. 0.1 or 0.05 is a good place to start. */
//! <!-- [H5AC_cache_config_t_decr_snip] -->
/* parallel configuration fields: */
//! <!-- [H5AC_cache_config_t_parallel_snip] -->
size_t dirty_bytes_threshold;
/**< Threshold number of bytes of dirty metadata generation for
* triggering synchronizations of the metadata caches serving the target
* file in the parallel case.\n Synchronization occurs whenever the number
* of bytes of dirty metadata created since the last synchronization exceeds
* this limit.\n This field only applies to the parallel case. While it is
* ignored elsewhere, it can still draw a value out of bounds error.\n It
* must be consistent across all caches on any given file.\n By default,
* this field is set to 256 KB. It shouldn't be more than half the current
* max cache size times the min clean fraction. */
int metadata_write_strategy;
/**< Desired metadata write strategy. The valid values for this field
* are:\n #H5AC_METADATA_WRITE_STRATEGY__PROCESS_0_ONLY: Specifies the only
* process zero is allowed to write dirty metadata to disk.\n
* #H5AC_METADATA_WRITE_STRATEGY__DISTRIBUTED: Specifies that process zero
* still makes the decisions as to what entries should be flushed, but the
* actual flushes are distributed across the processes in the computation to
* the extent possible.\n The src/H5ACpublic.h include file in the HDF5
* library has detailed information on each strategy. */
//! <!-- [H5AC_cache_config_t_parallel_snip] -->
} H5AC_cache_config_t;
//! <!-- [H5AC_cache_config_t_snip] -->
#define H5AC__CURR_CACHE_IMAGE_CONFIG_VERSION 1
#define H5AC__CACHE_IMAGE__ENTRY_AGEOUT__NONE -1
#define H5AC__CACHE_IMAGE__ENTRY_AGEOUT__MAX 100
//! <!-- [H5AC_cache_image_config_t_snip] -->
/**
* H5AC_cache_image_config_t is a public structure intended for use in public
* APIs. At least in its initial incarnation, it is a copy of \c struct \c
* H5C_cache_image_ctl_t.
*/
typedef struct H5AC_cache_image_config_t {
int version;
/**< Integer field containing the version number of this version of the \c
* H5C_image_ctl_t structure. Any instance of \c H5C_image_ctl_t passed
* to the cache must have a known version number, or an error will be
* flagged.
*/
hbool_t generate_image;
/**< Boolean flag indicating whether a cache image should be created on file
* close.
*/
hbool_t save_resize_status;
/**< Boolean flag indicating whether the cache image should include the
* adaptive cache resize configuration and status. Note that this field
* is ignored at present.
*/
int entry_ageout;
/**< Integer field indicating the maximum number of times a
* prefetched entry can appear in subsequent cache images. This field
* exists to allow the user to avoid the buildup of infrequently used
* entries in long sequences of cache images.
*
* The value of this field must lie in the range \ref
* H5AC__CACHE_IMAGE__ENTRY_AGEOUT__NONE (-1) to \ref
* H5AC__CACHE_IMAGE__ENTRY_AGEOUT__MAX (100).
*
* \ref H5AC__CACHE_IMAGE__ENTRY_AGEOUT__NONE means that no limit is
* imposed on number of times a prefeteched entry can appear in subsequent
* cache images.
*
* A value of 0 prevents prefetched entries from being included in cache
* images.
*
* Positive integers restrict prefetched entries to the specified number
* of appearances.
*
* Note that the number of subsequent cache images that a prefetched entry
* has appeared in is tracked in an 8 bit field. Thus, while \ref
* H5AC__CACHE_IMAGE__ENTRY_AGEOUT__MAX can be increased from its current
* value, any value in excess of 255 will be the functional equivalent of
* \ref H5AC__CACHE_IMAGE__ENTRY_AGEOUT__NONE.
*/
} H5AC_cache_image_config_t;
//! <!-- [H5AC_cache_image_config_t_snip] -->
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,84 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5AbstractDs_H
#define H5AbstractDs_H
namespace H5 {
class ArrayType;
class CompType;
class EnumType;
class FloatType;
class IntType;
class StrType;
class VarLenType;
class DataSpace;
/*! \class AbstractDs
\brief AbstractDs is an abstract base class, inherited by Attribute
and DataSet.
It provides a collection of services that are common to both Attribute
and DataSet.
*/
class H5_DLLCPP AbstractDs {
public:
// Gets a copy the datatype of that this abstract dataset uses.
// Note that this datatype is a generic one and can only be accessed
// via generic member functions, i.e., member functions belong
// to DataType. To get specific datatype, i.e. EnumType, FloatType,
// etc..., use the specific functions, that follow, instead.
DataType getDataType() const;
// Gets a copy of the specific datatype of this abstract dataset.
ArrayType getArrayType() const;
CompType getCompType() const;
EnumType getEnumType() const;
IntType getIntType() const;
FloatType getFloatType() const;
StrType getStrType() const;
VarLenType getVarLenType() const;
///\brief Gets the size in memory of this abstract dataset.
virtual size_t getInMemDataSize() const = 0;
///\brief Gets the dataspace of this abstract dataset - pure virtual.
virtual DataSpace getSpace() const = 0;
// Gets the class of the datatype that is used by this abstract
// dataset.
H5T_class_t getTypeClass() const;
///\brief Returns the amount of storage size required - pure virtual.
virtual hsize_t getStorageSize() const = 0;
// Returns this class name - pure virtual.
virtual H5std_string fromClass() const = 0;
// Destructor
virtual ~AbstractDs();
protected:
// Default constructor
AbstractDs();
private:
// This member function is implemented by DataSet and Attribute - pure virtual.
virtual hid_t p_get_type() const = 0;
}; // end of AbstractDs
} // namespace H5
#endif // H5AbstractDs_H

View File

@ -0,0 +1,27 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// This header file simply serves as a container to hold the
// header files of all datatypes. It simplifies the header
// file including in the code.
#include "H5DataType.h"
#include "H5AtomType.h"
#include "H5EnumType.h"
#include "H5IntType.h"
#include "H5FloatType.h"
#include "H5StrType.h"
#include "H5ArrayType.h"
#include "H5VarLenType.h"
#include "H5CompType.h"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,72 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5ArrayType_H
#define H5ArrayType_H
namespace H5 {
/*! \class ArrayType
\brief Class ArrayType inherits from DataType and provides wrappers for
the HDF5's Array Datatypes.
*/
// Inheritance: DataType -> H5Object -> H5Location -> IdComponent
class H5_DLLCPP ArrayType : public DataType {
public:
// Constructor that creates a new array data type based on the
// specified base type.
ArrayType(const DataType &base_type, int ndims, const hsize_t *dims);
// Assignment operator
ArrayType &operator=(const ArrayType &rhs);
// Constructors that open an array datatype, given a location.
ArrayType(const H5Location &loc, const char *name);
ArrayType(const H5Location &loc, const H5std_string &name);
// Returns an ArrayType object via DataType* by decoding the
// binary object description of this type.
virtual DataType *decode() const override;
// Returns the number of dimensions of this array datatype.
int getArrayNDims() const;
// int getArrayNDims(); // removed 1.8.18 and 1.10.1
// Returns the sizes of dimensions of this array datatype.
int getArrayDims(hsize_t *dims) const;
// int getArrayDims(hsize_t* dims); // removed 1.8.18 and 1.10.1
///\brief Returns this class name.
virtual H5std_string
fromClass() const override
{
return ("ArrayType");
}
// Copy constructor: same as the original ArrayType.
ArrayType(const ArrayType &original);
// Constructor that takes an existing id
ArrayType(const hid_t existing_id);
// Noop destructor
virtual ~ArrayType() override;
// Default constructor
ArrayType();
}; // end of ArrayType
} // namespace H5
#endif // H5ArrayType_H

View File

@ -0,0 +1,86 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5AtomType_H
#define H5AtomType_H
namespace H5 {
/*! \class AtomType
\brief AtomType is a base class, inherited by IntType, FloatType,
StrType, and PredType.
AtomType provides operations on HDF5 atomic datatypes. It also inherits
from DataType.
*/
// Inheritance: DataType -> H5Object -> H5Location -> IdComponent
class H5_DLLCPP AtomType : public DataType {
public:
// Returns the byte order of an atomic datatype.
H5T_order_t getOrder() const;
H5T_order_t getOrder(H5std_string &order_string) const;
// Sets the byte ordering of an atomic datatype.
void setOrder(H5T_order_t order) const;
// Retrieves the bit offset of the first significant bit.
// 12/05/00 - changed return type to int from size_t - C API
int getOffset() const;
// Sets the bit offset of the first significant bit.
void setOffset(size_t offset) const;
// Retrieves the padding type of the least and most-significant bit padding.
void getPad(H5T_pad_t &lsb, H5T_pad_t &msb) const;
// Sets the least and most-significant bits padding types
void setPad(H5T_pad_t lsb, H5T_pad_t msb) const;
// Returns the precision of an atomic datatype.
size_t getPrecision() const;
// Sets the precision of an atomic datatype.
void setPrecision(size_t precision) const;
// Sets the total size for an atomic datatype.
void setSize(size_t size) const;
///\brief Returns this class name.
virtual H5std_string
fromClass() const override
{
return ("AtomType");
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Copy constructor: same as the original AtomType.
AtomType(const AtomType &original);
// Noop destructor
virtual ~AtomType() override;
#endif // DOXYGEN_SHOULD_SKIP_THIS
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Default constructor
AtomType();
// Constructor that takes an existing id
AtomType(const hid_t existing_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
}; // end of AtomType
} // namespace H5
#endif // H5AtomType_H

View File

@ -0,0 +1,107 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5Attribute_H
#define H5Attribute_H
namespace H5 {
/*! \class Attribute
\brief Class Attribute operates on HDF5 attributes.
An attribute has many characteristics similar to a dataset, thus both
Attribute and DataSet are derivatives of AbstractDs. Attribute also
inherits from H5Location because an attribute can be used to specify
a location.
*/
// Inheritance: multiple H5Location/AbstractDs -> IdComponent
class H5_DLLCPP Attribute : public AbstractDs, public H5Location {
public:
// Copy constructor: same as the original Attribute.
Attribute(const Attribute &original);
// Default constructor
Attribute();
// Creates a copy of an existing attribute using the attribute id
Attribute(const hid_t attr_id);
// Closes this attribute.
virtual void close() override;
// Gets the name of this attribute.
ssize_t getName(char *attr_name, size_t buf_size = 0) const;
H5std_string getName(size_t len) const;
H5std_string getName() const;
ssize_t getName(H5std_string &attr_name, size_t len = 0) const;
// The overloaded function below is replaced by the one above and it
// is kept for backward compatibility purpose.
ssize_t getName(size_t buf_size, H5std_string &attr_name) const;
// Gets a copy of the dataspace for this attribute.
virtual DataSpace getSpace() const override;
// Returns the amount of storage size required for this attribute.
virtual hsize_t getStorageSize() const override;
// Returns the in memory size of this attribute's data.
virtual size_t getInMemDataSize() const override;
// Reads data from this attribute.
void read(const DataType &mem_type, void *buf) const;
void read(const DataType &mem_type, H5std_string &strg) const;
// Writes data to this attribute.
void write(const DataType &mem_type, const void *buf) const;
void write(const DataType &mem_type, const H5std_string &strg) const;
///\brief Returns this class name.
virtual H5std_string
fromClass() const override
{
return ("Attribute");
}
// Gets the attribute id.
virtual hid_t getId() const override;
// Destructor: properly terminates access to this attribute.
virtual ~Attribute() override;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
protected:
// Sets the attribute id.
virtual void p_setId(const hid_t new_id) override;
#endif // DOXYGEN_SHOULD_SKIP_THIS
private:
hid_t id; // HDF5 attribute id
// This function contains the common code that is used by
// getTypeClass and various API functions getXxxType
// defined in AbstractDs for generic datatype and specific
// sub-types
virtual hid_t p_get_type() const override;
// Reads variable or fixed len strings from this attribute.
void p_read_variable_len(const DataType &mem_type, H5std_string &strg) const;
void p_read_fixed_len(const DataType &mem_type, H5std_string &strg) const;
// Friend function to set Attribute id. For library use only.
friend void f_Attribute_setId(Attribute *attr, hid_t new_id);
}; // end of Attribute
} // namespace H5
#endif // H5Attribute_H

View File

@ -0,0 +1,46 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5Classes_H
#define H5Classes_H
namespace H5 {
class Exception;
class IdComponent;
class H5Location;
class H5Object;
class PropList;
class FileCreatPropList;
class FileAccPropList;
class LinkAccPropList;
class DSetCreatPropList;
class DSetMemXferPropList;
class DTypePropList;
class DataType;
class DataSpace;
class AtomType;
class PredType;
class IntType;
class FloatType;
class StrType;
class EnumType;
class CompType;
class AbstractDs;
class DataSet;
class Group;
class H5File;
class Attribute;
class H5Library;
} // namespace H5
#endif // H5Classes_H

View File

@ -0,0 +1,96 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5CommonFG_H
#define H5CommonFG_H
namespace H5 {
// Class forwarding
class Group;
class H5File;
class ArrayType;
class VarLenType;
/*! \class CommonFG
\brief \a CommonFG is an abstract base class of H5Group.
*/
/* Note: This class is being deprecated gradually. */
class H5_DLLCPP CommonFG {
public:
// Opens a generic named datatype in this location.
DataType openDataType(const char *name) const;
DataType openDataType(const H5std_string &name) const;
// Opens a named array datatype in this location.
ArrayType openArrayType(const char *name) const;
ArrayType openArrayType(const H5std_string &name) const;
// Opens a named compound datatype in this location.
CompType openCompType(const char *name) const;
CompType openCompType(const H5std_string &name) const;
// Opens a named enumeration datatype in this location.
EnumType openEnumType(const char *name) const;
EnumType openEnumType(const H5std_string &name) const;
// Opens a named integer datatype in this location.
IntType openIntType(const char *name) const;
IntType openIntType(const H5std_string &name) const;
// Opens a named floating-point datatype in this location.
FloatType openFloatType(const char *name) const;
FloatType openFloatType(const H5std_string &name) const;
// Opens a named string datatype in this location.
StrType openStrType(const char *name) const;
StrType openStrType(const H5std_string &name) const;
// Opens a named variable length datatype in this location.
VarLenType openVarLenType(const char *name) const;
VarLenType openVarLenType(const H5std_string &name) const;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/// For subclasses, H5File and Group, to return the correct
/// object id, i.e. file or group id.
virtual hid_t getLocId() const = 0;
/// For subclasses, H5File and Group, to throw appropriate exception.
virtual void throwException(const H5std_string &func_name, const H5std_string &msg) const = 0;
// Default constructor.
CommonFG();
// Noop destructor.
virtual ~CommonFG();
protected:
virtual void p_setId(const hid_t new_id) = 0;
#endif // DOXYGEN_SHOULD_SKIP_THIS
}; // end of CommonFG
} // namespace H5
#endif // H5CommonFG_H
/***************************************************************************
Design Note
===========
September 2017:
This class used to be base class of H5File as well, until the
restructure that moved H5File to be subclass of H5Group.
*/

View File

@ -0,0 +1,127 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5CompType_H
#define H5CompType_H
namespace H5 {
/*! \class CompType
\brief CompType is a derivative of a DataType and operates on HDF5
compound datatypes.
*/
// Inheritance: DataType -> H5Object -> H5Location -> IdComponent
class H5_DLLCPP CompType : public DataType {
public:
// Default constructor
CompType();
// Creates a compound datatype using an existing id
CompType(const hid_t existing_id);
// Creates a new compound datatype, given the type's size
CompType(size_t size); // H5Tcreate
// Gets the compound datatype of the specified dataset
CompType(const DataSet &dataset); // H5Dget_type
// Copy constructor - same as the original CompType.
CompType(const CompType &original);
// Constructors that open a compound datatype, given a location.
CompType(const H5Location &loc, const char *name);
CompType(const H5Location &loc, const H5std_string &name);
// Returns a CompType object via DataType* by decoding the binary
// object description of this type.
virtual DataType *decode() const override;
// Returns the type class of the specified member of this compound
// datatype. It provides to the user a way of knowing what type
// to create another datatype of the same class
H5T_class_t getMemberClass(unsigned member_num) const;
// Returns the index of a member in this compound data type.
int getMemberIndex(const char *name) const;
int getMemberIndex(const H5std_string &name) const;
// Returns the offset of a member of this compound datatype.
size_t getMemberOffset(unsigned memb_no) const;
// Returns the name of a member of this compound datatype.
H5std_string getMemberName(unsigned member_num) const;
// Returns the generic datatype of the specified member in
// this compound datatype.
DataType getMemberDataType(unsigned member_num) const;
// Returns the array datatype of the specified member in
// this compound datatype.
ArrayType getMemberArrayType(unsigned member_num) const;
// Returns the compound datatype of the specified member in
// this compound datatype.
CompType getMemberCompType(unsigned member_num) const;
// Returns the enumeration datatype of the specified member in
// this compound datatype.
EnumType getMemberEnumType(unsigned member_num) const;
// Returns the integer datatype of the specified member in
// this compound datatype.
IntType getMemberIntType(unsigned member_num) const;
// Returns the floating-point datatype of the specified member in
// this compound datatype.
FloatType getMemberFloatType(unsigned member_num) const;
// Returns the string datatype of the specified member in
// this compound datatype.
StrType getMemberStrType(unsigned member_num) const;
// Returns the variable length datatype of the specified member in
// this compound datatype.
VarLenType getMemberVarLenType(unsigned member_num) const;
// Returns the number of members in this compound datatype.
int getNmembers() const;
// Adds a new member to this compound datatype.
void insertMember(const H5std_string &name, size_t offset, const DataType &new_member) const;
// Recursively removes padding from within this compound datatype.
void pack() const;
// Sets the total size for this compound datatype.
void setSize(size_t size) const;
///\brief Returns this class name.
virtual H5std_string
fromClass() const override
{
return ("CompType");
}
// Noop destructor.
virtual ~CompType() override;
private:
// Contains common code that is used by the member functions
// getMemberXxxType
hid_t p_get_member_type(unsigned member_num) const;
}; // end of CompType
} // namespace H5
#endif // H5CompType_H

View File

@ -0,0 +1,51 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5Cpp_H
#define H5Cpp_H
#include "H5Include.h"
#include "H5Exception.h"
#include "H5IdComponent.h"
#include "H5DataSpace.h"
#include "H5PropList.h"
#include "H5FaccProp.h"
#include "H5FcreatProp.h"
#include "H5OcreatProp.h"
#include "H5DcreatProp.h"
#include "H5DxferProp.h"
#include "H5LcreatProp.h"
#include "H5LaccProp.h"
#include "H5DaccProp.h"
#include "H5Location.h"
#include "H5Object.h"
#include "H5AbstractDs.h"
#include "H5Attribute.h"
#include "H5DataType.h"
#include "H5AtomType.h"
#include "H5PredType.h"
#include "H5EnumType.h"
#include "H5IntType.h"
#include "H5FloatType.h"
#include "H5StrType.h"
#include "H5CompType.h"
#include "H5ArrayType.h"
#include "H5VarLenType.h"
#include "H5DataSet.h"
#include "H5CommonFG.h"
#include "H5Group.h"
#include "H5File.h"
#include "H5Library.h"
#endif // H5Cpp_H

View File

@ -0,0 +1,95 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5CppDoc_H
#define H5CppDoc_H
//-------------------------------------------------------------------------
// The following section will be used to generate the 'Mainpage'
// and the 'Examples' for the RM.
// ------------------------------------------------------------------------
/*! \mainpage notitle
* <br />
* \section intro_sec Introduction
*
* The C++ API provides C++ wrappers for the HDF5 C Library.
*
* It is assumed that the user has knowledge of the HDF5 file format and its
* components. For more information on the HDF5 C Library, please refer to
* the HDF5 Software Documentation page.
*
* Because the HDF5 C Library maps very well to
* the object oriented design approach, classes in the C++ API can
* closely represent the interfaces of the C APIs as follows:
*
* \verbatim
HDF5 C APIs C++ Classes
----------- -----------
Attribute Interface (H5A) Attribute
Datasets Interface (H5D) DataSet
Error Interface (H5E) Exception
File Interface (H5F) H5File
Group Interface (H5G) Group
Identifier Interface (H5I) IdComponent
Property List Interface (H5P) PropList and subclasses
Dataspace Interface (H5S) DataSpace
Datatype Interface (H5T) DataType and subclasses
\endverbatim
*
* This <a href="./C2Cppfunction_map.htm">
* table </a> provides a map from the C APIs to the C++ member functions.
* <br />
* \section install_sec Installation
*
* The HDF5 C++ API is included with the HDF5 source code.
*
* Please refer to the release_docs/INSTALL file under the top directory
* of the HDF5 source code for information about installing, building,
* and testing the C++ API.
*
* <br />
*/
/// This example shows how to create datasets.
///\par
///\example create.cpp
///\par
/// This example shows how to write datasets.
///\example writedata.cpp
///\par
/// This example shows how to read datasets.
///\example readdata.cpp
///\par
/// This example shows how to create a compound datatype,
/// write an array which has the compound datatype to the file,
/// and read back fields' subsets.
///\example compound.cpp
///\par
/// This example shows how to work with extendible datasets.
///\example extend_ds.cpp
///\par
/// This example shows how to read data from a chunked dataset.
///\example chunks.cpp
///\par
/// This example shows how to work with groups.
///\example h5group.cpp
#endif // H5CppDoc_H

View File

@ -0,0 +1,67 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*-------------------------------------------------------------------------
*
* Created: H5Cpublic.h
* June 4, 2005
* John Mainzer
*
* Purpose: Public include file for cache functions.
*
*-------------------------------------------------------------------------
*/
#ifndef H5Cpublic_H
#define H5Cpublic_H
/* Public headers needed by this file */
#include "H5public.h"
#ifdef __cplusplus
extern "C" {
#endif
enum H5C_cache_incr_mode {
H5C_incr__off,
/**<Automatic cache size increase is disabled, and the remaining increment fields are ignored.*/
H5C_incr__threshold
/**<Automatic cache size increase is enabled using the hit rate threshold algorithm.*/
};
enum H5C_cache_flash_incr_mode {
H5C_flash_incr__off,
/**<Flash cache size increase is disabled.*/
H5C_flash_incr__add_space
/**<Flash cache size increase is enabled using the add space algorithm.*/
};
enum H5C_cache_decr_mode {
H5C_decr__off,
/**<Automatic cache size decrease is disabled.*/
H5C_decr__threshold,
/**<Automatic cache size decrease is enabled using the hit rate threshold algorithm.*/
H5C_decr__age_out,
/**<Automatic cache size decrease is enabled using the ageout algorithm. */
H5C_decr__age_out_with_threshold
/**<Automatic cache size decrease is enabled using the ageout with hit rate threshold algorithm.*/
};
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,49 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5DOpublic_H
#define H5DOpublic_H
#ifdef __cplusplus
extern "C" {
#endif
/*-------------------------------------------------------------------------
*
* "Optimized dataset" routines.
*
*-------------------------------------------------------------------------
*/
H5_HLDLL herr_t H5DOappend(hid_t dset_id, hid_t dxpl_id, unsigned axis, size_t extension, hid_t memtype,
const void *buf);
/* Symbols defined for compatibility with previous versions of the HDF5 API.
*
* Use of these symbols is deprecated.
*/
#ifndef H5_NO_DEPRECATED_SYMBOLS
/* Compatibility wrappers for functionality moved to H5D */
H5_HLDLL herr_t H5DOwrite_chunk(hid_t dset_id, hid_t dxpl_id, uint32_t filters, const hsize_t *offset,
size_t data_size, const void *buf);
H5_HLDLL herr_t H5DOread_chunk(hid_t dset_id, hid_t dxpl_id, const hsize_t *offset, uint32_t *filters /*out*/,
void *buf /*out*/);
#endif /* H5_NO_DEPRECATED_SYMBOLS */
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,55 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5DSpublic_H
#define H5DSpublic_H
#define DIMENSION_SCALE_CLASS "DIMENSION_SCALE"
#define DIMENSION_LIST "DIMENSION_LIST"
#define REFERENCE_LIST "REFERENCE_LIST"
#define DIMENSION_LABELS "DIMENSION_LABELS"
typedef herr_t (*H5DS_iterate_t)(hid_t dset, unsigned dim, hid_t scale, void *visitor_data);
#ifdef __cplusplus
extern "C" {
#endif
H5_HLDLL herr_t H5DSwith_new_ref(hid_t obj_id, hbool_t *with_new_ref);
H5_HLDLL herr_t H5DSattach_scale(hid_t did, hid_t dsid, unsigned int idx);
H5_HLDLL herr_t H5DSdetach_scale(hid_t did, hid_t dsid, unsigned int idx);
H5_HLDLL herr_t H5DSset_scale(hid_t dsid, const char *dimname);
H5_HLDLL int H5DSget_num_scales(hid_t did, unsigned int dim);
H5_HLDLL herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label);
H5_HLDLL ssize_t H5DSget_label(hid_t did, unsigned int idx, char *label, size_t size);
H5_HLDLL ssize_t H5DSget_scale_name(hid_t did, char *name, size_t size);
H5_HLDLL htri_t H5DSis_scale(hid_t did);
H5_HLDLL herr_t H5DSiterate_scales(hid_t did, unsigned int dim, int *idx, H5DS_iterate_t visitor,
void *visitor_data);
H5_HLDLL htri_t H5DSis_attached(hid_t did, hid_t dsid, unsigned int idx);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,72 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5DSetAccPropList_H
#define H5DSetAccPropList_H
namespace H5 {
/*! \class DSetAccPropList
\brief Class DSetAccPropList inherits from LinkAccPropList and provides
wrappers for the HDF5 dataset access property functions.
*/
// Inheritance: LinkAccPropList -> PropList -> IdComponent
class H5_DLLCPP DSetAccPropList : public LinkAccPropList {
public:
///\brief Default dataset creation property list.
static const DSetAccPropList &DEFAULT;
// Creates a dataset creation property list.
DSetAccPropList();
// Sets the raw data chunk cache parameters.
void setChunkCache(size_t rdcc_nslots, size_t rdcc_nbytes, double rdcc_w0) const;
// Retrieves the raw data chunk cache parameters.
void getChunkCache(size_t &rdcc_nslots, size_t &rdcc_nbytes, double &rdcc_w0) const;
///\brief Returns this class name.
virtual H5std_string
fromClass() const override
{
return ("DSetAccPropList");
}
// Copy constructor - same as the original DSetAccPropList.
DSetAccPropList(const DSetAccPropList &orig);
// Creates a copy of an existing dataset creation property list
// using the property list id.
DSetAccPropList(const hid_t plist_id);
// Noop destructor.
virtual ~DSetAccPropList() override;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Deletes the global constant, should only be used by the library
static void deleteConstants();
private:
static DSetAccPropList *DEFAULT_;
// Creates the global constant, should only be used by the library
static DSetAccPropList *getConstant();
#endif // DOXYGEN_SHOULD_SKIP_THIS
}; // end of DSetAccPropList
} // namespace H5
#endif // H5DSetAccPropList_H

View File

@ -0,0 +1,159 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5DataSet_H
#define H5DataSet_H
namespace H5 {
/*! \class DataSet
\brief Class DataSet operates on HDF5 datasets.
An datasets has many characteristics similar to an attribute, thus both
Attribute and DataSet are derivatives of AbstractDs. DataSet also
inherits from H5Object because a dataset is an HDF5 object.
*/
// Inheritance: multiple H5Object/AbstractDs -> H5Location -> IdComponent
class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
public:
// Close this dataset.
virtual void close() override;
// Extends the dataset with unlimited dimension.
void extend(const hsize_t *size) const;
// Fills a selection in memory with a value
void fillMemBuf(const void *fill, const DataType &fill_type, void *buf, const DataType &buf_type,
const DataSpace &space) const;
// void fillMemBuf(const void *fill, DataType& fill_type, void *buf, DataType& buf_type, DataSpace&
// space); // removed from 1.8.18 and 1.10.1
// Fills a selection in memory with zero
void fillMemBuf(void *buf, const DataType &buf_type, const DataSpace &space) const;
// void fillMemBuf(void *buf, DataType& buf_type, DataSpace& space); // removed from 1.8.18 and 1.10.1
// Gets the creation property list of this dataset.
DSetCreatPropList getCreatePlist() const;
// Gets the access property list of this dataset.
DSetAccPropList getAccessPlist() const;
// Returns the address of this dataset in the file.
haddr_t getOffset() const;
// Gets the dataspace of this dataset.
virtual DataSpace getSpace() const override;
// Determines whether space has been allocated for a dataset.
void getSpaceStatus(H5D_space_status_t &status) const;
// Returns the amount of storage size required for this dataset.
virtual hsize_t getStorageSize() const override;
// Returns the in memory size of this attribute's data.
virtual size_t getInMemDataSize() const override;
// Returns the number of bytes required to store VL data.
hsize_t getVlenBufSize(const DataType &type, const DataSpace &space) const;
// hsize_t getVlenBufSize(DataType& type, DataSpace& space) const; // removed from 1.8.18 and 1.10.1
// Reclaims VL datatype memory buffers.
static void vlenReclaim(const DataType &type, const DataSpace &space,
const DSetMemXferPropList &xfer_plist, void *buf);
static void vlenReclaim(void *buf, const DataType &type, const DataSpace &space = DataSpace::ALL,
const DSetMemXferPropList &xfer_plist = DSetMemXferPropList::DEFAULT);
// Reads the data of this dataset and stores it in the provided buffer.
// The memory and file dataspaces and the transferring property list
// can be defaults.
void read(void *buf, const DataType &mem_type, const DataSpace &mem_space = DataSpace::ALL,
const DataSpace & file_space = DataSpace::ALL,
const DSetMemXferPropList &xfer_plist = DSetMemXferPropList::DEFAULT) const;
void read(H5std_string &buf, const DataType &mem_type, const DataSpace &mem_space = DataSpace::ALL,
const DataSpace & file_space = DataSpace::ALL,
const DSetMemXferPropList &xfer_plist = DSetMemXferPropList::DEFAULT) const;
// Writes the buffered data to this dataset.
// The memory and file dataspaces and the transferring property list
// can be defaults.
void write(const void *buf, const DataType &mem_type, const DataSpace &mem_space = DataSpace::ALL,
const DataSpace & file_space = DataSpace::ALL,
const DSetMemXferPropList &xfer_plist = DSetMemXferPropList::DEFAULT) const;
void write(const H5std_string &buf, const DataType &mem_type, const DataSpace &mem_space = DataSpace::ALL,
const DataSpace & file_space = DataSpace::ALL,
const DSetMemXferPropList &xfer_plist = DSetMemXferPropList::DEFAULT) const;
// Iterates the selected elements in the specified dataspace - not implemented in C++ style yet
int iterateElems(void *buf, const DataType &type, const DataSpace &space, H5D_operator_t op,
void *op_data = NULL);
///\brief Returns this class name.
virtual H5std_string
fromClass() const override
{
return ("DataSet");
}
// Creates a dataset by way of dereference.
DataSet(const H5Location &loc, const void *ref, H5R_type_t ref_type = H5R_OBJECT,
const PropList &plist = PropList::DEFAULT);
DataSet(const Attribute &attr, const void *ref, H5R_type_t ref_type = H5R_OBJECT,
const PropList &plist = PropList::DEFAULT);
// Default constructor.
DataSet();
// Copy constructor - same as the original DataSet.
DataSet(const DataSet &original);
// Assignment operator
DataSet &operator=(const DataSet &original);
// Creates a copy of an existing DataSet using its id.
DataSet(const hid_t existing_id);
// Gets the dataset id.
virtual hid_t getId() const override;
// Destructor: properly terminates access to this dataset.
virtual ~DataSet() override;
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Sets the dataset id.
virtual void p_setId(const hid_t new_id) override;
#endif // DOXYGEN_SHOULD_SKIP_THIS
private:
hid_t id; // HDF5 dataset id
// This function contains the common code that is used by
// getTypeClass and various API functions getXxxType
// defined in AbstractDs for generic datatype and specific
// sub-types
virtual hid_t p_get_type() const override;
// Reads variable or fixed len strings from this dataset.
void p_read_fixed_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id,
const hid_t xfer_plist_id, H5std_string &strg) const;
void p_read_variable_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id,
const hid_t xfer_plist_id, H5std_string &strg) const;
// Friend function to set DataSet id. For library use only.
friend void f_DataSet_setId(DataSet *dset, hid_t new_id);
}; // end of DataSet
} // namespace H5
#endif // H5DataSet_H

View File

@ -0,0 +1,158 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5DataSpace_H
#define H5DataSpace_H
namespace H5 {
/*! \class DataSpace
\brief Class DataSpace inherits from IdComponent and provides wrappers for
the HDF5's dataspaces.
*/
// Inheritance: IdComponent
class H5_DLLCPP DataSpace : public IdComponent {
public:
///\brief Default DataSpace objects
static const DataSpace &ALL;
// Creates a dataspace object given the space type
DataSpace(H5S_class_t type = H5S_SCALAR);
// Creates a simple dataspace
DataSpace(int rank, const hsize_t *dims, const hsize_t *maxdims = NULL);
// Creates a DataSpace object using an existing dataspace id.
DataSpace(const hid_t space_id);
// Copy constructor - same as the original DataSpace.
DataSpace(const DataSpace &original);
// Assignment operator
DataSpace &operator=(const DataSpace &rhs);
// Closes this dataspace.
virtual void close() override;
// Makes copy of an existing dataspace.
void copy(const DataSpace &like_space);
// Copies the extent of this dataspace.
void extentCopy(const DataSpace &dest_space) const;
// removed from 1.8.18 and 1.10.1
// void extentCopy(DataSpace& dest_space) const;
// Gets the bounding box containing the current selection.
void getSelectBounds(hsize_t *start, hsize_t *end) const;
// Gets the number of element points in the current selection.
hssize_t getSelectElemNpoints() const;
// Retrieves the list of element points currently selected.
void getSelectElemPointlist(hsize_t startpoint, hsize_t numpoints, hsize_t *buf) const;
// Gets the list of hyperslab blocks currently selected.
void getSelectHyperBlocklist(hsize_t startblock, hsize_t numblocks, hsize_t *buf) const;
// Get number of hyperslab blocks.
hssize_t getSelectHyperNblocks() const;
// Gets the number of elements in this dataspace selection.
hssize_t getSelectNpoints() const;
// Retrieves dataspace dimension size and maximum size.
int getSimpleExtentDims(hsize_t *dims, hsize_t *maxdims = NULL) const;
// Gets the dimensionality of this dataspace.
int getSimpleExtentNdims() const;
// Gets the number of elements in this dataspace.
// 12/05/00 - changed return type to hssize_t from hsize_t - C API
hssize_t getSimpleExtentNpoints() const;
// Gets the current class of this dataspace.
H5S_class_t getSimpleExtentType() const;
// Determines if this dataspace is a simple one.
bool isSimple() const;
// Sets the offset of this simple dataspace.
void offsetSimple(const hssize_t *offset) const;
// Selects the entire dataspace.
void selectAll() const;
// Selects array elements to be included in the selection for
// this dataspace.
void selectElements(H5S_seloper_t op, const size_t num_elements, const hsize_t *coord) const;
// Selects a hyperslab region to add to the current selected region.
void selectHyperslab(H5S_seloper_t op, const hsize_t *count, const hsize_t *start,
const hsize_t *stride = NULL, const hsize_t *block = NULL) const;
// Resets the selection region to include no elements.
void selectNone() const;
// Verifies that the selection is within the extent of the dataspace.
bool selectValid() const;
// Removes the extent from this dataspace.
void setExtentNone() const;
// Sets or resets the size of this dataspace.
void setExtentSimple(int rank, const hsize_t *current_size, const hsize_t *maximum_size = NULL) const;
///\brief Returns this class name.
virtual H5std_string
fromClass() const override
{
return ("DataSpace");
}
// Gets the dataspace id.
virtual hid_t getId() const override;
// Deletes the global constant
static void deleteConstants();
// Destructor: properly terminates access to this dataspace.
virtual ~DataSpace() override;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
protected:
// Sets the dataspace id.
virtual void p_setId(const hid_t new_id) override;
#endif // DOXYGEN_SHOULD_SKIP_THIS
private:
hid_t id; // HDF5 dataspace id
#ifndef DOXYGEN_SHOULD_SKIP_THIS
static DataSpace *ALL_;
// Creates the global constant
static DataSpace *getConstant();
// Friend function to set DataSpace id. For library use only.
friend void f_DataSpace_setId(DataSpace *dspace, hid_t new_id);
#endif // DOXYGEN_SHOULD_SKIP_THIS
}; // end of DataSpace
} // namespace H5
#endif // H5DataSpace_H

View File

@ -0,0 +1,186 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5DataType_H
#define H5DataType_H
namespace H5 {
/*! \class DataType
\brief Class DataType provides generic operations on HDF5 datatypes.
DataType inherits from H5Object because a named datatype is an HDF5
object and is a base class of ArrayType, AtomType, CompType, EnumType,
and VarLenType.
*/
// Inheritance: DataType -> H5Object -> H5Location -> IdComponent
class H5_DLLCPP DataType : public H5Object {
public:
// Creates a datatype given its class and size
DataType(const H5T_class_t type_class, size_t size);
// Copy constructor - same as the original DataType.
DataType(const DataType &original);
// Creates a copy of a predefined type
DataType(const PredType &pred_type);
// Constructors to open a generic named datatype at a given location.
DataType(const H5Location &loc, const char *name);
DataType(const H5Location &loc, const H5std_string &name);
// Creates a datatype by way of dereference.
DataType(const H5Location &loc, const void *ref, H5R_type_t ref_type = H5R_OBJECT,
const PropList &plist = PropList::DEFAULT);
// DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT, const
// PropList& plist = PropList::DEFAULT);
// Closes this datatype.
virtual void close() override;
// Copies an existing datatype to this datatype object.
void copy(const DataType &like_type);
// Copies the datatype of dset to this datatype object.
void copy(const DataSet &dset);
// Returns a DataType instance by decoding the binary object
// description of this datatype.
virtual DataType *decode() const;
// Creates a binary object description of this datatype.
void encode();
// Returns the datatype class identifier.
H5T_class_t getClass() const;
// Commits a transient datatype to a file; this datatype becomes
// a named datatype which can be accessed from the location.
void commit(const H5Location &loc, const char *name);
void commit(const H5Location &loc, const H5std_string &name);
// These two overloaded functions are kept for backward compatibility
// only; they missed the const - removed from 1.8.18 and 1.10.1
// void commit(H5Location& loc, const char* name);
// void commit(H5Location& loc, const H5std_string& name);
// Determines whether this datatype is a named datatype or
// a transient datatype.
bool committed() const;
// Finds a conversion function that can handle the conversion
// this datatype to the given datatype, dest.
H5T_conv_t find(const DataType &dest, H5T_cdata_t **pcdata) const;
// Converts data from between specified datatypes.
void convert(const DataType &dest, size_t nelmts, void *buf, void *background,
const PropList &plist = PropList::DEFAULT) const;
// Assignment operator
DataType &operator=(const DataType &rhs);
// Determines whether two datatypes are the same.
bool operator==(const DataType &compared_type) const;
// Determines whether two datatypes are not the same.
bool operator!=(const DataType &compared_type) const;
// Locks a datatype.
void lock() const;
// Returns the size of a datatype.
size_t getSize() const;
// Returns the base datatype from which a datatype is derived.
// Note: not quite right for specific types yet???
DataType getSuper() const;
// Registers a conversion function.
void registerFunc(H5T_pers_t pers, const char *name, const DataType &dest, H5T_conv_t func) const;
void registerFunc(H5T_pers_t pers, const H5std_string &name, const DataType &dest, H5T_conv_t func) const;
// Removes a conversion function from all conversion paths.
void unregister(H5T_pers_t pers, const char *name, const DataType &dest, H5T_conv_t func) const;
void unregister(H5T_pers_t pers, const H5std_string &name, const DataType &dest, H5T_conv_t func) const;
// Tags an opaque datatype.
void setTag(const char *tag) const;
void setTag(const H5std_string &tag) const;
// Gets the tag associated with an opaque datatype.
H5std_string getTag() const;
// Checks whether this datatype contains (or is) a certain type class.
bool detectClass(H5T_class_t cls) const;
static bool detectClass(const PredType &pred_type, H5T_class_t cls);
// Checks whether this datatype is a variable-length string.
bool isVariableStr() const;
// Returns a copy of the creation property list of a datatype.
PropList getCreatePlist() const;
///\brief Returns this class name.
virtual H5std_string
fromClass() const override
{
return ("DataType");
}
// Creates a copy of an existing DataType using its id
DataType(const hid_t type_id);
// Default constructor
DataType();
// Determines whether this datatype has a binary object description.
bool hasBinaryDesc() const;
// Gets the datatype id.
virtual hid_t getId() const override;
// Destructor: properly terminates access to this datatype.
virtual ~DataType() override;
protected:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
hid_t id; // HDF5 datatype id
// Returns an id of a type by decoding the binary object
// description of this datatype.
hid_t p_decode() const;
// Sets the datatype id.
virtual void p_setId(const hid_t new_id) override;
// Opens a datatype and returns the id.
hid_t p_opentype(const H5Location &loc, const char *dtype_name) const;
#endif // DOXYGEN_SHOULD_SKIP_THIS
private:
// Buffer for binary object description of this datatype, allocated
// in DataType::encode and used in DataType::decode
unsigned char *encoded_buf;
size_t buf_size;
// Friend function to set DataType id. For library use only.
friend void f_DataType_setId(DataType *dtype, hid_t new_id);
void p_commit(hid_t loc_id, const char *name);
}; // end of DataType
} // namespace H5
#endif // H5DataType_H

View File

@ -0,0 +1,162 @@
// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef H5DSCreatPropList_H
#define H5DSCreatPropList_H
namespace H5 {
// Class forwarding
class DataType;
class DataSpace;
/*! \class DSetCreatPropList
\brief Class DSetCreatPropList inherits from ObjCreatPropList and provides
wrappers for the HDF5 dataset creation property functions.
*/
// Inheritance: ObjCreatPropList -> PropList -> IdComponent
class H5_DLLCPP DSetCreatPropList : public ObjCreatPropList {
public:
///\brief Default dataset creation property list.
static const DSetCreatPropList &DEFAULT;
// Creates a dataset creation property list.
DSetCreatPropList();
// Queries whether all the filters set in this property list are
// available currently.
bool allFiltersAvail() const;
// Get space allocation time for this property.
H5D_alloc_time_t getAllocTime() const;
// Set space allocation time for dataset during creation.
void setAllocTime(H5D_alloc_time_t alloc_time) const;
// Retrieves the size of the chunks used to store a chunked layout dataset.
int getChunk(int max_ndims, hsize_t *dim) const;
// Sets the size of the chunks used to store a chunked layout dataset.
void setChunk(int ndims, const hsize_t *dim) const;
// Returns information about an external file.
void getExternal(unsigned idx, size_t name_size, char *name, off_t &offset, hsize_t &size) const;
// Returns the number of external files for a dataset.
int getExternalCount() const;
// Gets fill value writing time.
H5D_fill_time_t getFillTime() const;
// Sets fill value writing time for dataset.
void setFillTime(H5D_fill_time_t fill_time) const;
// Retrieves a dataset fill value.
void getFillValue(const DataType &fvalue_type, void *value) const;
// Sets a dataset fill value.
void setFillValue(const DataType &fvalue_type, const void *value) const;
// Returns information about a filter in a pipeline.
H5Z_filter_t getFilter(int filter_number, unsigned int &flags, size_t &cd_nelmts, unsigned int *cd_values,
size_t namelen, char name[], unsigned int &filter_config) const;
// Returns information about a filter in a pipeline given the filter id.
void getFilterById(H5Z_filter_t filter_id, unsigned int &flags, size_t &cd_nelmts,
unsigned int *cd_values, size_t namelen, char name[],
unsigned int &filter_config) const;
// Gets the layout of the raw data storage of the data that uses this
// property list.
H5D_layout_t getLayout() const;
// Sets the type of storage used to store the raw data for the
// dataset that uses this property list.
void setLayout(H5D_layout_t layout) const;
// Returns the number of filters in the pipeline.
int getNfilters() const;
// Checks if fill value has been defined for this property.
H5D_fill_value_t isFillValueDefined() const;
// Modifies the specified filter.
void modifyFilter(H5Z_filter_t filter_id, unsigned int flags, size_t cd_nelmts,
const unsigned int cd_values[]) const;
// Remove one or all filters from the filter pipeline.
void removeFilter(H5Z_filter_t filter_id) const;
// Sets compression method and compression level.
void setDeflate(int level) const;
// Adds an external file to the list of external files.
void setExternal(const char *name, off_t offset, hsize_t size) const;
// Adds a filter to the filter pipeline.
void setFilter(H5Z_filter_t filter, unsigned int flags = 0, size_t cd_nelmts = 0,
const unsigned int cd_values[] = NULL) const;
// Sets Fletcher32 checksum of EDC for this property list.
void setFletcher32() const;
// Sets method of the shuffle filter.
void setShuffle() const;
// Sets SZIP compression method.
void setSzip(unsigned int options_mask, unsigned int pixels_per_block) const;
// Sets N-bit compression method.
void setNbit() const;
// Maps elements of a virtual dataset to elements of the source dataset.
void setVirtual(const DataSpace &vspace, const char *src_fname, const char *src_dsname,
const DataSpace &sspace) const;
void setVirtual(const DataSpace &vspace, const H5std_string src_fname, const H5std_string src_dsname,
const DataSpace &sspace) const;
///\brief Returns this class name.
virtual H5std_string
fromClass() const override
{
return ("DSetCreatPropList");
}
// Copy constructor - same as the original DSetCreatPropList.
DSetCreatPropList(const DSetCreatPropList &orig);
// Creates a copy of an existing dataset creation property list
// using the property list id.
DSetCreatPropList(const hid_t plist_id);
// Noop destructor.
virtual ~DSetCreatPropList() override;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Deletes the global constant, should only be used by the library
static void deleteConstants();
private:
static DSetCreatPropList *DEFAULT_;
// Creates the global constant, should only be used by the library
static DSetCreatPropList *getConstant();
#endif // DOXYGEN_SHOULD_SKIP_THIS
}; // end of DSetCreatPropList
} // namespace H5
#endif // H5DSCreatPropList_H

Some files were not shown because too many files have changed in this diff Show More