1- FROM ghcr.io/project-chip/chip-build:latest AS build
2- LABEL org.opencontainers.image.source=https://github.com/project-chip/connectedhomeip
1+ ARG VERSION=1
2+ FROM ghcr.io/project-chip/chip-build:${VERSION} as build
3+ LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip
34
5+ # Copy SLT manifests and Simplicity SDK keep-list from files-slt (build context: Dockerfile folder)
6+ COPY files-slt/sisdk-pkg.lock files-slt/wiseconnect-pkg.slt /tmp/
7+ COPY files-slt/simplicity_sdk_keep_folders.txt /tmp/keep_folders.txt
48
5- # Copy SLT package manifests, lock (conan-repos without conan-aus for CI reachability), and Simplicity SDK keep-list (build context must be repo root)
6- COPY scripts/setup/silabs/sisdk-pkg.lock scripts/setup/silabs/wiseconnect-pkg.slt docker/requirements.txt /tmp/
7- COPY scripts/setup/silabs/simplicity_sdk_keep_folders.txt /tmp/keep_folders.txt
8-
9- # GNU ARM Embedded toolchain, cross compiler for various platform builds
10- RUN set -x \
11- && apt-get update \
12- && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \
13- gcc-arm-none-eabi \
14- binutils-arm-none-eabi \
15- openjdk-17-jdk-headless \
16- ccache \
17- && apt-get clean \
18- && rm -rf /var/lib/apt/lists/ \
19- # Install Python Packages
20- && pip3 install --break-system-packages -r /tmp/requirements.txt \
21- && rm /tmp/requirements.txt \
22- && : # last line
23-
24- # Setup SLT CLI (same as scripts/setup/silabs/install-packages.py) and install simplicity-sdk + wiseconnect via sdk-pkg.slt
9+ # Setup SLT CLI (same as scripts/setup/silabs/install-packages.py)
2510RUN set -x \
2611 && mkdir -p /tmp/slt_install \
2712 && wget -q https://www.silabs.com/documents/public/software/slt-cli-1.0.1-linux-x64.zip -O /tmp/slt.zip \
@@ -30,9 +15,8 @@ RUN set -x \
3015 && chmod +x /tmp/slt_install/slt \
3116 && : # last line
3217
33- # Install packages via SLT (simplicity-sdk, wiseconnect, slc-cli) then add conan remote and copy to /tmp for final image
18+ # Install packages via SLT (simplicity-sdk, wiseconnect, slc-cli) and copy to /tmp for final image
3419RUN set -x \
35- && /tmp/slt_install/slt update --self \
3620 && /tmp/slt_install/slt install -f /tmp/wiseconnect-pkg.slt \
3721 && /tmp/slt_install/slt install slc-cli \
3822 && cp -a $(/tmp/slt_install/slt where wiseconnect) /tmp/wifi_sdk \
@@ -42,18 +26,16 @@ RUN set -x \
4226 && rm -rf /tmp/slt_install /tmp/sisdk-pkg.lock /tmp/wiseconnect-pkg.slt \
4327 && : # last line
4428
45- # Trim Simplicity SDK: keep only top-level folders and .a libraries listed in simplicity_sdk_keep_folders.txt; remove all other .a
29+ # Trim Simplicity SDK: keep only folders and .a libs from simplicity_sdk_keep_folders.txt
4630RUN grep -v '^#' /tmp/keep_folders.txt | grep -v '^$' | grep -v '\. a$' | sort -u > /tmp/keep_list.txt \
4731 && for d in /tmp/simplicity_sdk/*/ ; do \
4832 name=$(basename "$d" ); \
4933 grep -qFx "$name" /tmp/keep_list.txt || rm -rf "$d" ; \
5034 done \
5135 && grep -v '^#' /tmp/keep_folders.txt | grep -v '^$' | grep '\. a$' | sort -u > /tmp/keep_libs.txt \
52- && ( cd /tmp/simplicity_sdk && find . -name "*.a" -type f | while read f; do \
53- rel="${f#./}" ; \
54- grep -qFx "$rel" /tmp/keep_libs.txt || rm -f "$f" ; \
55- done ) \
56- && rm /tmp/keep_folders.txt /tmp/keep_list.txt /tmp/keep_libs.txt \
36+ && ( cd /tmp/simplicity_sdk && find . -name "*.a" -type f | sed 's|^\. /||' > /tmp/all_libs.txt ) \
37+ && grep -vFxf /tmp/keep_libs.txt /tmp/all_libs.txt | sed 's|^|/tmp/simplicity_sdk/|' | xargs -r rm -f \
38+ && rm /tmp/keep_folders.txt /tmp/keep_list.txt /tmp/keep_libs.txt /tmp/all_libs.txt \
5739 && find /tmp/simplicity_sdk/openthread -name "*efr32mg21*" -delete \
5840 && find /tmp/simplicity_sdk/boards/hardware/board/config -mindepth 1 -maxdepth 1 -type d ! \( -name '*brd4186c*' -o -name '*brd4187c*' -o -name '*brd4186a*' -o -name '*brd4187a*' -o -name '*brd2601b*' -o -name '*brd2703a*' -o -name '*brd2704a*' -o -name '*component*' \
5941 -o -name '*brd4316a*' -o -name '*brd4317a*' -o -name '*brd4318a*' -o -name '*brd4319a*' -o -name '*brd4116a*' -o -name '*brd4117a*' -o -name '*brd4118a*' -o -name '*brd2608a*' -o -name '*brd4350a*' -o -name '*brd4351a*' -o -name '*brd2709a*' \
@@ -66,9 +48,24 @@ RUN rm -rf /tmp/wifi_sdk/.git /tmp/wifi_sdk/examples /tmp/wifi_sdk/components/de
6648 && : # last line
6749
6850# Final SDK container for compiling using Silabs SDK
69- FROM ghcr.io/project-chip/chip-build:latest
51+ FROM ghcr.io/project-chip/chip-build:${VERSION}
7052
71- ADD docker/requirements.txt /tmp/requirements.txt
53+ ADD requirements.txt /tmp/requirements.txt
54+
55+ # GNU ARM Embedded toolchain, cross compiler for various platform builds
56+ RUN set -x \
57+ && apt-get update \
58+ && DEBIAN_FRONTEND=noninteractive apt-get install -fy --no-install-recommends \
59+ gcc-arm-none-eabi \
60+ binutils-arm-none-eabi \
61+ openjdk-17-jdk-headless \
62+ ccache \
63+ && apt-get clean \
64+ && rm -rf /var/lib/apt/lists/ \
65+ # Install Python Packages
66+ && pip3 install --break-system-packages -r /tmp/requirements.txt \
67+ && rm /tmp/requirements.txt \
68+ && : # last line
7269
7370# Keep GSDK_ROOT name until rename transition to SISDK is completed
7471ENV GSDK_ROOT=/opt/silabs/simplicity_sdk/
0 commit comments