/embedded-devcontainer

Mirror from: amp-devcontainer is a fully loaded devcontainer useable for (embedded) C++ development

Primary LanguageDockerfileMIT LicenseMIT

embedded-devcontainer

Linting & Formatting Build & Push

NOTE

This repo is a fork of https://github.com/philips-software/amp-devcontainer with custom changes!

Overview

This repository contains a devcontainer tailored towards modern (embedded) C++ development.

State

This repository is under active development; see pulse for more details;

Description

The embedded-devcontainer built from this repository contains compilers and tools to facilitate modern (embedded) C++ development. The embedded-devcontainer includes support for host- and cross-compilation using gcc, arm-gcc and clang compilers. Next to the compilers there is support for code-coverage measurement, mutation testing (using mull), fuzzing (using libfuzzer) and static analysis (clang-format, clang-tidy, clangd, include-what-you-use). The default build system is set up to use CMake, Ninja and CCache.

Build & Test

The container can be built and tested locally by importing this repository in VS Code with the Dev Containers (ms-vscode-remote.remote-containers) plug-in installed. As a prerequisite Docker needs to be installed on the host system. As an alternative a GitHub Codespace can be started.

A test task is available to run the included bats tests. Choose Tasks: Run Task from the command pallette and choose Run Tests.

Usage

The resulting container can be used in a .devcontainer folder. While the example uses the latest tag, it is recommended to pin to a specific version. Or better yet, a specific SHA.

.devcontainer/devcontainer.json

{
    "image": "gabrielfrasantos/embedded-devcontainer:latest"
}

Community

This project uses the CODE_OF_CONDUCT to define expected conduct in our community. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project CODEOWNER

Changelog

See CHANGELOG for more info on what's been changed.

Contributing

See CONTRIBUTING

Licenses

See LICENSE