88# image, even though it is not used for Clang.
99ARG DEBIAN_VERSION
1010ARG GCC_VERSION=invalid
11- FROM gcc:${GCC_VERSION}-${DEBIAN_VERSION} AS gcc-src
11+ ARG BASE_IMAGE=gcc:${GCC_VERSION}-${DEBIAN_VERSION}
12+ FROM ${BASE_IMAGE} AS gcc-src
1213
1314# ====================== BASE IMAGE ======================
1415FROM debian:${DEBIAN_VERSION} AS base
3738RUN <<EOF
3839pkgs=()
3940pkgs+=(ca-certificates) # Enable TLS verification for HTTPS connections by providing trusted root certificates.
40- pkgs+=(cmake) # Required build tool.
4141pkgs+=(curl) # Dependency for tools requiring downloading data.
4242pkgs+=(dpkg-dev) # Required packaging tool.
43+ pkgs+=(debhelper) # Required packaging tool.
4344pkgs+=(file) # Required packaging tool.
4445pkgs+=(git) # Required build tool.
4546pkgs+=(gpg) # Dependency for tools requiring signing or encrypting/decrypting.
4647pkgs+=(gpg-agent) # Dependency for tools requiring signing or encrypting/decrypting.
4748pkgs+=(jq) # JSON manipulation.
4849pkgs+=(libc6-dev) # Required build tool.
4950pkgs+=(ninja-build) # Required build tool.
50- pkgs+=(pipx ) # Package manager for Python applications .
51- pkgs+=(python3-jinja2 ) # Required build tool .
51+ pkgs+=(python3-venv ) # Python environment management tool .
52+ pkgs+=(python3-pip ) # Package manager for Python applications .
5253pkgs+=(vim) # Text editor.
5354pkgs+=(wget) # Required build tool.
5455apt-get update
@@ -57,14 +58,18 @@ apt-get clean
5758rm -rf /var/lib/apt/lists/*
5859EOF
5960
60- # Install Python-based tools.
61+ # Install Python-based tools and cmake .
6162ARG CONAN_VERSION
6263ARG GCOVR_VERSION
63- ENV PIPX_HOME=/opt/pipx \
64- PIPX_BIN_DIR=/usr/bin \
65- PIPX_MAN_DIR=/usr/share/man
66- RUN pipx install --pip-args='--no-cache' conan==${CONAN_VERSION} && \
67- pipx install --pip-args='--no-cache' gcovr==${GCOVR_VERSION}
64+ ARG CMAKE_VERSION
65+
66+ ENV VIRTUAL_ENV=/opt/venv
67+ RUN python3 -m venv ${VIRTUAL_ENV}
68+ ENV PATH=${VIRTUAL_ENV}/bin:${PATH}
69+ RUN pip install --no-cache \
70+ conan==${CONAN_VERSION} \
71+ gcovr==${GCOVR_VERSION} \
72+ cmake==${CMAKE_VERSION}
6873
6974# ====================== GCC IMAGE ======================
7075FROM base AS gcc
@@ -83,6 +88,13 @@ ldconfig -v
8388dpkg-divert --divert /usr/bin/gcc.orig --rename /usr/bin/gcc
8489dpkg-divert --divert /usr/bin/g++.orig --rename /usr/bin/g++
8590dpkg-divert --divert /usr/bin/gfortran.orig --rename /usr/bin/gfortran
91+ dpkg-divert --divert /usr/bin/gcc-ar.orig --rename /usr/bin/gcc-ar
92+ dpkg-divert --divert /usr/bin/gcc-nm.orig --rename /usr/bin/gcc-nm
93+ dpkg-divert --divert /usr/bin/gcc-ranlib.orig --rename /usr/bin/gcc-ranlib
94+ dpkg-divert --divert /usr/bin/gcov.orig --rename /usr/bin/gcov
95+ dpkg-divert --divert /usr/bin/gcov-tool.orig --rename /usr/bin/gcov-tool
96+ dpkg-divert --divert /usr/bin/gcov-dump.orig --rename /usr/bin/gcov-dump
97+ dpkg-divert --divert /usr/bin/lto-dump.orig --rename /usr/bin/lto-dump
8698update-alternatives \
8799 --install /usr/bin/cc cc /usr/local/bin/gcc 999
88100update-alternatives \
0 commit comments