C++ workspace template with workflow automation.
In order to run your own copy of the project one must fulfill the following requirements.
- 🏆 Debian based Linux
- see help for available options:
# always inspect scripts before running them on your machine bash tools/shell/install.sh ?
- install all dependencies required to work with the project:
# always inspect scripts before running them on your machine bash tools/shell/install.sh all
- see help for available options:
- 🆗 macOS
- see help for available options:
# always inspect scripts before running them on your machine bash tools/shell/install.sh ?
- install all dependencies required to work with the project (some dependencies may be missing):
# always inspect scripts before running them on your machine bash tools/shell/install.sh all osx
- see help for available options:
- 🤷 Windows
- Install using one of the following approaches:
- MSVC (recommended): Download and install Visual Studio Community with C++ build tools
- MinGW: Install via MSYS2 or Chocolatey
- WSL2: Use Windows Subsystem for Linux and follow the Linux instructions
- Additionally, install CMake and Git for Windows.
- given that the dev environment is set up, the following commands should be used to install
shellcheckvia PowerShell;iwr -useb get.scoop.sh | iex scoop install shellcheck
- recommended shell: Git for Windows >
Git BASH; - configure Git to use LF as a carriage return
git config --global core.autocrlf false git config --global core.eol lf
- Install using one of the following approaches:
🏆 Visual Studio Code - recommended for all operating systems
Suggested extensions:
- C/C++ Extension Pack (Microsoft)
- CMake Tools (Microsoft)
- CMake (twxs)
🆗 Visual Studio - for Windows development
- Git
- Python or NodeJS
for conventional commits - Bash 5
for scripting - CMake
- A Build system (one of):
- A C++ compiler (one of):
Using commitizen cli is mandatory.
The commit message are validated during the premerge checks.
It is assumed that Node.js is installed.
Given the NodeJS is installed, and commitizen cli is installed as a global dependency, the following command should be used to initiate the commit process
git czAlternatively, given there are no conflicts with other projects that use the commitizen npm package, one could install commitizen globally via pypi like this
sudo pip3 install -U CommitizenUsing commitizen is mandatory.
The commit message are validated during the premerge checks.
After installing the package as a global utility using the following command
brew install commitizenone can use one of the following commands to initiate the commit process
cz commitor
cz crm -rf ./build/*
conan install . --build=missing
cmake --preset conan-release
cmake --build --preset conan-releaseor
rm -rf ./build/* ./CMakeUserPresets.json
conan install . --build=missing
cmake --preset conan-release
cmake --build --preset conan-release