更新了 vcpkg.json
parent
7c88569bea
commit
91ae6fce63
|
@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
@ -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
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
@ -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
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -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)
|
|
@ -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)
|
Binary file not shown.
|
@ -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.
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
@ -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
|
||||||
|
========================================================================
|
||||||
|
|
||||||
|
|
|
@ -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.
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.
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.
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.
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.
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.
Binary file not shown.
Binary file not shown.
|
@ -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()
|
|
@ -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 ()
|
|
@ -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)
|
|
@ -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)
|
|
@ -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 User’s 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
|
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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.
|
||||||
|
*/
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
Loading…
Reference in New Issue