diff --git a/.devcontainer/doxygen-cgal/Dockerfile b/.devcontainer/doxygen-cgal/Dockerfile new file mode 100644 index 00000000000..81cb1f954ce --- /dev/null +++ b/.devcontainer/doxygen-cgal/Dockerfile @@ -0,0 +1,55 @@ +# Use an official Fedora as a parent image for the build stage +FROM fedora:latest AS sources_deps + +# Set environment variables to non-interactive +ENV DEBIAN_FRONTEND=noninteractive + +# Install dependencies +RUN dnf update -y && dnf install -y \ + wget \ + make \ + gcc \ + gcc-c++ \ + patch \ + cmake \ + bison \ + flex \ + unzip \ + python3 \ + && dnf clean all + +# Copy the patch file to the build context +COPY cgal-NO_ADDITIONAL_DETAILS.patch . + +FROM sources_deps AS build + +# Build and install Doxygen from sources +ARG DOXYGEN_VERSION=1.9.6 +ARG MAKEFLAGS=-j$(nproc) +RUN if [ -n "$DEBUG"];then set -x && make --version && ls -lZ /tmp && id; fi \ + && DOXYGEN_VERSION_UNDERSCORE=$(echo ${DOXYGEN_VERSION} | sed 's/\./_/g') \ + && wget https://github.com/doxygen/doxygen/archive/refs/tags/Release_${DOXYGEN_VERSION_UNDERSCORE}.zip \ + && unzip Release_${DOXYGEN_VERSION_UNDERSCORE}.zip \ + && cd doxygen-Release_${DOXYGEN_VERSION_UNDERSCORE} \ + && patch -p1 < ../cgal-NO_ADDITIONAL_DETAILS.patch \ + && mkdir build \ + && cd build \ + && cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release .. \ + && cmake --build . \ + && cmake --install . \ + && mkdir -p /usr/local/share/doc/doxygen && cp ../LICENSE /usr/local/share/doc/doxygen/LICENSE.TXT \ + && cd ../.. \ + && rm -rf doxygen-Release_${DOXYGEN_VERSION_UNDERSCORE} Release_${DOXYGEN_VERSION_UNDERSCORE}.zip + +# Use a smaller base image for the final stage +FROM fedora:latest + +# Install necessary runtime dependencies +RUN set -x \ + && dnf update -y && dnf install -y graphviz 'perl(Getopt::Std)' tex-bibtex cmake python3-lxml python3-pyquery \ + && dnf clean all + +# Copy Doxygen from the build stage +COPY --from=build /usr/local/bin/doxygen /usr/local/bin +COPY --from=build /usr/local/share/doc/doxygen/LICENSE.TXT /usr/local/share/doc/doxygen/LICENSE.TXT +RUN doxygen --version diff --git a/.devcontainer/doxygen-cgal/Makefile b/.devcontainer/doxygen-cgal/Makefile new file mode 100644 index 00000000000..9413173b5a7 --- /dev/null +++ b/.devcontainer/doxygen-cgal/Makefile @@ -0,0 +1,23 @@ +SHELL := /bin/bash +DOXYGEN_VERSIONS := 1.12.0 1.11.0 1.10.0 1.9.8 1.9.7 1.9.6 + +.PHONY: all build-% push-% build push + +all: build + @echo "Use `$(MAKE) push` to push the images to the registry." + +build-%: + @echo "MAKEFLAGS: $(MAKEFLAGS)" + @echo "Building Doxygen version $*..." + if [ "$$(getenforce || true)" == "Enforcing" ]; then Z=:z; else Z=; fi; \ + F="$(MAKEFLAGS)"; F=$${F##*fifo:}; F=$${F%% *}; \ + if [ -p "$$F" ]; then echo "The GNU make FIFO file exists:"; ls -l $$F; VOLUME_ARGS="-v $$F:$$F$$Z"; echo -- $$VOLUME_ARGS; fi; \ + podman build --build-arg DOXYGEN_VERSION=$* --build-arg "MAKEFLAGS=$(MAKEFLAGS)" $$VOLUME_ARGS -t cgal/doxygen:$* . + +push-%: build-% + @echo "Pushing cgal/doxygen:$*..." + podman push cgal/doxygen:$* + +build: $(foreach version,$(DOXYGEN_VERSIONS),build-$(version)) + +push: $(foreach version,$(DOXYGEN_VERSIONS),push-$(version)) diff --git a/.devcontainer/doxygen-cgal/cgal-NO_ADDITIONAL_DETAILS.patch b/.devcontainer/doxygen-cgal/cgal-NO_ADDITIONAL_DETAILS.patch new file mode 100644 index 00000000000..bb6e63b274d --- /dev/null +++ b/.devcontainer/doxygen-cgal/cgal-NO_ADDITIONAL_DETAILS.patch @@ -0,0 +1,44 @@ +diff --git a/src/config.xml b/src/config.xml +index 13910958a6..31f1354e44 100644 +--- a/src/config.xml ++++ b/src/config.xml +@@ -893,6 +893,18 @@ Go to the next section or return to the + \note This will also disable the warnings about undocumented members + that are normally produced when \ref cfg_warnings "WARNINGS" is + set to \c YES. ++]]> ++ ++ ++ ++ ++ +diff --git a/src/memberdef.cpp b/src/memberdef.cpp +index 08d9bf24c5..ab04e994c5 100644 +--- a/src/memberdef.cpp ++++ b/src/memberdef.cpp +@@ -2501,6 +2501,7 @@ bool MemberDefImpl::hasDetailedDescription() const + if (!m_hasDetailedDescriptionCached) + { + bool extractAll = Config_getBool(EXTRACT_ALL); ++ bool xAllNoDetailedSec = Config_getBool(NO_ADDITIONAL_DETAILS); + bool alwaysDetailedSec = Config_getBool(ALWAYS_DETAILED_SEC); + bool repeatBrief = Config_getBool(REPEAT_BRIEF); + bool briefMemberDesc = Config_getBool(BRIEF_MEMBER_DESC); +@@ -2512,7 +2513,7 @@ bool MemberDefImpl::hasDetailedDescription() const + // the member has detailed documentation because the user added some comments + bool docFilter = + // extract all is enabled +- extractAll || ++ (extractAll && !xAllNoDetailedSec) || + // has detailed docs + !documentation().isEmpty() || + // has inbody docs diff --git a/.devcontainer/doxygen-cgal/devcontainer.json b/.devcontainer/doxygen-cgal/devcontainer.json new file mode 100644 index 00000000000..0624727085f --- /dev/null +++ b/.devcontainer/doxygen-cgal/devcontainer.json @@ -0,0 +1,14 @@ +{ + "name": "CGAL Doxygen Dev Container", + "image": "docker.io/cgal/doxygen:1.12.0", + "features": { + "ghcr.io/devcontainers/features/git:1.3.2": {} + }, + "customizations": { + "vscode": { + "extensions": [ + "ms-vscode.cmake-tools" + ] + } + }, +} \ No newline at end of file diff --git a/.devcontainer/doxygen-cgal/distrobox.ini b/.devcontainer/doxygen-cgal/distrobox.ini new file mode 100644 index 00000000000..55c7c546481 --- /dev/null +++ b/.devcontainer/doxygen-cgal/distrobox.ini @@ -0,0 +1,29 @@ +[distrobox-doxygen-1.12.0] +image=cgal/doxygen:1.12.0 +exported_bins="/usr/local/bin/doxygen /usr/bin/perl /usr/bin/cmake /usr/bin/python3" +exported_bins_path=$HOME/.local/bin-doxygen-1.12.0 + +[distrobox-doxygen-1.11.0] +image=cgal/doxygen:1.11.0 +exported_bins="/usr/local/bin/doxygen /usr/bin/perl /usr/bin/cmake /usr/bin/python3" +exported_bins_path=$HOME/.local/bin-doxygen-1.11.0 + +[distrobox-doxygen-1.10.0] +image=cgal/doxygen:1.10.0 +exported_bins="/usr/local/bin/doxygen /usr/bin/perl /usr/bin/cmake /usr/bin/python3" +exported_bins_path=$HOME/.local/bin-doxygen-1.10.0 + +[distrobox-doxygen-1.9.8] +image=cgal/doxygen:1.9.8 +exported_bins="/usr/local/bin/doxygen /usr/bin/perl /usr/bin/cmake /usr/bin/python3" +exported_bins_path=$HOME/.local/bin-doxygen-1.9.8 + +[distrobox-doxygen-1.9.7] +image=cgal/doxygen:1.9.7 +exported_bins="/usr/local/bin/doxygen /usr/bin/perl /usr/bin/cmake /usr/bin/python3" +exported_bins_path=$HOME/.local/bin-doxygen-1.9.7 + +[distrobox-doxygen-1.9.6] +image=cgal/doxygen:1.9.6 +exported_bins="/usr/local/bin/doxygen /usr/bin/perl /usr/bin/cmake /usr/bin/python3" +exported_bins_path=$HOME/.local/bin-doxygen-1.9.6