mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
Add file header comments to CMake files (#5688)
This commit is contained in:
+45
-12
@@ -9,7 +9,33 @@
|
||||
# If you do not have access to either file, you may request a copy from
|
||||
# help@hdfgroup.org.
|
||||
#
|
||||
option (HDF5_USE_ZLIB_NG "Use zlib-ng library as zlib library" OFF)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# HDF5 CMake Filter Support Configuration
|
||||
# -----------------------------------------------------------------------------
|
||||
# This CMake module configures support for external compression filters in HDF5,
|
||||
# specifically ZLIB (including zlib-ng) and SZIP (libaec). It provides options
|
||||
# for enabling/disabling filter support, selecting static/shared builds, and
|
||||
# controlling how dependencies are found or built (external, local, or via GIT/TGZ).
|
||||
#
|
||||
# Key Features:
|
||||
# - Options to enable/disable ZLIB and SZIP support, and select static/shared linking.
|
||||
# - Support for using zlib-ng as a drop-in replacement for zlib.
|
||||
# - Support for building dependencies externally (via GIT or TGZ) or using system libraries.
|
||||
# - Handles configuration of include directories, library targets, and CMake variables
|
||||
# for downstream use.
|
||||
# - Sets up required variables for HDF5 to use the DEFLATE and SZIP filters.
|
||||
#
|
||||
# Usage:
|
||||
# HDF5 includes this file from the main CMakeLists.txt if ZLIB or SZIP filter support in HDF5
|
||||
# is enabled. Configure options as needed before including this file.
|
||||
#
|
||||
# See comments throughout for details on each option and logic branch.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Specify major options at the top of the file
|
||||
# -----------------------------------------------------------------------------
|
||||
cmake_dependent_option (HDF5_USE_ZLIB_NG "Use zlib-ng library as zlib library" OFF HDF5_ENABLE_ZLIB_SUPPORT OFF)
|
||||
cmake_dependent_option (HDF5_USE_ZLIB_STATIC "Find static zlib library" OFF HDF5_ENABLE_ZLIB_SUPPORT OFF)
|
||||
cmake_dependent_option (HDF5_USE_LIBAEC_STATIC "Find static AEC library" OFF HDF5_ENABLE_SZIP_SUPPORT OFF)
|
||||
option (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" OFF)
|
||||
@@ -22,7 +48,12 @@ cmake_dependent_option (LIBAEC_USE_LOCALCONTENT "Use local file for LIBAEC Fetch
|
||||
mark_as_advanced (LIBAEC_USE_LOCALCONTENT)
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# the ExternalProject module is needed for building compression libraries from source
|
||||
include (ExternalProject)
|
||||
|
||||
# If compression libraries will be built from source, then choose which method and
|
||||
# source location.
|
||||
#option (HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO GIT TGZ)" "NO")
|
||||
set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO GIT TGZ)")
|
||||
set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO GIT TGZ)
|
||||
@@ -85,17 +116,18 @@ endif ()
|
||||
#-----------------------------------------------------------------------------
|
||||
# Option for ZLib support
|
||||
#-----------------------------------------------------------------------------
|
||||
set (H5_ZLIB_FOUND FALSE)
|
||||
if (NOT DEFINED ZLIB_PACKAGE_NAME)
|
||||
set (ZLIB_PACKAGE_NAME "zlib")
|
||||
set(H5_ZLIB_FOUND FALSE)
|
||||
# Choose which zlib package to use by name
|
||||
if(NOT DEFINED ZLIB_PACKAGE_NAME)
|
||||
set(ZLIB_PACKAGE_NAME "zlib")
|
||||
endif ()
|
||||
if (NOT DEFINED ZLIBNG_PACKAGE_NAME)
|
||||
set (ZLIBNG_PACKAGE_NAME "zlib-ng")
|
||||
endif ()
|
||||
if (HDF5_ENABLE_ZLIB_SUPPORT)
|
||||
if (NOT H5_ZLIB_HEADER)
|
||||
if (NOT ZLIB_USE_EXTERNAL)
|
||||
option (HDF5_MODULE_MODE_ZLIB "Prefer module mode to find ZLIB" ON)
|
||||
if (NOT H5_ZLIB_HEADER) # This checks if zlib has already been found/built
|
||||
if (NOT ZLIB_USE_EXTERNAL) # This checks if zlib should be found on the system or built from an external source
|
||||
cmake_dependent_option (HDF5_MODULE_MODE_ZLIB "Prefer module mode to find ZLIB" ON "NOT ZLIB_USE_EXTERNAL" OFF)
|
||||
mark_as_advanced (HDF5_MODULE_MODE_ZLIB)
|
||||
if (HDF5_USE_ZLIB_NG)
|
||||
set (HDF5_MODULE_MODE_ZLIB OFF CACHE BOOL "" FORCE)
|
||||
@@ -171,13 +203,14 @@ endif ()
|
||||
#-----------------------------------------------------------------------------
|
||||
# Option for SzLib support
|
||||
#-----------------------------------------------------------------------------
|
||||
set (H5_SZIP_FOUND FALSE)
|
||||
if (NOT DEFINED LIBAEC_PACKAGE_NAME)
|
||||
set (LIBAEC_PACKAGE_NAME "libaec")
|
||||
set(H5_SZIP_FOUND FALSE)
|
||||
# Choose which szip package to use by name
|
||||
if(NOT DEFINED LIBAEC_PACKAGE_NAME)
|
||||
set(LIBAEC_PACKAGE_NAME "libaec")
|
||||
endif ()
|
||||
if (HDF5_ENABLE_SZIP_SUPPORT)
|
||||
option (HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" ON)
|
||||
if (NOT SZIP_USE_EXTERNAL)
|
||||
cmake_dependent_option (HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" ON HDF5_ENABLE_SZIP_SUPPORT OFF)
|
||||
if (NOT SZIP_USE_EXTERNAL) # This checks if szip should be found on the system or built from an external source
|
||||
if (HDF5_USE_LIBAEC_STATIC)
|
||||
set (LIBAEC_SEARCH_TYPE "static")
|
||||
else ()
|
||||
|
||||
@@ -9,6 +9,29 @@
|
||||
# If you do not have access to either file, you may request a copy from
|
||||
# help@hdfgroup.org.
|
||||
#
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# HDF5 CMake Installation and Packaging Configuration
|
||||
# -----------------------------------------------------------------------------
|
||||
# This CMake module handles installation and packaging for the HDF5 library and
|
||||
# its components. It configures install targets, generates CMake config files,
|
||||
# sets up packaging with CPack, and manages platform-specific installer options.
|
||||
#
|
||||
# Key Features:
|
||||
# - Installs HDF5 libraries, headers, utilities, documentation, and CMake config files.
|
||||
# - Generates hdf5-config.cmake and version files for build and install trees.
|
||||
# - Supports Windows (NSIS, WiX), macOS (DMG, Framework), and Linux (DEB, RPM, TGZ) packaging.
|
||||
# - Handles installation of example files and release documentation.
|
||||
# - Configures CPack variables and component groups for flexible packaging.
|
||||
#
|
||||
# Usage:
|
||||
# HDF5 includes this file from the main CMakeLists.txt to enable installation and
|
||||
# packaging for HDF5. Adjust options and variables as needed for your platform
|
||||
# and distribution requirements.
|
||||
#
|
||||
# See comments throughout for details on each section and option.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
include (CMakePackageConfigHelpers)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -272,6 +295,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
|
||||
set (CPACK_PRE_BUILD_SCRIPTS ${CMAKE_SOURCE_DIR}/config/install/SignPackageFiles.cmake)
|
||||
endif ()
|
||||
|
||||
# Add the package types to the list of generators, TGZ is the default on all platforms
|
||||
set (CPACK_GENERATOR "TGZ")
|
||||
if (WIN32)
|
||||
set (CPACK_GENERATOR "ZIP")
|
||||
@@ -484,6 +508,7 @@ The HDF5 data model, file format, API, library, and tools are open and distribut
|
||||
|
||||
include (CPack)
|
||||
|
||||
# The following sets packaging specific categories and descriptions
|
||||
cpack_add_install_type(Full DISPLAY_NAME "Everything")
|
||||
cpack_add_install_type(Developer)
|
||||
|
||||
|
||||
@@ -1,3 +1,32 @@
|
||||
# -----------------------------------------------------------------------------
|
||||
# HDF5 CMake Top-Level Build Configuration
|
||||
# -----------------------------------------------------------------------------
|
||||
# This is the main CMakeLists.txt file for configuring, building, and installing
|
||||
# the HDF5 library and its components. It supports building HDF5 as a standalone
|
||||
# project or as a subproject within a larger CMake build. Key features include:
|
||||
#
|
||||
# - Enforces out-of-source builds for safety and cleanliness.
|
||||
# - Supports configuration as a subproject (HDF5_EXTERNALLY_CONFIGURED).
|
||||
# - Provides options for building shared/static libraries, tools, examples, and bindings (C++, Fortran, Java).
|
||||
# - Handles versioning, installation paths, and library naming customization.
|
||||
# - Integrates with external dependencies (zlib, szip, MPI, HDFS, etc.).
|
||||
# - Supports advanced features: thread-safety, concurrency, plugins, code coverage, and more.
|
||||
# - Includes options for documentation and testing.
|
||||
#
|
||||
# Usage examples:
|
||||
# 1. Presets:
|
||||
# cd <path-to-hdf5-source>
|
||||
# cmake --workflow --preset <preset-name>
|
||||
#
|
||||
# 2. Command line:
|
||||
# mkdir build && cd build
|
||||
# cmake [options] <path-to-hdf5-source>
|
||||
# cmake --build .
|
||||
# cmake --install .
|
||||
#
|
||||
# See comments throughout this file for details on configuration variables and options.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5 C)
|
||||
|
||||
|
||||
+28
-1
@@ -9,10 +9,37 @@
|
||||
# If you do not have access to either file, you may request a copy from
|
||||
# help@hdfgroup.org.
|
||||
#
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# HDF5 CMake Filter Plugin Support Configuration
|
||||
# -----------------------------------------------------------------------------
|
||||
# This CMake module configures support for external filter plugins in HDF5.
|
||||
# It provides options for enabling/disabling plugin support, selecting
|
||||
# static/shared builds, and controlling how plugin dependencies are found or
|
||||
# built (external, local, or via GIT/TGZ).
|
||||
#
|
||||
# Key Features:
|
||||
# - Options to enable/disable plugin support and select external or local builds.
|
||||
# - Support for building plugins externally (via GIT or TGZ) or using system libraries.
|
||||
# - Handles configuration of plugin include directories, library targets, and CMake variables.
|
||||
# - Sets up required variables for HDF5 to use filter plugins.
|
||||
#
|
||||
# Usage:
|
||||
# HDF5 includes this file from the main CMakeLists.txt if filter plugin support
|
||||
# in HDF5 is enabled (HDF5_ENABLE_PLUGIN_SUPPORT). Configure options as needed before
|
||||
# including this file.
|
||||
#
|
||||
# See comments throughout for details on each option and logic branch.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
option (PLUGIN_USE_EXTERNAL "Use External Library Building for filter PLUGIN else search" OFF)
|
||||
cmake_dependent_option (PLUGIN_USE_LOCALCONTENT "Use local file for PLUGIN FetchContent" OFF PLUGIN_USE_EXTERNAL OFF)
|
||||
|
||||
include (ExternalProject)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Option for enabling filter plugin support by building the plugins from external sources
|
||||
# -----------------------------------------------------------------------------
|
||||
#option (HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO GIT TGZ)" "NO")
|
||||
set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO GIT TGZ)")
|
||||
set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO GIT TGZ)
|
||||
@@ -48,7 +75,7 @@ endif ()
|
||||
# Option for PLUGIN support
|
||||
#-----------------------------------------------------------------------------
|
||||
if (HDF5_ENABLE_PLUGIN_SUPPORT)
|
||||
if (NOT PLUGIN_USE_EXTERNAL)
|
||||
if (NOT PLUGIN_USE_EXTERNAL) # This checks if plugins should be found on the system or built from an external source
|
||||
find_package (PLUGIN NAMES ${PLUGIN_PACKAGE_NAME}${HDF_PACKAGE_EXT})
|
||||
if (NOT PLUGIN_FOUND)
|
||||
find_package (PLUGIN) # Legacy find
|
||||
|
||||
@@ -10,6 +10,29 @@
|
||||
# help@hdfgroup.org.
|
||||
#
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# HDF5 CMake Testing and Dashboard Configuration
|
||||
# -----------------------------------------------------------------------------
|
||||
# This CMake module configures the testing and dashboard infrastructure for HDF5.
|
||||
# It sets up test timeouts, test options, and enables/disables various test suites
|
||||
# (API, VFD, VOL, serial, parallel, Fortran, C++, Java, tools, examples, SWMR, etc.).
|
||||
# It also configures CTest integration, test express levels, and test directories.
|
||||
#
|
||||
# Key Features:
|
||||
# - Configures DART/CTest timeouts and test express levels.
|
||||
# - Provides options to enable/disable specific test suites and features.
|
||||
# - Supports advanced test options (e.g., API async, driver, VFD lists, passthrough VOL).
|
||||
# - Integrates with CTest and dashboard tools for automated testing.
|
||||
# - Handles test directory setup for serial, parallel, and API tests.
|
||||
#
|
||||
# Usage:
|
||||
# HDF5 includes this file from the main CMakeLists.txt to enable and configure
|
||||
# HDF5 testing, if testing is enabled (BUILD_TESTING). Adjust options as needed
|
||||
# for your build and test requirements.
|
||||
#
|
||||
# See comments throughout for details on each option and logic branch.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Dashboard and Testing Settings
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
# Top-level CMake configuration for HDF5 Examples
|
||||
# This file sets up build options, dependencies, and subdirectories for C, C++,
|
||||
# Fortran, Java, and filter examples.
|
||||
# It also handles MPI/parallel support, version parsing, and testing configuration.
|
||||
#
|
||||
# The option naming convention is H5EX_* for examples options and HDF5_* for HDF5
|
||||
# library features.
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (H5EXAMPLES C)
|
||||
|
||||
@@ -222,4 +230,3 @@ endif ()
|
||||
if (H5EX_BUILD_PYTHON)
|
||||
add_subdirectory (PYTHON)
|
||||
endif ()
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 C++ library
|
||||
# This file sets up the build, formatting, and installation rules for the HDF5 C++ library (static/shared).
|
||||
# It handles C++ source/header definitions, compiler options, linking, export, and pkg-config file generation for the HDF5 C++ API.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_CPP_SRC CXX)
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 C++ test suite
|
||||
# This file sets up the build, formatting, and test execution rules for the HDF5 C++ test suite.
|
||||
# It handles C++ test source grouping, test executable creation, compiler options, linking, and integration with the HDF5 C++ and core libraries.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_CPP_TEST CXX)
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 Fortran library
|
||||
# This file sets up the build, formatting, and installation rules for the HDF5 Fortran library (static/shared).
|
||||
# It handles Fortran and C source/header definitions, compiler options, module generation, linking, export,
|
||||
# and pkg-config file generation for the HDF5 Fortran API.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_F90_SRC C Fortran)
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 Fortran test suite
|
||||
# This file sets up the build, formatting, and test execution rules for the HDF5 Fortran test suite.
|
||||
# It handles Fortran and C test source grouping, test library and executable creation, compiler options, module management,
|
||||
# linking, and integration with the HDF5 Fortran and core libraries.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_FORTRAN_TESTS C Fortran)
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 Fortran parallel test suite
|
||||
# This file sets up the build, formatting, and test execution rules for the HDF5 Fortran parallel test suite.
|
||||
# It handles Fortran and C test source grouping, test executable creation, compiler options, module management,
|
||||
# linking, and integration with the HDF5 Fortran and core libraries for parallel HDF5 testing.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_FORTRAN_TESTPAR C Fortran)
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 High-Level (HL) C++ library
|
||||
# This file sets up the build, formatting, and installation rules for the HDF5 HL C++ library (static/shared).
|
||||
# It handles HL C++ source/header definitions, compiler options, linking, export, pkg-config file generation, and integration with the HDF5 HL and core libraries.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_HL_CPP_SRC CXX)
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 High-Level (HL) C++ test suite
|
||||
# This file sets up the build, formatting, and test execution rules for the HDF5 HL C++ test suite.
|
||||
# It handles HL C++ test source grouping, test executable creation, compiler options, linking, and integration with the HDF5 HL, HL C++, and core libraries.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_HL_CPP_TEST CXX)
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 High-Level (HL) Fortran library
|
||||
# This file sets up the build, formatting, and installation rules for the HDF5 HL Fortran library (static/shared).
|
||||
# It handles HL Fortran and C source/header definitions, compiler options, module generation, linking, export, pkg-config file generation, and integration with the HDF5 HL and core libraries.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_HL_F90_SRC C Fortran)
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 High-Level (HL) Fortran test suite
|
||||
# This file sets up the build, formatting, and test execution rules for the HDF5 HL Fortran test suite.
|
||||
# It handles HL Fortran and C test source grouping, test executable creation, compiler options, module management,
|
||||
# linking, and integration with the HDF5 HL Fortran, HL, and core libraries.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_HL_FORTRAN_TESTS C Fortran)
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 High-Level (HL) library
|
||||
# This file sets up the build, formatting, and installation rules for the HDF5 HL library (static/shared).
|
||||
# It handles HL C source/header definitions, compiler options, linking, export, pkg-config file generation, and optional documentation for the HDF5 HL API.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_HL_SRC C)
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 High-Level (HL) test suite
|
||||
# This file sets up the build, formatting, and test execution rules for the HDF5 HL test suite.
|
||||
# It handles HL C test source grouping, test executable creation, compiler options, linking, and integration with the HDF5 HL and core libraries.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_HL_TEST C)
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 High-Level (HL) h5watch tool
|
||||
# This file sets up the build, formatting, and installation rules for the h5watch executable and its test utilities.
|
||||
# It handles HL tool source grouping, test program creation, compiler options, linking, export, and integration with the HDF5 HL and core libraries.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_HL_TOOLS_H5WATCH C)
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 Java hdf.hdf5lib package
|
||||
# This file sets up the build, packaging, and installation rules for the HDF5 Java hdf.hdf5lib package.
|
||||
# It handles Java source grouping, JAR creation, JNI dependencies, and formatting for the HDF5 Java bindings.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_JAVA_HDF_HDF5 Java)
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 Java JNI library
|
||||
# This file sets up the build, formatting, and installation rules for the HDF5 Java JNI shared library.
|
||||
# It handles JNI C/C++ source and header definitions, compiler options, linking, export, and integration with the HDF5 shared library for Java bindings.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_JAVA_JNI C)
|
||||
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 Java test suite
|
||||
# This file sets up the build, and test execution rules for the HDF5 Java test suite.
|
||||
# It handles Java test source grouping, JAR creation, test data management, test execution (including VOL tests),
|
||||
# and integration with the HDF5 Java JNI and core libraries.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_JAVA_TEST Java)
|
||||
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
# -----------------------------------------------------------------------------
|
||||
# HDF5 Core Library Source CMakeLists.txt
|
||||
#
|
||||
# This file configures the build for the HDF5 core library sources.
|
||||
# It organizes source and header files for each module, sets up build targets,
|
||||
# manages installation, pkg-config, and documentation generation.
|
||||
# -----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_SRC C)
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 test library and test executables
|
||||
# This file sets up the build, formatting, and installation rules for the HDF5 test library (static/shared),
|
||||
# test plugins, and all test executables. It handles source/header definitions, compiler options, linking,
|
||||
# export, and test configuration for the HDF5 test suite, including plugin, VFD, VOL, SWMR, and use case tests.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TEST C)
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 parallel test library and test executables
|
||||
# This file sets up the build, formatting, and installation rules for the HDF5 parallel test library (static/shared) and its test executables.
|
||||
# It handles source/header definitions, compiler options, linking, export, and test configuration for parallel HDF5 testing.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TEST_PAR C)
|
||||
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 tools library
|
||||
# This file sets up the build, formatting, and installation rules for the HDF5 tools library (static and shared).
|
||||
# It handles source/header definitions, compiler options, linking, and export for the HDF5 tools suite.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_LIB C)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Define Sources
|
||||
# Define Sources and Headers for the HDF5 tools library
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
set (H5_TOOLS_LIB_SOURCES
|
||||
@@ -35,6 +40,9 @@ set (H5_TOOLS_LIB_HDRS
|
||||
)
|
||||
|
||||
if (BUILD_STATIC_LIBS)
|
||||
#--------------------------------------------------------------------------
|
||||
# Build the static HDF5 tools library
|
||||
#--------------------------------------------------------------------------
|
||||
add_library (${HDF5_TOOLS_LIB_TARGET} STATIC ${H5_TOOLS_LIB_SOURCES} ${H5_TOOLS_LIB_HDRS})
|
||||
target_include_directories (${HDF5_TOOLS_LIB_TARGET}
|
||||
PRIVATE "${HDF5_TOOLS_LIB_SOURCE_DIR};${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>"
|
||||
@@ -55,6 +63,9 @@ if (BUILD_STATIC_LIBS)
|
||||
endif ()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
#--------------------------------------------------------------------------
|
||||
# Build the shared HDF5 tools library
|
||||
#--------------------------------------------------------------------------
|
||||
add_library (${HDF5_TOOLS_LIBSH_TARGET} SHARED ${H5_TOOLS_LIB_SOURCES} ${H5_TOOLS_LIB_HDRS})
|
||||
target_include_directories (${HDF5_TOOLS_LIBSH_TARGET}
|
||||
PRIVATE "${HDF5_TOOLS_LIB_SOURCE_DIR};${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>"
|
||||
@@ -78,7 +89,7 @@ if (BUILD_SHARED_LIBS)
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Add Target to clang-format
|
||||
# Add Target to clang-format if enabled
|
||||
#-----------------------------------------------------------------------------
|
||||
if (HDF5_ENABLE_FORMATTERS)
|
||||
if (BUILD_STATIC_LIBS)
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 h5tools_utils test utilities
|
||||
# This file sets up the build, formatting, and test configuration for the h5tools_test_utils executable.
|
||||
# It handles compiler options, linking, and export for the HDF5 tools test suite.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_LIBTEST C)
|
||||
|
||||
@@ -23,6 +28,9 @@ if (HDF5_ENABLE_FORMATTERS)
|
||||
clang_format (HDF5_H5TOOLS_TEST_SRC_FORMAT h5tools_test_utils)
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Include test configuration if tool and serial tests are enabled
|
||||
#-----------------------------------------------------------------------------
|
||||
if (HDF5_TEST_TOOLS AND HDF5_TEST_SERIAL)
|
||||
include (CMakeTests.cmake)
|
||||
endif ()
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_SRC_H5COPY C)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 h5copy tool
|
||||
# This file sets up the build, formatting, and installation rules for the h5copy executable.
|
||||
# It handles compiler options, linking, and export for the HDF5 tools suite.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5copy and test executables
|
||||
# --------------------------------------------------------------------
|
||||
@@ -32,9 +38,9 @@ endif ()
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Rules for Installation of tools using make Install target
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
foreach (exec ${H5_DEP_EXECUTABLES})
|
||||
INSTALL_PROGRAM_PDB (${exec} ${HDF5_INSTALL_BIN_DIR} toolsapplications)
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_SRC_H5DIFF C)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 h5diff and ph5diff tools
|
||||
# This file sets up the build, formatting, and installation rules for the h5diff and ph5diff executables.
|
||||
# It handles compiler options, linking, and export for the HDF5 tools suite.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5diff executables
|
||||
# --------------------------------------------------------------------
|
||||
@@ -31,6 +37,9 @@ if (HDF5_ENABLE_FORMATTERS)
|
||||
clang_format (HDF5_H5DIFF_SRC_FORMAT h5diff)
|
||||
endif ()
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the ph5diff executable if parallel support is enabled
|
||||
# --------------------------------------------------------------------
|
||||
if (H5_HAVE_PARALLEL)
|
||||
add_executable (ph5diff
|
||||
${HDF5_TOOLS_SRC_H5DIFF_SOURCE_DIR}/h5diff_common.c
|
||||
@@ -56,9 +65,9 @@ endif ()
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Rules for Installation of tools using make Install target
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
foreach (exec ${H5_DEP_EXECUTABLES})
|
||||
INSTALL_PROGRAM_PDB (${exec} ${HDF5_INSTALL_BIN_DIR} toolsapplications)
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_SRC_H5DUMP C)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 h5dump tool
|
||||
# This file sets up the build, formatting, and installation rules for the h5dump executable.
|
||||
# It handles compiler options, linking, and export for the HDF5 tools suite.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5dump executables
|
||||
# --------------------------------------------------------------------
|
||||
@@ -41,9 +47,9 @@ endif ()
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Rules for Installation of tools using make Install target
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
foreach (exec ${H5_DEP_EXECUTABLES})
|
||||
INSTALL_PROGRAM_PDB (${exec} ${HDF5_INSTALL_BIN_DIR} toolsapplications)
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_SRC_H5FC C)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 h5format_convert tool
|
||||
# This file sets up the build, formatting, and installation rules for the h5format_convert executable.
|
||||
# It handles compiler options, linking, and export for the HDF5 tools suite.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5format_convert executables
|
||||
# --------------------------------------------------------------------
|
||||
@@ -32,9 +38,9 @@ endif ()
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Rules for Installation of tools using make Install target
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
foreach (exec ${H5_DEP_EXECUTABLES})
|
||||
INSTALL_PROGRAM_PDB (${exec} ${HDF5_INSTALL_BIN_DIR} toolsapplications)
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_SRC_H5IMPORT C)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 h5import tool
|
||||
# This file sets up the build, formatting, and installation rules for the h5import executable.
|
||||
# It handles compiler options, linking, and export for the HDF5 tools suite.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5import executables
|
||||
# --------------------------------------------------------------------
|
||||
@@ -32,9 +38,9 @@ endif ()
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Rules for Installation of tools using make Install target
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
foreach (exec ${H5_DEP_EXECUTABLES})
|
||||
INSTALL_PROGRAM_PDB (${exec} ${HDF5_INSTALL_BIN_DIR} toolsapplications)
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_SRC_H5JAM C)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 h5jam and h5unjam tools
|
||||
# This file sets up the build, formatting, and installation rules for the h5jam and h5unjam executables.
|
||||
# It handles compiler options, linking, and export for the HDF5 tools suite.
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5jam executables
|
||||
# --------------------------------------------------------------------
|
||||
@@ -33,9 +39,9 @@ set (H5_DEP_EXECUTABLES
|
||||
h5unjam
|
||||
)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Add Target to clang-format
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_ENABLE_FORMATTERS)
|
||||
clang_format (HDF5_H5JAM_SRC_FORMAT h5jam)
|
||||
clang_format (HDF5_H5UNJAM_SRC_FORMAT h5unjam)
|
||||
@@ -47,9 +53,9 @@ endif ()
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Rules for Installation of tools using make Install target
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
foreach (exec ${H5_DEP_EXECUTABLES})
|
||||
INSTALL_PROGRAM_PDB (${exec} ${HDF5_INSTALL_BIN_DIR} toolsapplications)
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_SRC_H5LS C)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Add the h5ls executable
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 h5ls tool
|
||||
# This file sets up the build, formatting, and installation rules for the h5ls executable.
|
||||
# It handles compiler options, linking, and export for the HDF5 tools suite.
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5ls executable and set up build options
|
||||
# --------------------------------------------------------------------
|
||||
add_executable (h5ls ${HDF5_TOOLS_SRC_H5LS_SOURCE_DIR}/h5ls.c)
|
||||
target_include_directories (h5ls PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
target_compile_options(h5ls PRIVATE "${HDF5_CMAKE_C_FLAGS}")
|
||||
@@ -20,9 +26,9 @@ set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5ls")
|
||||
|
||||
set (H5_DEP_EXECUTABLES h5ls)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Add Target to clang-format
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_ENABLE_FORMATTERS)
|
||||
clang_format (HDF5_H5LS_SRC_FORMAT h5ls)
|
||||
endif ()
|
||||
@@ -33,9 +39,9 @@ endif ()
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Rules for Installation of tools using make Install target
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
foreach (exec ${H5_DEP_EXECUTABLES})
|
||||
INSTALL_PROGRAM_PDB (${exec} ${HDF5_INSTALL_BIN_DIR} toolsapplications)
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_SRC_H5PERF C)
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# CMake configuration for h5perf tool and its parallel variant
|
||||
# Defines build, linking, formatting, and installation rules for h5perf tools
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# h5perf_serial
|
||||
# --------------------------------------------------------------------
|
||||
@@ -53,9 +58,15 @@ if (H5_HAVE_PARALLEL)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
### I N S T A L L A T I O N ###
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Rules for Installation of tools using make Install target
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
foreach (exec ${H5_DEP_EXECUTABLES})
|
||||
INSTALL_PROGRAM_PDB (${exec} ${HDF5_INSTALL_BIN_DIR} toolsapplications)
|
||||
|
||||
@@ -2,7 +2,13 @@ cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_SRC_H5REPACK C)
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add h5Repack executables
|
||||
# CMake configuration for HDF5 h5repack tool
|
||||
# This file sets up the build, formatting, and installation rules for the h5repack executable.
|
||||
# It handles compiler options, linking, and export for the HDF5 tools suite.
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add h5repack executable
|
||||
# --------------------------------------------------------------------
|
||||
set (REPACK_COMMON_SOURCES
|
||||
${HDF5_TOOLS_SRC_H5REPACK_SOURCE_DIR}/h5repack_copy.c
|
||||
@@ -30,9 +36,9 @@ set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5repack")
|
||||
|
||||
set (H5_DEP_EXECUTABLES h5repack)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Add Target to clang-format
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_ENABLE_FORMATTERS)
|
||||
clang_format (HDF5_H5REPACK_SRC_FORMAT h5repack)
|
||||
endif ()
|
||||
@@ -43,9 +49,9 @@ endif ()
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Rules for Installation of tools using make Install target
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
foreach (exec ${H5_DEP_EXECUTABLES})
|
||||
INSTALL_PROGRAM_PDB (${exec} ${HDF5_INSTALL_BIN_DIR} toolsapplications)
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_SRC_H5STAT C)
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 h5stat tool
|
||||
# This file sets up the build, formatting, and installation rules for the h5stat executable.
|
||||
# It handles compiler options, linking, and export for the HDF5 tools suite.
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5stat executables
|
||||
# --------------------------------------------------------------------
|
||||
@@ -19,9 +25,9 @@ set_global_variable (HDF5_UTILS_TO_EXPORT "${HDF5_UTILS_TO_EXPORT};h5stat")
|
||||
|
||||
set (H5_DEP_EXECUTABLES h5stat)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Add Target to clang-format
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_ENABLE_FORMATTERS)
|
||||
clang_format (HDF5_H5STAT_SRC_FORMAT h5stat)
|
||||
endif ()
|
||||
@@ -32,9 +38,9 @@ endif ()
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Rules for Installation of tools using make Install target
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
foreach (exec ${H5_DEP_EXECUTABLES})
|
||||
INSTALL_PROGRAM_PDB (${exec} ${HDF5_INSTALL_BIN_DIR} toolsapplications)
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_SRC_MISC C)
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 h5debug, h5repart, h5mkgrp, h5clear and h5delete tools
|
||||
# This file sets up the build, formatting, and installation rules for the h5debug, h5repart, h5mkgrp, h5clear and h5delete executables.
|
||||
# It handles compiler options, linking, and export for the HDF5 tools suite.
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the misc executables
|
||||
# --------------------------------------------------------------------
|
||||
@@ -78,9 +84,9 @@ set (H5_DEP_EXECUTABLES
|
||||
h5delete
|
||||
)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Add Target to clang-format
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_ENABLE_FORMATTERS)
|
||||
clang_format (HDF5_H5DEBUG_SRC_FORMAT h5debug)
|
||||
clang_format (HDF5_H5REPART_SRC_FORMAT h5repart)
|
||||
@@ -95,9 +101,9 @@ endif ()
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
# Rules for Installation of tools using make Install target
|
||||
#-----------------------------------------------------------------------------
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
foreach (exec ${H5_DEP_EXECUTABLES})
|
||||
INSTALL_PROGRAM_PDB (${exec} ${HDF5_INSTALL_BIN_DIR} toolsapplications)
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
#-----------------------------------------------------------------------------
|
||||
# CMake configuration for HDF5 h5copy tool plugin tests
|
||||
# This file sets up the build for the dynamic library plugin used in h5copy tests.
|
||||
# It handles plugin compilation, formatting, and installation into the plugins directory.
|
||||
# It also includes test configuration if enabled.
|
||||
#-----------------------------------------------------------------------------
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_TEST_H5COPY C)
|
||||
|
||||
@@ -5,14 +11,19 @@ project (HDF5_TOOLS_TEST_H5COPY C)
|
||||
# If plugin library tests can be tested
|
||||
#-----------------------------------------------------------------------------
|
||||
if (BUILD_SHARED_LIBS)
|
||||
# Set plugin library core name, target, and output name
|
||||
set (H5COPY_TOOL_PLUGIN_LIB_CORENAME "dynlibcopy")
|
||||
set (H5COPY_TOOL_PLUGIN_LIB_NAME "${HDF5_EXTERNAL_LIB_PREFIX}${H5COPY_TOOL_PLUGIN_LIB_CORENAME}")
|
||||
set (H5COPY_TOOL_PLUGIN_LIB_TARGET ${H5COPY_TOOL_PLUGIN_LIB_CORENAME})
|
||||
|
||||
# Add the dynamic library for the h5copy tool plugin
|
||||
add_library (${H5COPY_TOOL_PLUGIN_LIB_TARGET} SHARED dynlib_copy.c)
|
||||
# Set include directories for the plugin build
|
||||
target_include_directories (${H5COPY_TOOL_PLUGIN_LIB_TARGET} PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
# Set C properties and link libraries
|
||||
TARGET_C_PROPERTIES (${H5COPY_TOOL_PLUGIN_LIB_TARGET} SHARED)
|
||||
target_link_libraries (${H5COPY_TOOL_PLUGIN_LIB_TARGET} PRIVATE ${HDF5_LIBSH_TARGET})
|
||||
# Set library options for the plugin
|
||||
H5_SET_LIB_OPTIONS (${H5COPY_TOOL_PLUGIN_LIB_TARGET} ${H5COPY_TOOL_PLUGIN_LIB_NAME} SHARED "LIB")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -22,7 +33,7 @@ if (BUILD_SHARED_LIBS)
|
||||
clang_format (HDF5_TOOLS_TEST_H5COPY_PLUGIN_FORMAT ${H5COPY_TOOL_PLUGIN_LIB_TARGET})
|
||||
endif ()
|
||||
|
||||
# make plugins dir
|
||||
# Make plugins directory for output
|
||||
file (MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/plugins")
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -38,6 +49,7 @@ if (BUILD_SHARED_LIBS)
|
||||
)
|
||||
endif ()
|
||||
|
||||
# If tool and serial tests are enabled, include test configuration
|
||||
if (HDF5_TEST_TOOLS AND HDF5_TEST_SERIAL)
|
||||
include (CMakeTests.cmake)
|
||||
endif ()
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# CMake configuration for building and testing the h5diff tool
|
||||
# Configures dynamic plugin library for h5diff if shared builds are enabled
|
||||
# Sets up include directories, linking, and formatting for plugin targets
|
||||
# Includes test scripts for h5diff if test tools are enabled
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_TEST_H5DIFF C)
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# CMake configuration for building and testing the h5dump tool
|
||||
# Configures dynamic plugin library for h5dump if shared builds are enabled
|
||||
# Sets up include directories, linking, and formatting for plugin targets
|
||||
# Includes test scripts for h5dump, PBITS, VDS, and XML if test tools and serial tests are enabled
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_TEST_H5DUMP C)
|
||||
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_TEST_H5FC C)
|
||||
|
||||
# CMake configuration for building and testing the h5format_convert tool
|
||||
# Adds test executable for h5fc_chk_idx with proper include, linking, and formatting
|
||||
# Includes test scripts if test tools and serial tests are enabled
|
||||
# Supports both static and shared builds
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5format_convert test executables
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# CMake configuration for building and testing the h5import tool
|
||||
# Adds test executable for h5importtest with proper include, linking, and formatting
|
||||
# Includes test scripts if test tools and serial tests are enabled
|
||||
# Supports both static and shared builds
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_TEST_H5IMPORT C)
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# CMake configuration for building and testing the h5jam tool
|
||||
# Adds test executables for getub and tellub, with proper include/linking/formatting
|
||||
# Includes test scripts if test tools and serial tests are enabled
|
||||
# Supports both static and shared builds
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_TEST_H5JAM C)
|
||||
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_TEST_H5LS C)
|
||||
|
||||
# CMake configuration for building and testing the h5ls tool
|
||||
# Configures dynamic plugin library for h5ls if shared builds are enabled
|
||||
# Sets up include directories, linking, and formatting for plugin targets
|
||||
# Includes test scripts for h5ls and VDS if test tools and serial tests are enabled
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# If plugin library tests can be tested
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
# CMake configuration for building and testing the h5repack tool
|
||||
# Adds test executables for h5repack, including SZIP detection and main test logic
|
||||
# Configures plugin libraries for dynamic testing if shared builds are enabled
|
||||
# Sets up include directories, linking, and formatting for all targets
|
||||
# Includes test scripts if test tools and serial tests are enabled
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_TEST_H5REPACK C)
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# CMake configuration for building and testing miscellaneous HDF5 tool test executables
|
||||
# Adds test binaries for h5clear, h5repart, and clear_open_chk, with proper include/linking/formatting
|
||||
# Adds VDS subdirectory and includes test scripts for repart, clear, and mkgrp if serial tests are enabled
|
||||
# Supports both static and shared builds, and conditional formatting
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_TEST_MISC C)
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# CMake configuration for building VDS (Virtual Dataset) generator test executables for HDF5 tools
|
||||
# Defines a macro to add generator executables with proper include directories, linking, and formatting
|
||||
# Lists all generator source files and iterates to create targets for each
|
||||
# Supports both static and shared builds, and conditional formatting
|
||||
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_TEST_MISC_VDS C)
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# CMake configuration for building and testing HDF5 performance test tools
|
||||
# Configures build, linking, formatting, and test rules for various performance executables
|
||||
# Supports static/shared builds and conditional test/formatting targets
|
||||
# Tools covered: chunk, iopipe, chunk_cache, overhead, perf_meta, zip_perf
|
||||
# Includes logic for ZLIB/NG support and test inclusion
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_TOOLS_TEST_PERFORM C)
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# CMake configuration for building and installing the HDF5 Mirror VFD utilities
|
||||
# Defines build, linking, formatting, and installation rules for mirror_server and mirror_server_stop tools
|
||||
# Includes support for formatting and conditional build options
|
||||
cmake_minimum_required (VERSION 3.18)
|
||||
project (HDF5_UTILS_MIRRORVFD C)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user