diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..2766e58 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,19 @@ +// .devcontainer/devcontainer.json +{ + "name": "ModernCppStarter", + "context": "..", + "dockerFile": "../Dockerfile", + "customizations": { + "vscode": { + "settings": { + "C_Cpp.default.compilerPath": "/usr/bin/clang++", + "cmake.generator": "Ninja" + }, + "extensions": [ + "ms-vscode.cmake-tools", + "ms-vscode.cpptools", + "twxs.cmake" + ] + } + } +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0afc8d8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +# Use official Ubuntu image +FROM ubuntu:22.04 + +# Install dependencies +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y \ + build-essential \ + cmake \ + ninja-build \ + git \ + curl \ + gdb \ + lldb \ + python3 \ + python3-pip \ + python3-jinja2 \ + clang \ + clang-tidy \ + lcov \ + doxygen \ + meson \ + libpsl-dev \ + sudo \ + pkg-config \ + && apt-get clean + +RUN pip3 install clang-format==14.0.6 cmake_format==0.6.11 pyyaml + +# Load shell. +CMD ["/bin/bash"] diff --git a/README.md b/README.md index 46b6226..18354a7 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,10 @@ Additional arguments can be passed to the analyzers by setting the `CLANG_TIDY_A Ccache can be enabled by configuring with `-DUSE_CCACHE=`. +#### Devcontainer + +The project includes a dockerfile along with a devcontainer file which allows for development in a docker container. Open the project folder in VS Code and you should be prompted to reopen the project in a container. + ## FAQ > Can I use this for header-only libraries?