diff --git a/tools/ci/docker/linux/Dockerfile b/tools/ci/docker/linux/Dockerfile index 5348f67d7c..71d0936f72 100644 --- a/tools/ci/docker/linux/Dockerfile +++ b/tools/ci/docker/linux/Dockerfile @@ -293,6 +293,15 @@ RUN mkdir -p wamrc && \ curl -s -L "https://github.com/bytecodealliance/wasm-micro-runtime/releases/download/WAMR-1.1.2/wamrc-1.1.2-x86_64-ubuntu-20.04.tar.gz" \ | tar -C wamrc -xz +############################################################################### +# Build image for tool required by Raspberry Pi pico-sdk builds +############################################################################### +FROM nuttx-toolchain-base AS nuttx-toolchain-raspberrypi-pico-sdk +# Download the latest pico-sdk source archive +RUN mkdir -p pico-sdk && \ + curl -s -L "https://github.com/raspberrypi/pico-sdk/releases/download/2.2.0/pico-sdk-2.2.0.tar.gz" \ + | tar -C pico-sdk --strip-components 1 -xz + ############################################################################### # Final Docker image used for running CI system. This includes all toolchains # supported by the CI system. @@ -478,6 +487,11 @@ COPY --from=nuttx-toolchain-esp32 /tools/blobs/* /tools/blobs/esp-bins/ COPY --from=nuttx-toolchain-wasm /tools/wasi-sdk/ wasi-sdk/ ENV WASI_SDK_PATH="/tools/wasi-sdk" ENV PATH="/tools/wamr:$PATH" +COPY --from=nuttx-toolchain-esp32 /tools/blobs/* /tools/blobs/esp-bins/ + +# Raspberry Pi pico-sdk source +COPY --from=nuttx-toolchain-raspberrypi-pico-sdk /tools/pico-sdk/ pico-sdk/ +ENV PICO_SDK_PATH="/tools/pico-sdk" # gn tool RUN mkdir -p /tools/gn diff --git a/tools/ci/platforms/linux.sh b/tools/ci/platforms/linux.sh index e5cdf0c7c9..a56ae81542 100755 --- a/tools/ci/platforms/linux.sh +++ b/tools/ci/platforms/linux.sh @@ -299,6 +299,27 @@ wasi_sdk() { command wamrc --version } +raspberrypi_pico_sdk() { + if [ ! -f "${NUTTXTOOLS}/pico-sdk" ]; then + local release + local basefile + release="2.2.0" + basefile="pico-sdk-${release}" + cd "${NUTTXTOOLS}" + mkdir -p pico-sdk + + # Download the latest pico-sdk source archive + curl -O -L -s https://github.com/raspberrypi/pico-sdk/releases/download/${release}/${basefile}.tar.gz + tar xzf "${basefile}.tar.gz" + mv "${basefile}" pico-sdk + rm "${basefile}.tar.gz" + + fi + + export PICO_SDK_PATH="${NUTTXTOOLS}/pico-sdk" + echo "export PICO_SDK_PATH=${NUTTXTOOLS}/pico-sdk" >> "${NUTTXTOOLS}"/env.sh +} + setup_links() { # Configure ccache mkdir -p "${NUTTXTOOLS}"/ccache/bin/ @@ -334,7 +355,7 @@ install_build_tools() { mkdir -p "${NUTTXTOOLS}" echo "#!/usr/bin/env sh" > "${NUTTXTOOLS}"/env.sh - install="arm_clang_toolchain arm_gcc_toolchain arm64_gcc_toolchain bloaty kconfig_frontends mips_gcc_toolchain python_tools riscv_gcc_toolchain rx_gcc_toolchain sparc_gcc_toolchain xtensa_esp_gcc_toolchain util_linux wasi_sdk" + install="arm_clang_toolchain arm_gcc_toolchain arm64_gcc_toolchain bloaty kconfig_frontends mips_gcc_toolchain python_tools riscv_gcc_toolchain rx_gcc_toolchain sparc_gcc_toolchain xtensa_esp_gcc_toolchain util_linux wasi_sdk raspberrypi_pico_sdk" oldpath=$(cd . && pwd -P) for func in ${install}; do diff --git a/tools/ci/platforms/ubuntu.sh b/tools/ci/platforms/ubuntu.sh index 3d03a4ca07..25f60825fb 100755 --- a/tools/ci/platforms/ubuntu.sh +++ b/tools/ci/platforms/ubuntu.sh @@ -379,6 +379,27 @@ wasi_sdk() { command wamrc --version } +raspberrypi_pico_sdk() { + if [ ! -f "${NUTTXTOOLS}/pico-sdk" ]; then + local release + local basefile + release="2.2.0" + basefile="pico-sdk-${release}" + cd "${NUTTXTOOLS}" + mkdir -p pico-sdk + + # Download the latest pico-sdk source archive + curl -O -L -s https://github.com/raspberrypi/pico-sdk/releases/download/${release}/${basefile}.tar.gz + tar xzf "${basefile}.tar.gz" + mv "${basefile}" pico-sdk + rm "${basefile}.tar.gz" + + fi + + export PICO_SDK_PATH="${NUTTXTOOLS}/pico-sdk" + echo "export PICO_SDK_PATH=${NUTTXTOOLS}/pico-sdk" >> "${NUTTXTOOLS}"/env.sh +} + setup_links() { # Configure ccache mkdir -p "${NUTTXTOOLS}"/ccache/bin/ @@ -414,7 +435,7 @@ install_build_tools() { mkdir -p "${NUTTXTOOLS}" echo "#!/usr/bin/env sh" > "${NUTTXTOOLS}"/env.sh - install="arm_clang_toolchain arm_gcc_toolchain arm64_gcc_toolchain avr_gcc_toolchain binutils bloaty clang_tidy gen_romfs gperf kconfig_frontends mips_gcc_toolchain python_tools riscv_gcc_toolchain rust dlang rx_gcc_toolchain sparc_gcc_toolchain xtensa_esp_gcc_toolchain u_boot_tools util_linux wasi_sdk c_cache" + install="arm_clang_toolchain arm_gcc_toolchain arm64_gcc_toolchain avr_gcc_toolchain binutils bloaty clang_tidy gen_romfs gperf kconfig_frontends mips_gcc_toolchain python_tools riscv_gcc_toolchain rust dlang rx_gcc_toolchain sparc_gcc_toolchain xtensa_esp_gcc_toolchain u_boot_tools util_linux wasi_sdk c_cache raspberrypi_pico_sdk" oldpath=$(cd . && pwd -P) for func in ${install}; do