Skip to content
Public template

About

C++ workspace template for terminal UIs and ollama clients, with automated CI/CD, conventional commits, and Linux-first development.

Topics

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

cpp-workspace

C++ workspace template with workflow automation.

Requirements

In order to run your own copy of the project one must fulfill the following requirements.

Supported operating systems

  • 🏆 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
  • 🆗 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
  • 🤷 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 shellcheck via 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
        

Integrated development environment

🏆 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

Core dependencies

Committing changes to the repo

Linux

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 cz

Alternatively, 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 Commitizen

OSX

Using 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 commitizen

one can use one of the following commands to initiate the commit process

cz commit

or

cz c

FAQ

Manual build

rm -rf ./build/*
conan install . --build=missing
cmake --preset conan-release
cmake --build --preset conan-release

or

rm -rf ./build/* ./CMakeUserPresets.json
conan install . --build=missing
cmake --preset conan-release
cmake --build --preset conan-release

About

C++ workspace template for terminal UIs and ollama clients, with automated CI/CD, conventional commits, and Linux-first development.

Topics

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages