Skip to content

Commit

Permalink
Fix CMake builds when Subfiling VFD isn't enabled (HDFGroup#3250)
Browse files Browse the repository at this point in the history
* Fix CMake builds when Subfiling VFD isn't enabled

* Add Subfiling VFD entry to hdf5-config.cmake.in
  • Loading branch information
jhendersonHDF committed Jul 27, 2023
1 parent c4f1dc7 commit bfefa62
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 33 deletions.
1 change: 1 addition & 0 deletions config/cmake/hdf5-config.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ set (${HDF5_PACKAGE_NAME}_ENABLE_PLUGIN_SUPPORT @HDF5_ENABLE_PLUGIN_SUPPORT@)
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_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@)
Expand Down
8 changes: 4 additions & 4 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -276,10 +276,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}" )

Expand Down
65 changes: 36 additions & 29 deletions src/H5FDsubfiling/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down

0 comments on commit bfefa62

Please sign in to comment.