Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .devcontainer/base/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ ARG DEBIAN_FRONTEND=noninteractive

HEALTHCHECK NONE

SHELL ["/bin/bash", "-o", "pipefail", "-c"]
SHELL ["/bin/bash", "-Eeuo", "pipefail", "-c"]

# hadolint ignore=DL3008
RUN --mount=type=bind,source=.devcontainer/base/apt-requirements.json,target=/tmp/apt-requirements.json \
Expand All @@ -35,8 +35,6 @@ RUN --mount=type=bind,source=.devcontainer/base/apt-requirements.json,target=/tm
--mount=type=cache,target=/var/log,sharing=locked \
--mount=from=extractor,target=/src <<EOF

set -e

# Install the base system with all tool dependencies
apt-get update && apt-get install -y --no-install-recommends jq
jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements.json | \
Expand Down
27 changes: 19 additions & 8 deletions .devcontainer/cpp/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,24 @@ FROM ${BASE_IMAGE} AS extractor
ARG CCACHE_VERSION
ARG XWIN_VERSION

SHELL ["/bin/bash", "-Eeuo", "pipefail", "-c"]

WORKDIR /

RUN --mount=from=downloader,target=/dl <<EOF
set -e
ARM_GNU_TOOLCHAIN_URL="https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-$(uname -m)-arm-none-eabi.tar.xz"
ARM_GNU_TOOLCHAIN_TAR="/tmp/arm-gnu-toolchain.tar.xz"

if [[ "$(uname -m)" == "x86_64" ]]; then
ARM_GNU_TOOLCHAIN_SHA256="62a63b981fe391a9cbad7ef51b17e49aeaa3e7b0d029b36ca1e9c3b2a9b78823"
elif [[ "$(uname -m)" == "aarch64" ]]; then
ARM_GNU_TOOLCHAIN_SHA256="87330bab085dd8749d4ed0ad633674b9dc48b237b61069e3b481abd364d0a684"
fi

wget --no-hsts -qO "${ARM_GNU_TOOLCHAIN_TAR}" "${ARM_GNU_TOOLCHAIN_URL}"
echo "${ARM_GNU_TOOLCHAIN_SHA256} ${ARM_GNU_TOOLCHAIN_TAR}" | sha256sum -c -
Comment thread
rjaegers marked this conversation as resolved.

Comment thread
rjaegers marked this conversation as resolved.
tar xJf "${ARM_GNU_TOOLCHAIN_TAR}" --exclude="*arm-none-eabi-gdb*" --exclude="share"
tar xJf /dl/ccache.tar.xz --strip-components=1 "ccache-${CCACHE_VERSION}-linux-$(uname -m)/ccache"
tar xzf /dl/xwin.tar.gz --strip-components=1 "xwin-${XWIN_VERSION}-$(uname -m)-unknown-linux-musl/xwin"
cp /dl/llvm.gpg.key /llvm.gpg.key
Expand All @@ -64,7 +78,7 @@ ARG DEBIAN_FRONTEND=noninteractive

HEALTHCHECK NONE

SHELL ["/bin/bash", "-o", "pipefail", "-c"]
SHELL ["/bin/bash", "-Eeuo", "pipefail", "-c"]

# Set default environment options
ENV CCACHE_DIR=/cache/.ccache \
Expand All @@ -86,8 +100,6 @@ RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-base.json,target
--mount=type=cache,target=/var/log,sharing=locked \
--mount=from=extractor,target=/src <<EOF

set -e

# Install the base system with all tool dependencies
apt-get update && jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-base.json | \
xargs apt-get install -y --no-install-recommends
Expand All @@ -111,11 +123,10 @@ RUN --mount=type=bind,source=.devcontainer/cpp/apt-requirements-base.json,target
echo -e 'Package: *\nPin: origin "apt.llvm.org"\nPin-Priority: 1000' > /etc/apt/preferences
apt-get update && jq -r 'to_entries | .[] | .key + "=" + .value' /tmp/apt-requirements-clang.json | \
xargs apt-get install -y --no-install-recommends
EOF

# Install arm-gcc toolchain
RUN mkdir /opt/gcc-arm-none-eabi \
&& wget --no-hsts -qO - "https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-$(uname -m)-arm-none-eabi.tar.xz" | tar --exclude='*arm-none-eabi-gdb*' --exclude='share' --strip-components=1 -xJC /opt/gcc-arm-none-eabi
# Install arm-gcc toolchain
cp -a /src/arm-gnu-toolchain-*-arm-none-eabi /opt/gcc-arm-none-eabi
EOF

# Install include-what-you-use (iwyu) from source
# hadolint ignore=DL3008
Expand Down
Loading