mirror of https://github.com/CGAL/cgal
add container images for Doxygen
This commit is contained in:
parent
3fa3568e6b
commit
18a542b92d
|
|
@ -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
|
||||||
|
|
@ -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))
|
||||||
|
|
@ -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 <a href="commands.html">next</a> 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.
|
||||||
|
+]]>
|
||||||
|
+ </docs>
|
||||||
|
+ </option>
|
||||||
|
+ </group>
|
||||||
|
+ <group name='Build' docs='Build related configuration options'>
|
||||||
|
+ <option type='bool' id='NO_ADDITIONAL_DETAILS' defval='0'>
|
||||||
|
+ <docs>
|
||||||
|
+<![CDATA[
|
||||||
|
+ When the \c EXTRACT_ALL tag is set to \c YES and a member or class
|
||||||
|
+ as no documentation, no detailed section will be produced if
|
||||||
|
+ the \c NO_ADDITIONAL_DETAILS tag is set to \c YES.
|
||||||
|
+ This tag has no effect if the \c EXTRACT_ALL tag is set to \c NO.
|
||||||
|
]]>
|
||||||
|
</docs>
|
||||||
|
</option>
|
||||||
|
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
|
||||||
|
|
@ -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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
Loading…
Reference in New Issue