diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..3b7dc7b --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,36 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/docker-existing-dockerfile +{ + "name": "Existing Dockerfile", + "build": { + // Sets the run context to one level up instead of the .devcontainer folder. + "context": "..", + // Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename. + "dockerfile": "../Dockerfile" + }, + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Uncomment the next line to run commands after the container is created. + // "postCreateCommand": "cat /etc/os-release", + + // Configure tool-specific properties. + "customizations": { + "vscode": { + "extensions": ["ms-vscode.cpptools", + "matepek.vscode-catch2-test-adapter", + "streetsidesoftware.code-spell-checker", + "ryanluker.vscode-coverage-gutters", + "cschlosser.doxdocgen", + "asabil.meson", + "eamodio.gitlens"] + } + } + + // Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "devcontainer" +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2407e5c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM gcc:12 + +# Install build tools +RUN apt-get update && apt-get install -y python3 ninja-build python3-pip gdb graphviz git +RUN pip install meson gcovr +# The version of doxy in the Debian repos is too old to support concepts, so we grab the latest release and manually install +RUN wget https://www.doxygen.nl/files/doxygen-1.9.5.linux.bin.tar.gz && \ + tar -xzf doxygen-1.9.5.linux.bin.tar.gz && \ + cd doxygen-1.9.5 && \ + make install && \ + cd .. && \ + rm -r doxygen-1.9.5.linux.bin.tar.gz && \ + rm -r doxygen-1.9.5 + +WORKDIR /usr/src/app