mirror of https://github.com/CGAL/cgal
56 lines
1.8 KiB
Docker
56 lines
1.8 KiB
Docker
# 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
|