Skip to content

Commit 7cd6ac3

Browse files
committed
Merge branch 'staging' into release
2 parents 4244f32 + 66c6c18 commit 7cd6ac3

1,187 files changed

Lines changed: 181340 additions & 474 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/docs.yml

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ on:
55
branches: [release, staging]
66

77
permissions:
8-
contents: write
8+
contents: write
99

1010
jobs:
11-
deploy:
11+
# MkDocs — conceptual docs, architecture pages, guides
12+
deploy-mkdocs:
1213
runs-on: ubuntu-latest
13-
1414
steps:
1515
- name: Checkout repo
1616
uses: actions/checkout@v6
@@ -21,14 +21,37 @@ jobs:
2121
python-version: '3.x'
2222

2323
- name: Install MkDocs + Material theme
24-
run: |
25-
pip install mkdocs mkdocs-material
24+
run: pip install mkdocs mkdocs-material
2625

27-
- name: Build documentation
26+
- name: Build MkDocs site
2827
run: mkdocs build
2928

30-
- name: Deploy to GitHub Pages
29+
- name: Deploy MkDocs to gh-pages root
3130
uses: peaceiris/actions-gh-pages@v4
3231
with:
3332
github_token: ${{ secrets.GITHUB_TOKEN }}
3433
publish_dir: ./site
34+
keep_files: true
35+
36+
# Doxygen — API reference generated from C++ headers
37+
deploy-doxygen:
38+
runs-on: ubuntu-latest
39+
steps:
40+
- name: Checkout repo
41+
uses: actions/checkout@v4
42+
43+
- name: Install Doxygen
44+
run: |
45+
sudo apt-get update -qq
46+
sudo apt-get install -y doxygen
47+
48+
- name: Build Doxygen API reference
49+
run: cd doxy && doxygen Doxyfile
50+
51+
- name: Deploy Doxygen to gh-pages/api
52+
uses: peaceiris/actions-gh-pages@v4
53+
with:
54+
github_token: ${{ secrets.GITHUB_TOKEN }}
55+
publish_dir: ./docs/doxygen/html
56+
destination_dir: api
57+
keep_files: true

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,4 @@ compile_commands.json
5454
h5cpp.hpp
5555

5656
.cache/
57+
docs/doxygen/

CMakeLists.txt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,29 @@ if(HDF5_VERSION VERSION_GREATER 1.12.0)
9797
message(STATUS "H5CPP KITA support is available, see webpage for details...")
9898
endif()
9999

100+
# ─── ROS3 VFD detection ───────────────────────────────────────────────────────────
101+
foreach(_hdf5_inc IN LISTS HDF5_INCLUDE_DIRS)
102+
foreach(_pubconf IN ITEMS "H5pubconf.h" "H5pubconf-64.h")
103+
if(EXISTS "${_hdf5_inc}/${_pubconf}")
104+
file(STRINGS "${_hdf5_inc}/${_pubconf}" _ros3_line REGEX "H5_HAVE_ROS3_VFD")
105+
if(_ros3_line MATCHES "#define H5_HAVE_ROS3_VFD")
106+
set(H5CPP_HAVE_ROS3_VFD TRUE)
107+
break()
108+
endif()
109+
endif()
110+
endforeach()
111+
if(H5CPP_HAVE_ROS3_VFD)
112+
break()
113+
endif()
114+
endforeach()
115+
if(H5CPP_HAVE_ROS3_VFD)
116+
message(STATUS "H5CPP: ROS3 VFD detected — S3 read-only support enabled")
117+
else()
118+
message(STATUS "H5CPP: ROS3 VFD not found — S3 support disabled")
119+
endif()
120+
121+
option(H5CPP_NETWORK_TESTS "Enable network-dependent tests (requires outbound S3 access)" OFF)
122+
100123
# ─── MPI (optional) ───────────────────────────────────────────────────────────────
101124
find_package(MPI QUIET COMPONENTS C CXX)
102125
if(MPI_FOUND AND HDF5_IS_PARALLEL)
@@ -171,6 +194,10 @@ target_include_directories(h5cpp INTERFACE
171194
target_link_libraries(h5cpp INTERFACE ${H5CPP_LIBS})
172195
target_compile_features(h5cpp INTERFACE cxx_std_17)
173196

197+
if(H5CPP_HAVE_ROS3_VFD)
198+
target_compile_definitions(h5cpp INTERFACE H5CPP_HAVE_ROS3_VFD=1)
199+
endif()
200+
174201
if(H5CPP_LIBDEFLATE_FOUND)
175202
target_link_libraries(h5cpp INTERFACE ${H5CPP_LIBDEFLATE_TARGET})
176203
else()

Makefile

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,13 @@ DOCS_DIR ?= docs
5454
SITE_DIR ?= site
5555
DOCS_REQUIREMENTS ?= requirements-docs.txt
5656

57+
DOXY ?= doxygen
58+
DOXY_DIR = doxy
59+
DOXY_OUT = docs/doxygen/html
60+
5761
.PHONY: docs docs-build docs-serve docs-strict docs-deploy \
58-
docs-clean docs-install docs-venv docs-bootstrap venv-clean
62+
docs-clean docs-install docs-venv docs-bootstrap venv-clean \
63+
docs-doxygen docs-doxygen-view docs-doxygen-clean
5964

6065
$(VENV_PYTHON):
6166
$(PYTHON) -m venv $(VENV_DIR)
@@ -89,6 +94,15 @@ docs-deploy: $(VENV_PYTHON)
8994
docs-clean:
9095
rm -rf $(SITE_DIR)
9196

97+
docs-doxygen:
98+
cd $(DOXY_DIR) && $(DOXY) Doxyfile 2>&1 | tee doxygen.log
99+
100+
docs-doxygen-view: docs-doxygen
101+
xdg-open $(DOXY_OUT)/index.html
102+
103+
docs-doxygen-clean:
104+
$(RM) -rf docs/doxygen $(DOXY_DIR)/doxygen.log
105+
92106
venv-clean:
93107
rm -rf $(VENV_DIR)
94108

0 commit comments

Comments
 (0)