Skip to content

Commit 8a3d179

Browse files
author
Mustafa Kemal GILOR
committed
Updated README.md:
- Added docker badges - Added tool list - Added supported platforms Removed packages: - doxygen-doc - clangd Added packages: - clangd-10
1 parent 51b4999 commit 8a3d179

File tree

2 files changed

+146
-3
lines changed

2 files changed

+146
-3
lines changed

README.md

+144-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,145 @@
11
# docker-cpp-devenv
2-
C++ development environment docker container
2+
![GitHub](https://img.shields.io/github/license/mustafakemalgilor/docker-cpp-devenv) ![Docker Cloud Automated build](https://img.shields.io/docker/cloud/automated/mustafagilor/cpp-devenv) ![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/mustafagilor/cpp-devenv) ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/mustafagilor/cpp-devenv/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/mustafagilor/cpp-devenv) ![Docker Image Version (latest semver)](https://img.shields.io/docker/v/mustafagilor/cpp-devenv?sort=semver)
3+
4+
Ready-to-use C++ development environment container consist of fully open-source, free software.
5+
## OS
6+
7+
Image is based on `debian:sid` image, since it's bleeding edge and the repositories have the most recent released tool versions available.
8+
9+
10+
11+
## VSCode remote-containers extension support
12+
13+
This image is compatible with Visual Studio Code's Remote-Containers extension. You have several options to use it.
14+
15+
### 1: Use as a base image to .devcontainer/Dockerfile
16+
17+
```dockerfile
18+
FROM mustafagilor:cpp-devenv
19+
```
20+
21+
### 2: Use as main dockerfile in .devcontainer/docker-compose.yml
22+
23+
```yaml
24+
version: '3'
25+
services:
26+
service-name:
27+
image: "mustafagilor:cpp-devenv"
28+
```
29+
30+
31+
32+
### GitLab CI support
33+
34+
This image is tested with GitLab CI, and currently used for several projects in production.
35+
36+
```yaml
37+
image: mustafagilor/cpp-devenv:latest
38+
```
39+
40+
41+
42+
## Tools included
43+
44+
### Toolchain
45+
46+
| Debian package name | Description | Version | Available in |
47+
| :-----------------: | :----------------------------------------------------------: | :-----------: | :----------: |
48+
| gcc-10 | GNU C Compiler | >= 10.1.0-1 | >= v1.0 |
49+
| g++-10 | GNU C++ Compiler | >= 10.1.0-1 | >= v1.0 |
50+
| libstdc++-10-dev | GNU Standard C++ Library v3 | >= 10.1.0-1 | >= v1.0 |
51+
| libc6-dev | GNU Standard C Library | >= 2.30-7 | >= v1.0 |
52+
| gdb | GNU Debugger | >= 9.1-3 | >= v1.0 |
53+
| llvm-10 | LLVM Toolchain, Version 10 | >= 1:10.0.0-4 | >= v1.0 |
54+
| lldb-10 | LLVM Debugger, Version 10 | >= 1:10.0.0-4 | >= v1.0 |
55+
| clang-10 | LLVM C, C++, Objective C and Objective C++ Frontend, Version 10s | >= 1:10.0.0-4 | >= v1.0 |
56+
| clangd-10 | Clang Language Server | >= 1:10.0.0-4 | >= v1.0 |
57+
| libc++-10-dev | LLVM C++ Standard Library | >= 1:10.0.0-4 | >= v1.0 |
58+
59+
### Build tools
60+
61+
| Debian package name | Description | Version | Available in |
62+
| :-----------------: | :-------------------------------------------------: | :-----------: | :----------: |
63+
| make | GNU Make | >= 4.2.1-2 | >= v1.0 |
64+
| ninja-build | Ninja Build System | >= 1.10.0-1 | >= v1.0 |
65+
| autoconf | Automatic Configure Script Builder | >= 2.69-11.1 | >= v1.0 |
66+
| automake | Automatic Makefile Generator | >= 1:1.16.2-1 | >= v1.0 |
67+
| libtool | GNU libtool | >= 2.4.6-14 | >= v1.0 |
68+
| m4 | GNU m4 macro processor (required by autoconf) | >= 1.4.18-4 | >= v1.0 |
69+
| cmake | Cross platform build system generator | >= 3.16.3-3 | >= v1.0 |
70+
| ccache | Compiler cache for fast recompilation of C/C++ code | >= 3.7.9-1 | >= v1.0 |
71+
72+
### Version control systems
73+
74+
| Debian package name | Description | Version | Available in |
75+
| :-----------------: | :---------------------------------------------------: | :-----------: | :----------: |
76+
| git | fast, scalable, distributed revision control system | >= 1:2.26.2-1 | >= v1.0 |
77+
| git-flow | Git extension to provide a high-level branching model | >= 1.12.3-1 | >= v1.0 |
78+
79+
80+
81+
### Script Interpreters
82+
83+
| Debian package name | Description | Version | Available in |
84+
| :-----------------: | :-----------------------------------: | :--------: | :----------: |
85+
| python3 | Python scripting language interpreter | >= 3.8.2-3 | >= v1.0 |
86+
87+
### Package managers
88+
89+
| Debian package name | Description | Version | Available in |
90+
| :-----------------: | :----------------------: | :-------: | :----------: |
91+
| pip3 | Python package installer | >= 20.1-2 | >= v1.0 |
92+
| conan (via pip3) | C++ Package Manager | >= 1.25.0 | >= v1.0 |
93+
94+
### Code linter/formatter & static analyzers
95+
96+
| Debian package name | Description | Version | Available in |
97+
| :-----------------: | :-----------------------------------------: | :-----------: | :----------: |
98+
| clang-format-10 | Tool to format C/C++/Obj-C code | >= 1:10.0.0-4 | >= v1.0 |
99+
| clang-tidy-10 | clang-based C++ linter tool | >= 1:10.0.0-4 | >= v1.0 |
100+
| iwyu | Analyze #includes in C and C++ source files | >= 8.0-4 | >= v1.0 |
101+
| cppcheck | tool for static C/C++ code analysis (CLI) | >= 1.90-4 | >= v1.0 |
102+
103+
### Tracing/diagnostics/analysis
104+
105+
| Debian package name | Description | Version | Available in |
106+
| :-----------------: | :----------------------------------------------------------: | :-----------: | :----------: |
107+
| valgrind | instrumentation framework for building dynamic analysis tools | >= 1:3.15.0-1 | >= v1.0 |
108+
109+
### Unit testing/mocking/benchmarking
110+
111+
| Debian package name | Description | Version | Available in |
112+
| :-----------------: | :-----------------------------------------------: | :---------: | :----------: |
113+
| libgtest-dev | Google's framework for writing C++ unit tests | >= 1.10.0-3 | >= v1.0 |
114+
| libgmock-dev | Google's framework for writing C++ mock code | >= 1.10.0-3 | >= v1.0 |
115+
| libbenchmark-dev | Microbenchmark support library, development files | >= 1.5.0-4 | >= v1.0 |
116+
117+
### Code coverage analysis
118+
119+
| Debian package name | Description | Version | Available in |
120+
| :-----------------: | :-------------------------------------------------------: | :-------: | :----------: |
121+
| lcov | Summarise Code coverage information from GCOV | >= 1.14-2 | >= v1.0 |
122+
| gcovr | Manages the compilation of coverage information from gcov | >= 4.2-1 | >= v1.0 |
123+
124+
### Documentation
125+
126+
| Debian package name | Description | Version | Available in |
127+
| :-----------------: | :----------------------------------------------------------: | :---------: | :----------: |
128+
| doxygen | Documentation system for C, C++, Java, Python and other languages | >= 1.8.17-1 | >= v1.0 |
129+
| doxygen-latex | Adds latex format support for doxygen document generation | >= 1.8.17-1 | >= v1.0 |
130+
| doxygen-doxyparse | multi-language source code parser based on Doxygen | >= 1.8.17-1 | >= v1.0 |
131+
| graphviz | rich set of graph drawing tools | >= 2.42.2-4 | >= v1.0 |
132+
133+
### Misc
134+
135+
| Debian package name | Description | Version | Available in |
136+
| :-----------------: | :-------------------------------------------: | :-----------: | :----------: |
137+
| iproute2 | networking and traffic control tools | >= 5.6.0-1 | >= v1.0 |
138+
| procps | /proc file system utilities | >= 2:3.3.16-4 | >= v1.0 |
139+
| lsb-release | Linux Standard Base version reporting utility | >= 11.1.0 | >= v1.0 |
140+
141+
142+
143+
## License
144+
145+
This project is licensed under MIT license. See LICENSE file for details.

bootstrap.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ apt_package_list=(
3737
# Install GNU GCC Toolchain, version 10
3838
gcc-10 g++-10 gdb libstdc++-10-dev libc6-dev
3939
# Install LLVM Toolchain, version 10
40-
llvm-10 lldb-10 clang-10 clangd libc++-10-dev
40+
llvm-10 lldb-10 clang-10 clangd-10 libc++-10-dev
4141
# Install build generator & dependency resolution and build accelarator tools
4242
make ninja-build autoconf automake libtool m4 cmake ccache
4343
# Install python & pip
@@ -51,7 +51,7 @@ apt_package_list=(
5151
# Install code coverage
5252
lcov gcovr
5353
# Documentation & graphing
54-
doxygen doxygen-doc doxygen-latex doxygen-doxyparse graphviz
54+
doxygen doxygen-latex doxygen-doxyparse graphviz
5555
# User-specified packages
5656
${apt_extra_package_list[@]}
5757
)

0 commit comments

Comments
 (0)