summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhendersonHDF <jhenderson@hdfgroup.org>2023-07-17 16:47:06 (GMT)
committerGitHub <noreply@github.com>2023-07-17 16:47:06 (GMT)
commit919ce7adc2f24414b749c2a6880da00259350881 (patch)
tree78b7ff66b299a965f12f2136cdae866a25319ec3
parent426a7f82f6ce4d75ec8bfd30d1fa198c49efaa97 (diff)
downloadhdf5-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.in1
-rw-r--r--src/CMakeLists.txt8
-rw-r--r--src/H5FDsubfiling/CMakeLists.txt65
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}