Unify docker devcontainer with dockerfile used for CI (#1587)
* Only use one Dockerfile and build.sh script for both docker and devcontainer * Remove all now unneccessary tasks and scripts * Update to clang-format-14 * Move devcontainer.json into root folder * Fix conditional statements in Dockerfile * Move .devcontainer/README into doc/usingDevcontainers * Remove obsolete VSCode Task * Change standard compiler path to the correct compiler * Set GDB Path for debugging * Hide broken buttons from CMake Extension * Refactor .devcontainer * Remove unneccessary postBuildCommand * Add devcontainer dependencies to all docker images * Add Devcontainer Debug launch config * Add an additional c_cpp_properties config as a fallback for devcontainer * Remove obsolete Docker Argument * Fix wrong C/Cpp versions * Fix silent fail of gdb, add libncurses5
This commit is contained in:
parent
9a5f516c42
commit
57e625d4dc
32
.devcontainer.json
Normal file
32
.devcontainer.json
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||||
|
// https://github.com/microsoft/vscode-dev-containers/tree/v0.154.2/containers/cpp
|
||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "docker/Dockerfile"
|
||||||
|
},
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"settings": {
|
||||||
|
// Set *default* container specific settings.json values on container create.
|
||||||
|
"terminal.integrated.profiles.linux": {
|
||||||
|
"bash": {
|
||||||
|
"path": "/bin/bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"terminal.integrated.defaultProfile.linux": "bash",
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
// FIXME: This and the Dockerfile might get out of sync
|
||||||
|
"clang-format.executable": "clang-format-14"
|
||||||
|
},
|
||||||
|
// Add the IDs of extensions you want installed when the container is created.
|
||||||
|
"extensions": [
|
||||||
|
"ms-vscode.cpptools",
|
||||||
|
"ms-vscode.cmake-tools",
|
||||||
|
"marus25.cortex-debug",
|
||||||
|
"notskm.clang-tidy",
|
||||||
|
"mjohns.clang-format"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"remoteUser": "infinitime"
|
||||||
|
}
|
|
@ -1,66 +0,0 @@
|
||||||
FROM ubuntu:latest
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
RUN apt-get update -qq \
|
|
||||||
&& apt-get install -y \
|
|
||||||
# x86_64 / generic packages
|
|
||||||
bash \
|
|
||||||
build-essential \
|
|
||||||
cmake \
|
|
||||||
git \
|
|
||||||
make \
|
|
||||||
python3 \
|
|
||||||
python3-pip \
|
|
||||||
python3-pil \
|
|
||||||
tar \
|
|
||||||
unzip \
|
|
||||||
wget \
|
|
||||||
curl \
|
|
||||||
dos2unix \
|
|
||||||
clang-format-12 \
|
|
||||||
clang-tidy \
|
|
||||||
locales \
|
|
||||||
libncurses5 \
|
|
||||||
# aarch64 packages
|
|
||||||
libffi-dev \
|
|
||||||
libssl-dev \
|
|
||||||
python3-dev \
|
|
||||||
rustc \
|
|
||||||
&& rm -rf /var/cache/apt/* /var/lib/apt/lists/*;
|
|
||||||
|
|
||||||
#SET LOCALE
|
|
||||||
RUN locale-gen en_US.UTF-8
|
|
||||||
ENV LANG en_US.UTF-8
|
|
||||||
ENV LANGUAGE en_US:en
|
|
||||||
ENV LC_ALL en_US.UTF-8
|
|
||||||
|
|
||||||
RUN pip3 install adafruit-nrfutil
|
|
||||||
# required for McuBoot
|
|
||||||
RUN pip3 install setuptools_rust
|
|
||||||
|
|
||||||
WORKDIR /opt/
|
|
||||||
# build.sh knows how to compile but it problimatic on Win10
|
|
||||||
COPY build.sh .
|
|
||||||
RUN chmod +x build.sh
|
|
||||||
# create_build_openocd.sh uses cmake to crate to build directory
|
|
||||||
COPY create_build_openocd.sh .
|
|
||||||
RUN chmod +x create_build_openocd.sh
|
|
||||||
# Lets get each in a separate docker layer for better downloads
|
|
||||||
# GCC
|
|
||||||
# RUN bash -c "source /opt/build.sh; GetGcc;"
|
|
||||||
RUN wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2 -O - | tar -xj -C /opt
|
|
||||||
# NrfSdk
|
|
||||||
# RUN bash -c "source /opt/build.sh; GetNrfSdk;"
|
|
||||||
RUN wget -q "https://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v15.x.x/nRF5_SDK_15.3.0_59ac345.zip" -O /tmp/nRF5_SDK_15.3.0_59ac345
|
|
||||||
RUN unzip -q /tmp/nRF5_SDK_15.3.0_59ac345 -d /opt
|
|
||||||
RUN rm /tmp/nRF5_SDK_15.3.0_59ac345
|
|
||||||
# McuBoot
|
|
||||||
# RUN bash -c "source /opt/build.sh; GetMcuBoot;"
|
|
||||||
RUN git clone https://github.com/mcu-tools/mcuboot.git
|
|
||||||
RUN pip3 install -r ./mcuboot/scripts/requirements.txt
|
|
||||||
|
|
||||||
RUN adduser infinitime
|
|
||||||
|
|
||||||
ENV NRF5_SDK_PATH /opt/nRF5_SDK_15.3.0_59ac345
|
|
||||||
ENV ARM_NONE_EABI_TOOLCHAIN_PATH /opt/gcc-arm-none-eabi-9-2020-q2-update
|
|
||||||
ENV SOURCES_DIR /workspaces/InfiniTime
|
|
|
@ -1,87 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
(return 0 2>/dev/null) && SOURCED="true" || SOURCED="false"
|
|
||||||
export LC_ALL=C.UTF-8
|
|
||||||
export LANG=C.UTF-8
|
|
||||||
set -x
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Default locations if the var isn't already set
|
|
||||||
export TOOLS_DIR="${TOOLS_DIR:=/opt}"
|
|
||||||
export SOURCES_DIR="${SOURCES_DIR:=/sources}"
|
|
||||||
export BUILD_DIR="${BUILD_DIR:=$SOURCES_DIR/build}"
|
|
||||||
export OUTPUT_DIR="${OUTPUT_DIR:=$BUILD_DIR/output}"
|
|
||||||
|
|
||||||
export BUILD_TYPE=${BUILD_TYPE:=Release}
|
|
||||||
export GCC_ARM_VER=${GCC_ARM_VER:="gcc-arm-none-eabi-9-2020-q2-update"}
|
|
||||||
export NRF_SDK_VER=${NRF_SDK_VER:="nRF5_SDK_15.3.0_59ac345"}
|
|
||||||
|
|
||||||
MACHINE="$(uname -m)"
|
|
||||||
[[ "$MACHINE" == "arm64" ]] && MACHINE="aarch64"
|
|
||||||
|
|
||||||
main() {
|
|
||||||
local target="$1"
|
|
||||||
|
|
||||||
mkdir -p "$TOOLS_DIR"
|
|
||||||
|
|
||||||
[[ ! -d "$TOOLS_DIR/$GCC_ARM_VER" ]] && GetGcc
|
|
||||||
[[ ! -d "$TOOLS_DIR/$NRF_SDK_VER" ]] && GetNrfSdk
|
|
||||||
[[ ! -d "$TOOLS_DIR/mcuboot" ]] && GetMcuBoot
|
|
||||||
|
|
||||||
mkdir -p "$BUILD_DIR"
|
|
||||||
|
|
||||||
CmakeGenerate
|
|
||||||
CmakeBuild $target
|
|
||||||
BUILD_RESULT=$?
|
|
||||||
if [ "$DISABLE_POSTBUILD" != "true" -a "$BUILD_RESULT" == 0 ]; then
|
|
||||||
source "$BUILD_DIR/post_build.sh"
|
|
||||||
fi
|
|
||||||
# assuming post_build.sh will never fail on a successful build
|
|
||||||
return $BUILD_RESULT
|
|
||||||
}
|
|
||||||
|
|
||||||
GetGcc() {
|
|
||||||
GCC_SRC="$GCC_ARM_VER-$MACHINE-linux.tar.bz"
|
|
||||||
wget -q https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/$GCC_SRC -O - | tar -xj -C $TOOLS_DIR/
|
|
||||||
}
|
|
||||||
|
|
||||||
GetMcuBoot() {
|
|
||||||
git clone https://github.com/mcu-tools/mcuboot.git "$TOOLS_DIR/mcuboot"
|
|
||||||
pip3 install -r "$TOOLS_DIR/mcuboot/scripts/requirements.txt"
|
|
||||||
}
|
|
||||||
|
|
||||||
GetNrfSdk() {
|
|
||||||
wget -q "https://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v15.x.x/$NRF_SDK_VER.zip" -O /tmp/$NRF_SDK_VER
|
|
||||||
unzip -q /tmp/$NRF_SDK_VER -d "$TOOLS_DIR/"
|
|
||||||
rm /tmp/$NRF_SDK_VER
|
|
||||||
}
|
|
||||||
|
|
||||||
CmakeGenerate() {
|
|
||||||
# We can swap the CD and trailing SOURCES_DIR for -B and -S respectively
|
|
||||||
# once we go to newer CMake (Ubuntu 18.10 gives us CMake 3.10)
|
|
||||||
cd "$BUILD_DIR"
|
|
||||||
|
|
||||||
cmake -G "Unix Makefiles" \
|
|
||||||
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
|
||||||
-DARM_NONE_EABI_TOOLCHAIN_PATH="$TOOLS_DIR/$GCC_ARM_VER" \
|
|
||||||
-DNRF5_SDK_PATH="$TOOLS_DIR/$NRF_SDK_VER" \
|
|
||||||
"$SOURCES_DIR"
|
|
||||||
cmake -L -N .
|
|
||||||
}
|
|
||||||
|
|
||||||
CmakeBuild() {
|
|
||||||
local target="$1"
|
|
||||||
[[ -n "$target" ]] && target="--target $target"
|
|
||||||
if cmake --build "$BUILD_DIR" --config $BUILD_TYPE $target -- -j$(nproc)
|
|
||||||
then return 0; else return 1;
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ $SOURCED == "false" ]]; then
|
|
||||||
# It is important to return exit code of main
|
|
||||||
# To be future-proof, this is handled explicitely
|
|
||||||
main "$@"
|
|
||||||
BUILD_RESULT=$?
|
|
||||||
exit $BUILD_RESULT
|
|
||||||
else
|
|
||||||
echo "Sourced!"
|
|
||||||
fi
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
cmake --build /workspaces/Pinetime/build --config Release -- -j6 pinetime-app
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
rm -rf build/
|
|
||||||
cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Release -DUSE_OPENOCD=1 -DARM_NONE_EABI_TOOLCHAIN_PATH=/opt/gcc-arm-none-eabi-9-2020-q2-update -DNRF5_SDK_PATH=/opt/nRF5_SDK_15.3.0_59ac345 -S . -Bbuild
|
|
|
@ -1,38 +0,0 @@
|
||||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
|
||||||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.154.2/containers/cpp
|
|
||||||
{
|
|
||||||
// "name": "Pinetime",
|
|
||||||
// "image": "feabhas/pinetime-dev"
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "Dockerfile",
|
|
||||||
// Update 'VARIANT' to pick an Debian / Ubuntu OS version: debian-10, debian-9, ubuntu-20.04, ubuntu-18.04
|
|
||||||
// "args": { "VARIANT": "ubuntu-20.04" }
|
|
||||||
},
|
|
||||||
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"],
|
|
||||||
|
|
||||||
// Set *default* container specific settings.json values on container create.
|
|
||||||
"settings": {
|
|
||||||
"terminal.integrated.shell.linux": "/bin/bash",
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"clang-format.executable": "clang-format-12"
|
|
||||||
},
|
|
||||||
|
|
||||||
// Add the IDs of extensions you want installed when the container is created.
|
|
||||||
"extensions": [
|
|
||||||
"ms-vscode.cpptools",
|
|
||||||
"ms-vscode.cmake-tools",
|
|
||||||
"marus25.cortex-debug",
|
|
||||||
"notskm.clang-tidy",
|
|
||||||
"mjohns.clang-format"
|
|
||||||
],
|
|
||||||
|
|
||||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
|
||||||
// "forwardPorts": [],
|
|
||||||
|
|
||||||
// Use 'postCreateCommand' to run commands after the container is created.
|
|
||||||
// "postCreateCommand": "bash /opt/create_build_openocd.sh",
|
|
||||||
|
|
||||||
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
|
||||||
// "remoteUser": "vscode"
|
|
||||||
"remoteUser": "infinitime"
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Release -DUSE_OPENOCD=1 -DARM_NONE_EABI_TOOLCHAIN_PATH=/opt/gcc-arm-none-eabi-9-2020-q2-update -DNRF5_SDK_PATH=/opt/nRF5_SDK_15.3.0_59ac345 ${SOURCES_DIR}
|
|
20
.vscode/c_cpp_properties.json
vendored
20
.vscode/c_cpp_properties.json
vendored
|
@ -1,4 +1,9 @@
|
||||||
{
|
{
|
||||||
|
"env": {
|
||||||
|
// TODO: This is a duplication of the configuration set in /docker/build.sh!
|
||||||
|
"TOOLS_DIR": "/opt",
|
||||||
|
"GCC_ARM_PATH": "gcc-arm-none-eabi-10.3-2021.10"
|
||||||
|
},
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "nrfCC",
|
"name": "nrfCC",
|
||||||
|
@ -14,6 +19,21 @@
|
||||||
"intelliSenseMode": "linux-gcc-arm",
|
"intelliSenseMode": "linux-gcc-arm",
|
||||||
"configurationProvider": "ms-vscode.cpp-tools",
|
"configurationProvider": "ms-vscode.cpp-tools",
|
||||||
"compileCommands": "${workspaceFolder}/build/compile_commands.json"
|
"compileCommands": "${workspaceFolder}/build/compile_commands.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "nrfCC Devcontainer",
|
||||||
|
"includePath": [
|
||||||
|
"${workspaceFolder}/**",
|
||||||
|
"${workspaceFolder}/src/**",
|
||||||
|
"${workspaceFolder}/src"
|
||||||
|
],
|
||||||
|
"defines": [],
|
||||||
|
"compilerPath": "${TOOLS_DIR}/${GCC_ARM_PATH}/bin/arm-none-eabi-gcc",
|
||||||
|
"cStandard": "c99",
|
||||||
|
"cppStandard": "c++20",
|
||||||
|
"intelliSenseMode": "linux-gcc-arm",
|
||||||
|
"configurationProvider": "ms-vscode.cpp-tools",
|
||||||
|
"compileCommands": "${workspaceFolder}/build/compile_commands.json"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"version": 4
|
"version": 4
|
||||||
|
|
6
.vscode/cmake-kits.json
vendored
Normal file
6
.vscode/cmake-kits.json
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "InfiniTime Compiler",
|
||||||
|
"environmentSetupScript": "${workspaceFolder}/docker/build.sh"
|
||||||
|
}
|
||||||
|
]
|
35
.vscode/launch.json
vendored
35
.vscode/launch.json
vendored
|
@ -4,17 +4,15 @@
|
||||||
{
|
{
|
||||||
"name": "Debug - Openocd docker Remote",
|
"name": "Debug - Openocd docker Remote",
|
||||||
"type": "cortex-debug",
|
"type": "cortex-debug",
|
||||||
"cortex-debug.armToolchainPath":"${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin",
|
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceRoot}",
|
||||||
"executable": "${command:cmake.launchTargetPath}",
|
"executable": "${command:cmake.launchTargetPath}",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"servertype": "external",
|
"servertype": "external",
|
||||||
// This may need to be arm-none-eabi-gdb depending on your system
|
|
||||||
"gdbPath": "${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin/arm-none-eabi-gdb",
|
"gdbPath": "${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin/arm-none-eabi-gdb",
|
||||||
// Connect to an already running OpenOCD instance
|
// Connect to an already running OpenOCD instance
|
||||||
"gdbTarget": "host.docker.internal:3333",
|
"gdbTarget": "host.docker.internal:3333",
|
||||||
"svdFile": "${workspaceRoot}/nrf52.svd",
|
"svdFile": "${workspaceRoot}/nrf52.svd",
|
||||||
"runToMain": true,
|
"runToEntryPoint": "main",
|
||||||
// Work around for stopping at main on restart
|
// Work around for stopping at main on restart
|
||||||
"postRestartCommands": [
|
"postRestartCommands": [
|
||||||
"break main",
|
"break main",
|
||||||
|
@ -24,17 +22,15 @@
|
||||||
{
|
{
|
||||||
"name": "Debug - Openocd Local",
|
"name": "Debug - Openocd Local",
|
||||||
"type": "cortex-debug",
|
"type": "cortex-debug",
|
||||||
"cortex-debug.armToolchainPath":"${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin",
|
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceRoot}",
|
||||||
"executable": "${command:cmake.launchTargetPath}",
|
"executable": "${command:cmake.launchTargetPath}",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"servertype": "openocd",
|
"servertype": "openocd",
|
||||||
// This may need to be arm-none-eabi-gdb depending on your system
|
|
||||||
"gdbPath": "${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin/arm-none-eabi-gdb",
|
"gdbPath": "${env:ARM_NONE_EABI_TOOLCHAIN_PATH}/bin/arm-none-eabi-gdb",
|
||||||
// Connect to an already running OpenOCD instance
|
// Connect to an already running OpenOCD instance
|
||||||
"gdbTarget": "localhost:3333",
|
"gdbTarget": "localhost:3333",
|
||||||
"svdFile": "${workspaceRoot}/nrf52.svd",
|
"svdFile": "${workspaceRoot}/nrf52.svd",
|
||||||
"runToMain": true,
|
"runToEntryPoint": "main",
|
||||||
// Work around for stopping at main on restart
|
// Work around for stopping at main on restart
|
||||||
"postRestartCommands": [
|
"postRestartCommands": [
|
||||||
"break main",
|
"break main",
|
||||||
|
@ -51,6 +47,11 @@
|
||||||
"showDevDebugOutput": false,
|
"showDevDebugOutput": false,
|
||||||
"servertype": "openocd",
|
"servertype": "openocd",
|
||||||
"runToMain": true,
|
"runToMain": true,
|
||||||
|
// Work around for stopping at main on restart
|
||||||
|
"postRestartCommands": [
|
||||||
|
"break main",
|
||||||
|
"continue"
|
||||||
|
],
|
||||||
// Only use armToolchainPath if your arm-none-eabi-gdb is not in your path (some GCC packages does not contain arm-none-eabi-gdb)
|
// Only use armToolchainPath if your arm-none-eabi-gdb is not in your path (some GCC packages does not contain arm-none-eabi-gdb)
|
||||||
"armToolchainPath": "${workspaceRoot}/../gcc-arm-none-eabi-10.3-2021.10/bin",
|
"armToolchainPath": "${workspaceRoot}/../gcc-arm-none-eabi-10.3-2021.10/bin",
|
||||||
"svdFile": "${workspaceRoot}/nrf52.svd",
|
"svdFile": "${workspaceRoot}/nrf52.svd",
|
||||||
|
@ -58,7 +59,25 @@
|
||||||
"interface/stlink.cfg",
|
"interface/stlink.cfg",
|
||||||
"target/nrf52.cfg"
|
"target/nrf52.cfg"
|
||||||
],
|
],
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"name": "Debug - Openocd Devcontainer",
|
||||||
|
"type": "cortex-debug",
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"executable": "${command:cmake.launchTargetPath}",
|
||||||
|
"request": "launch",
|
||||||
|
"servertype": "external",
|
||||||
|
// FIXME: This is hardcoded. I have no idea how to use the values set in build.sh here
|
||||||
|
"gdbPath": "/opt/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gdb",
|
||||||
|
// Connect to an already running OpenOCD instance
|
||||||
|
"gdbTarget": "host.docker.internal:3333",
|
||||||
|
"svdFile": "${workspaceRoot}/nrf52.svd",
|
||||||
|
"runToEntryPoint": "main",
|
||||||
|
// Work around for stopping at main on restart
|
||||||
|
"postRestartCommands": [
|
||||||
|
"break main",
|
||||||
|
"continue"
|
||||||
|
]
|
||||||
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
15
.vscode/settings.json
vendored
15
.vscode/settings.json
vendored
|
@ -1,9 +1,20 @@
|
||||||
{
|
{
|
||||||
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
|
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
|
||||||
"cmake.configureArgs": [
|
"cmake.configureArgs": [
|
||||||
"-DARM_NONE_EABI_TOOLCHAIN_PATH=${env:ARM_NONE_EABI_TOOLCHAIN_PATH}",
|
"-DARM_NONE_EABI_TOOLCHAIN_PATH=${env:TOOLS_DIR}/${env:GCC_ARM_PATH}",
|
||||||
"-DNRF5_SDK_PATH=${env:NRF5_SDK_PATH}",
|
"-DNRF5_SDK_PATH=${env:TOOLS_DIR}/${env:NRF_SDK_VER}",
|
||||||
],
|
],
|
||||||
|
"cmake.statusbar.advanced": {
|
||||||
|
"launch": {
|
||||||
|
"visibility": "hidden"
|
||||||
|
},
|
||||||
|
"launchTarget": {
|
||||||
|
"visibility": "hidden"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"visibility": "hidden"
|
||||||
|
}
|
||||||
|
},
|
||||||
"cmake.generator": "Unix Makefiles",
|
"cmake.generator": "Unix Makefiles",
|
||||||
"clang-tidy.buildPath": "build/compile_commands.json",
|
"clang-tidy.buildPath": "build/compile_commands.json",
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
|
|
22
.vscode/tasks.json
vendored
22
.vscode/tasks.json
vendored
|
@ -1,20 +1,6 @@
|
||||||
{
|
{
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"tasks": [
|
"tasks": [
|
||||||
{
|
|
||||||
"label": "create openocd build",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "/opt/create_build_openocd.sh",
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": true
|
|
||||||
},
|
|
||||||
"presentation": {
|
|
||||||
"reveal": "always",
|
|
||||||
"panel": "shared"
|
|
||||||
},
|
|
||||||
"problemMatcher": []
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"label": "update submodules",
|
"label": "update submodules",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
|
@ -31,14 +17,6 @@
|
||||||
"panel": "shared"
|
"panel": "shared"
|
||||||
},
|
},
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "BuildInit",
|
|
||||||
"dependsOn": [
|
|
||||||
"update submodules",
|
|
||||||
"create openocd build"
|
|
||||||
],
|
|
||||||
"problemMatcher": []
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -32,7 +32,7 @@ The .devcontainer folder contains the configuration and scripts for using a Dock
|
||||||
|
|
||||||
Using the [Remote-Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension is recommended. It will handle configuring the Docker virtual machine and setting everything up.
|
Using the [Remote-Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension is recommended. It will handle configuring the Docker virtual machine and setting everything up.
|
||||||
|
|
||||||
More documentation is available in the [readme in .devcontainer](../.devcontainer/README.md)
|
More documentation is available in the [readme in .devcontainer](usingDevcontainers.md)
|
||||||
|
|
||||||
### DevContainer on Ubuntu
|
### DevContainer on Ubuntu
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,13 @@ RUN apt-get update -qq \
|
||||||
libpangocairo-1.0-0 \
|
libpangocairo-1.0-0 \
|
||||||
&& rm -rf /var/cache/apt/* /var/lib/apt/lists/*;
|
&& rm -rf /var/cache/apt/* /var/lib/apt/lists/*;
|
||||||
|
|
||||||
|
# Add the necessary apt-gets for the devcontainer
|
||||||
|
RUN apt-get update -qq \
|
||||||
|
&& apt-get install -y \
|
||||||
|
clang-format-14 \
|
||||||
|
clang-tidy \
|
||||||
|
libncurses5
|
||||||
|
|
||||||
# Git needed for PROJECT_GIT_COMMIT_HASH variable setting
|
# Git needed for PROJECT_GIT_COMMIT_HASH variable setting
|
||||||
|
|
||||||
RUN pip3 install adafruit-nrfutil
|
RUN pip3 install adafruit-nrfutil
|
||||||
|
@ -55,5 +62,8 @@ RUN bash -c "source /opt/build.sh; GetNrfSdk;"
|
||||||
# McuBoot
|
# McuBoot
|
||||||
RUN bash -c "source /opt/build.sh; GetMcuBoot;"
|
RUN bash -c "source /opt/build.sh; GetMcuBoot;"
|
||||||
|
|
||||||
|
# Add the infinitime user for connecting devcontainer
|
||||||
|
RUN adduser infinitime
|
||||||
|
|
||||||
ENV SOURCES_DIR /sources
|
ENV SOURCES_DIR /sources
|
||||||
CMD ["/opt/build.sh"]
|
CMD ["/opt/build.sh"]
|
||||||
|
|
Loading…
Reference in a new issue