blob: 80a508c23d30c56bf311af54e21b331086162ff5 [file] [edit]
{
"name": "CMake",
"build": {
"dockerfile": "Dockerfile"
},
"remoteUser": "cmake-dev",
// Name the workspace path explicitly rather than take the default a tool
// picks for itself, so that the path is the same under every tool and in
// the CI job of `.gitlab/ci/devcontainer-run.sh`, which mounts the source
// tree itself. `create_user.sh` creates the directory and gives it to the
// container user.
"workspaceFolder": "/home/cmake-dev/workspace",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/cmake-dev/workspace,type=bind",
"containerEnv": {
"GITLAB_HOST": "gitlab.kitware.com"
},
"remoteEnv": {
"GITLAB_CLIENT_ID": "${localEnv:GITLAB_CLIENT_ID}",
"GITLAB_TOKEN": "${localEnv:GITLAB_TOKEN}"
},
"mounts": [
{
"type": "volume",
"source": "cmake-dev-ccache",
"target": "/home/cmake-dev/.cache/ccache"
},
{
"type": "volume",
"source": "cmake-dev-glab-cli",
"target": "/home/cmake-dev/.config/glab-cli"
}
],
// Run the optional local customization hooks. Each phase is a no-op unless
// the developer has written that hook. See `Help/dev/devcontainer.rst`.
//
// Each is written as a named entry, the form that runs entries concurrently
// and says which one is speaking. Only `postAttachCommand` has two, but
// naming the hook everywhere keeps its output labeled the same way, and
// leaves room for a second entry beside it.
//
// `initializeCommand` runs on the host, so unlike the others it needs a
// POSIX shell there; naming `sh` explicitly, in the form that starts no
// shell of its own, is what makes that work outside a Unix host.
"initializeCommand": {
"hooks": [
"sh",
"${localWorkspaceFolder}/.devcontainer/run-hooks.sh",
"initialize"
]
},
"postCreateCommand": {
"hooks": [
"${containerWorkspaceFolder}/.devcontainer/run-hooks.sh",
"post-create"
]
},
"postStartCommand": {
"hooks": [
"${containerWorkspaceFolder}/.devcontainer/run-hooks.sh",
"post-start"
]
},
"postAttachCommand": {
"setup-status": ["${containerWorkspaceFolder}/.devcontainer/setup-status.sh"],
"hooks": [
"${containerWorkspaceFolder}/.devcontainer/run-hooks.sh",
"post-attach"
]
},
"customizations": {
"vscode": {
"extensions": [
"EditorConfig.EditorConfig",
"ms-vscode.cmake-tools",
"ms-vscode.cpptools",
"lextudio.restructuredtext",
"llvm-vs-code-extensions.vscode-clangd"
],
"settings": {
"C_Cpp.clang_format_path": "/usr/bin/clang-format-18",
"cmake.configureOnOpen": false
}
}
}
}