55f93686c Merge branch 'release/3.12.0' 34e46d76d 🔖 set version to 3.12.0 00ecc7ed7 ⬆️ Bump github/codeql-action from 3.28.13 to 3.28.14 (#4726) 4424a0fcc 📝 update documentation (#4723) 11aa5f944 Make std::filesystem::path conversion to/from UTF-8 encoded string explicit (#4631) 79587f896 ⬆️ Bump mkdocs-material from 9.6.10 to 9.6.11 in /docs/mkdocs (#4715) b67f8644e ⬆️ Bump actions/dependency-review-action from 4.5.0 to 4.6.0 (#4716) 71884486d ⬆️ Bump step-security/harden-runner from 2.11.0 to 2.11.1 (#4718) 9ef496738 ⬆️ Bump cpplint from 2.0.0 to 2.0.1 in /cmake/requirements (#4719) 9f40a7b45 ⬆️ Bump mkdocs-material from 9.6.9 to 9.6.10 in /docs/mkdocs (#4711) d41ca94fa Adjust CMake minimal version (#4709) 3a5703931 ⬆️ Bump cppcheck from 1.4.8 to 1.5.0 in /cmake/requirements (#4698) 4d216e0c3 ⬆️ Bump actions/upload-artifact from 4.6.1 to 4.6.2 (#4700) f971dd770 ⬆️ Bump github/codeql-action from 3.28.11 to 3.28.13 (#4707) cd92c09c1 tests: Fix ignored attributes warning during build (#4670) b477d2b95 Suppress clang-analyzer-webkit.NoUncountedMemberChecker (#4701) 11a835df8 ⬆️ Bump cppcheck from 1.4.7 to 1.4.8 in /cmake/requirements (#4697) b592b6f2d ⬆️ Bump mkdocs-material from 9.6.8 to 9.6.9 in /docs/mkdocs (#4695) e2c95baef ⬆️ Bump mkdocs-git-revision-date-localized-plugin (#4689) 7abcb5e9a fixes issue 4691 (#4693) 5474b2227 ⬆️ Bump mkdocs-material from 9.6.5 to 9.6.8 in /docs/mkdocs (#4688) 6e684350b ⬆️ Bump github/codeql-action from 3.28.10 to 3.28.11 (#4683) f506d8acc ⬆️ Bump jinja2 from 3.1.5 to 3.1.6 in /tools/generate_natvis (#4680) 34665ae64 Correct typo in sax_interface.md (#4679) f3dc4684b ⬆️ Bump github/codeql-action from 3.28.9 to 3.28.10 (#4661) 0b938993e ⬆️ Bump lukka/get-cmake from 3.31.5 to 3.31.6 (#4668) 543d8e417 ⬆️ Bump actions/upload-artifact from 4.6.0 to 4.6.1 (#4665) f2e494686 ⬆️ Bump ossf/scorecard-action from 2.4.0 to 2.4.1 (#4664) 8215dbafb ⬆️ Bump mkdocs-material from 9.6.4 to 9.6.5 in /docs/mkdocs (#4659) a3143f5f2 ⬆️ Bump step-security/harden-runner from 2.10.4 to 2.11.0 (#4652) 0b6881a95 Add regression test for #3810 (#4608) a43350c4e Remove wsjcpp package manager (#4623) 8fb5d6f92 Some documentation updates (#4636) 2dc82053d ⬆️ Bump mkdocs-material from 9.5.50 to 9.6.4 in /docs/mkdocs (#4648) bf6b1e2f4 ⬆️ Bump github/codeql-action from 3.28.6 to 3.28.9 (#4646) 606b6347e ⬆️ Bump coverallsapp/github-action from 2.3.4 to 2.3.6 (#4634) c7d949f9f ⬆️ Bump github/codeql-action from 3.28.4 to 3.28.6 (#4635) e90c860d5 Add note on derived return type for value function (#4628) d0789e365 Bump lukka/get-cmake from 3.31.4 to 3.31.5 (#4625) 97dd60c22 Bump github/codeql-action from 3.28.3 to 3.28.4 (#4624) 666d06144 Bump github/codeql-action from 3.28.2 to 3.28.3 (#4620) bf8ccc20e fix compilation issue (#4613) 786c5040e Bump github/codeql-action from 3.28.1 to 3.28.2 (#4617) bd4fea39e Bump actions/stale from 9.0.0 to 9.1.0 (#4616) 8c7dcd3b4 Bump step-security/harden-runner from 2.10.3 to 2.10.4 (#4614) b23cdeac2 Bump mkdocs-material from 9.5.49 to 9.5.50 in /docs/mkdocs (#4615) 1b813519c Add VisionOS support to Swift Package Manager Package.swift definition file (#4611) f06604fce Bump the copyright years (#4606) d23291ba2 use diagnostic positions in exceptions (#4585) 0f9e6ae09 Fix broken links (#4605) 8a882f32e Generate template functions with NLOHMANN_DEFINE_TYPE macros (#4597) bdb8d2b7b Serialize empty tuple into '[]' instead of null (#4594) e72046ef9 Bump step-security/harden-runner from 2.10.2 to 2.10.3 (#4604) 4a0081a1c Bump actions/upload-artifact from 4.5.0 to 4.6.0 (#4603) 52b261421 Bump srvaroa/labeler (#4602) f74e5c6a5 Bump github/codeql-action from 3.27.9 to 3.28.1 (#4601) e25a82461 Bump lukka/get-cmake from 3.31.2 to 3.31.4 (#4600) 26cfec34b Clean up and document project files (#4560) ad2ee1853 Fix coverage job (#4595) 2d42229f4 Support BSON uint64 de/serialization (#4590) 1809b3d80 Add note to Jetbrains support (#4592) 48e7b4c23 BJData Fixes (#4588) 0cb1241d5 Improve Bazel support: Switch to Bzlmod (#4584) 2e50d5b2f BJData optimized binary array type (#4513) git-subtree-dir: external/json git-subtree-split: 55f93686c01528224f448c19128836e7df245f72
89 lines
3.6 KiB
Makefile
89 lines
3.6 KiB
Makefile
SHELL=/usr/bin/env bash
|
|
SED ?= $(shell which gsed 2>/dev/null || which sed)
|
|
|
|
MKDOCS_PAGES=$(shell cd ../mkdocs/docs/ && find * -type f -name '*.md' | sort)
|
|
|
|
.PHONY: all
|
|
all: JSON_for_Modern_C++.tgz
|
|
|
|
docSet.dsidx: docSet.sql
|
|
# generate index
|
|
sqlite3 docSet.dsidx <docSet.sql
|
|
|
|
JSON_for_Modern_C++.docset: Info.plist docSet.dsidx
|
|
rm -fr JSON_for_Modern_C++.docset JSON_for_Modern_C++.tgz
|
|
mkdir -p JSON_for_Modern_C++.docset/Contents/Resources/Documents/
|
|
cp icon*.png JSON_for_Modern_C++.docset
|
|
cp Info.plist JSON_for_Modern_C++.docset/Contents
|
|
# build and copy documentation
|
|
$(MAKE) install_venv -C ../mkdocs
|
|
$(MAKE) build -C ../mkdocs
|
|
cp -r ../mkdocs/site/* JSON_for_Modern_C++.docset/Contents/Resources/Documents
|
|
# patch CSS to hide navigation items
|
|
echo -e "\n\nheader, footer, nav.md-tabs, nav.md-tabs--active, div.md-sidebar--primary, a.md-content__button { display: none; }" >> "$$(ls JSON_for_Modern_C++.docset/Contents/Resources/Documents/assets/stylesheets/main.*.min.css)"
|
|
# fix spacing
|
|
echo -e "\n\ndiv.md-sidebar div.md-sidebar--secondary, div.md-main__inner { top: 0; margin-top: 0 }" >> "$$(ls JSON_for_Modern_C++.docset/Contents/Resources/Documents/assets/stylesheets/main.*.min.css)"
|
|
# remove "JSON for Modern C++" from page titles (fallback)
|
|
find JSON_for_Modern_C++.docset/Contents/Resources/Documents -type f -exec $(SED) -i 's| - JSON for Modern C++</title>|</title>|' {} +
|
|
# replace page titles with name from index, if available
|
|
for page in $(MKDOCS_PAGES); do \
|
|
case "$$page" in \
|
|
*/index.md) path=$${page/\/index.md/} ;; \
|
|
*) path=$${page/.md/} ;; \
|
|
esac; \
|
|
title=$$(sqlite3 docSet.dsidx "SELECT name FROM searchIndex WHERE path='$$path/index.html'" | tr '\n' ',' | $(SED) -e 's/,/, /g' -e 's/, $$/\n/'); \
|
|
if [ "x$$title" != "x" ]; then \
|
|
$(SED) -i "s%<title>.*</title>%<title>$$title</title>%" "JSON_for_Modern_C++.docset/Contents/Resources/Documents/$$path/index.html"; \
|
|
fi \
|
|
done
|
|
# clean up
|
|
rm JSON_for_Modern_C++.docset/Contents/Resources/Documents/sitemap.*
|
|
# copy index
|
|
cp docSet.dsidx JSON_for_Modern_C++.docset/Contents/Resources/
|
|
|
|
JSON_for_Modern_C++.tgz: JSON_for_Modern_C++.docset
|
|
tar --exclude='.DS_Store' -cvzf JSON_for_Modern_C++.tgz JSON_for_Modern_C++.docset
|
|
|
|
# install docset for Zeal documentation browser (https://zealdocs.org/)
|
|
.PHONY: install_docset_zeal
|
|
install_docset_zeal: JSON_for_Modern_C++.docset
|
|
docset_root=$${XDG_DATA_HOME:-$$HOME/.local/share}/Zeal/Zeal/docsets; \
|
|
rm -rf $$docset_root/JSON_for_Modern_C++.docset; \
|
|
mkdir -p $$docset_root; \
|
|
cp -r JSON_for_Modern_C++.docset $$docset_root/
|
|
|
|
# list mkdocs pages missing from the docset index
|
|
.PHONY: list_missing_pages
|
|
list_missing_pages: docSet.dsidx
|
|
@for page in $(MKDOCS_PAGES); do \
|
|
case "$$page" in \
|
|
*/index.md) path=$${page/\/index.md/} ;; \
|
|
*) path=$${page/.md/} ;; \
|
|
esac; \
|
|
if [ "x$$page" != "xindex.md" -a "x$$(sqlite3 docSet.dsidx "SELECT COUNT(*) FROM searchIndex WHERE path='$$path/index.html'")" = "x0" ]; then \
|
|
echo $$page; \
|
|
fi \
|
|
done
|
|
|
|
# list paths in the docset index without a corresponding mkdocs page
|
|
.PHONY: list_removed_paths
|
|
list_removed_paths: docSet.dsidx
|
|
@for path in $$(sqlite3 docSet.dsidx "SELECT path FROM searchIndex"); do \
|
|
page=$${path/\/index.html/.md}; \
|
|
page_index=$${path/index.html/index.md}; \
|
|
page_found=0; \
|
|
for p in $(MKDOCS_PAGES); do \
|
|
if [ "x$$p" = "x$$page" -o "x$$p" = "x$$page_index" ]; then \
|
|
page_found=1; \
|
|
fi \
|
|
done; \
|
|
if [ "x$$page_found" = "x0" ]; then \
|
|
echo $$path; \
|
|
fi \
|
|
done
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f docSet.dsidx
|
|
rm -fr JSON_for_Modern_C++.docset JSON_for_Modern_C++.tgz
|