diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2023-07-17 16:47:06 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-17 16:47:06 (GMT) |
commit | 919ce7adc2f24414b749c2a6880da00259350881 (patch) | |
tree | 78b7ff66b299a965f12f2136cdae866a25319ec3 | |
parent | 426a7f82f6ce4d75ec8bfd30d1fa198c49efaa97 (diff) | |
download | hdf5-919ce7adc2f24414b749c2a6880da00259350881.zip hdf5-919ce7adc2f24414b749c2a6880da00259350881.tar.gz hdf5-919ce7adc2f24414b749c2a6880da00259350881.tar.bz2 |
Fix CMake builds when Subfiling VFD isn't enabled (#3250)
* Fix CMake builds when Subfiling VFD isn't enabled
* Add Subfiling VFD entry to hdf5-config.cmake.in
-rw-r--r-- | config/cmake/hdf5-config.cmake.in | 1 | ||||
-rw-r--r-- | src/CMakeLists.txt | 8 | ||||
-rw-r--r-- | src/H5FDsubfiling/CMakeLists.txt | 65 |
3 files changed, 41 insertions, 33 deletions
diff --git a/config/cmake/hdf5-config.cmake.in b/config/cmake/hdf5-config.cmake.in index ae6a45a..55fa86e 100644 --- a/config/cmake/hdf5-config.cmake.in +++ b/config/cmake/hdf5-config.cmake.in @@ -45,6 +45,7 @@ set (${HDF5_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@) set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT @HDF5_ENABLE_SZIP_SUPPORT@) set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@) set (${HDF5_PACKAGE_NAME}_ENABLE_ROS3_VFD @HDF5_ENABLE_ROS3_VFD@) +set (${HDF5_PACKAGE_NAME}_ENABLE_SUBFILING_VFD @HDF5_ENABLE_SUBFILING_VFD@) set (${HDF5_PACKAGE_NAME}_BUILD_SHARED_LIBS @H5_ENABLE_SHARED_LIB@) set (${HDF5_PACKAGE_NAME}_BUILD_STATIC_LIBS @H5_ENABLE_STATIC_LIB@) set (${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS @HDF5_PACKAGE_EXTLIBS@) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f12b079..a0a67df 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -280,10 +280,10 @@ set (H5FD_HDRS ${HDF5_SRC_DIR}/H5FDwindows.h ) -# Append Subfiling VFD and Mercury sources to H5FD interface if Subfiling VFD is built -if (HDF5_ENABLE_SUBFILING_VFD) - add_subdirectory (${H5FD_SUBFILING_DIR}) -endif() +# Append Subfiling VFD and Mercury sources to H5FD +# interface if Subfiling VFD is built. Append Subfiling +# VFD public headers to H5FD_HDRS regardless. +add_subdirectory (${H5FD_SUBFILING_DIR}) IDE_GENERATED_PROPERTIES ("H5FD" "${H5FD_HDRS}" "${H5FD_SOURCES}" ) diff --git a/src/H5FDsubfiling/CMakeLists.txt b/src/H5FDsubfiling/CMakeLists.txt index 89cd0c2..dd7f564 100644 --- a/src/H5FDsubfiling/CMakeLists.txt +++ b/src/H5FDsubfiling/CMakeLists.txt @@ -2,49 +2,56 @@ cmake_minimum_required (VERSION 3.18) project (HDF5_H5FD_SUBFILING C) # Sanity checking -if (NOT H5FD_SOURCES) - message (FATAL_ERROR "internal configure error - H5FD_SOURCES not set") -endif () if (NOT H5FD_HDRS) message (FATAL_ERROR "internal configure error - H5FD_HDRS not set") endif () if (NOT H5FD_SUBFILING_DIR) message (FATAL_ERROR "internal configure error - H5FD_SUBFILING_DIR not set") endif () -if (NOT H5FD_SUBFILING_MERCURY_DIR) - message (FATAL_ERROR "internal configure error - H5FD_SUBFILING_MERCURY_DIR not set") -endif () -# Add mercury util sources to Subfiling VFD sources -set (MERCURY_UTIL_SOURCES - ${H5FD_SUBFILING_MERCURY_DIR}/mercury_thread.c - ${H5FD_SUBFILING_MERCURY_DIR}/mercury_thread_condition.c - ${H5FD_SUBFILING_MERCURY_DIR}/mercury_thread_pool.c - ${H5FD_SUBFILING_MERCURY_DIR}/mercury_thread_mutex.c -) +if (HDF5_ENABLE_SUBFILING_VFD) + # Sanity checking + if (NOT H5FD_SOURCES) + message (FATAL_ERROR "internal configure error - H5FD_SOURCES not set") + endif () + if (NOT H5FD_SUBFILING_MERCURY_DIR) + message (FATAL_ERROR "internal configure error - H5FD_SUBFILING_MERCURY_DIR not set") + endif () -set (HDF5_H5FD_SUBFILING_SOURCES - ${H5FD_SUBFILING_DIR}/H5FDioc.c - ${H5FD_SUBFILING_DIR}/H5FDioc_int.c - ${H5FD_SUBFILING_DIR}/H5FDioc_threads.c - ${H5FD_SUBFILING_DIR}/H5FDsubfiling.c - ${H5FD_SUBFILING_DIR}/H5FDsubfile_int.c - ${H5FD_SUBFILING_DIR}/H5subfiling_common.c - ${MERCURY_UTIL_SOURCES} -) + # Add mercury util sources to Subfiling VFD sources + set (MERCURY_UTIL_SOURCES + ${H5FD_SUBFILING_MERCURY_DIR}/mercury_thread.c + ${H5FD_SUBFILING_MERCURY_DIR}/mercury_thread_condition.c + ${H5FD_SUBFILING_MERCURY_DIR}/mercury_thread_pool.c + ${H5FD_SUBFILING_MERCURY_DIR}/mercury_thread_mutex.c + ) + + set (HDF5_H5FD_SUBFILING_SOURCES + ${H5FD_SUBFILING_DIR}/H5FDioc.c + ${H5FD_SUBFILING_DIR}/H5FDioc_int.c + ${H5FD_SUBFILING_DIR}/H5FDioc_threads.c + ${H5FD_SUBFILING_DIR}/H5FDsubfiling.c + ${H5FD_SUBFILING_DIR}/H5FDsubfile_int.c + ${H5FD_SUBFILING_DIR}/H5subfiling_common.c + ${MERCURY_UTIL_SOURCES} + ) + # Add Subfiling VFD sources to HDF5 library's H5FD sources + set (H5FD_SOURCES + ${H5FD_SOURCES} + ${HDF5_H5FD_SUBFILING_SOURCES} + PARENT_SCOPE + ) +endif () + +# Add Subfiling VFD public headers to HDF5 library's +# public H5FD headers, even if the Subfiling VFD isn't +# enabled and built set (HDF5_H5FD_SUBFILING_HEADERS ${H5FD_SUBFILING_DIR}/H5FDsubfiling.h ${H5FD_SUBFILING_DIR}/H5FDioc.h ) -# Add Subfiling VFD sources to HDF5 library's H5FD sources -set (H5FD_SOURCES - ${H5FD_SOURCES} - ${HDF5_H5FD_SUBFILING_SOURCES} - PARENT_SCOPE -) - # Add Subfiling VFD public headers to HDF5 library's public H5FD headers set (H5FD_HDRS ${H5FD_HDRS} |