infrastructure

CPP Toolbox

build_notifier

Every project here uses conan for package management, so you usually have to run the command cmake --build --preset conan-release multiple times. This notifier makes it easier by playing a success or fail sound when compilation finishes, so you can stop staring at the build process and continue working in the meantime.

sbpt

When subprojects use other subprojects, you usually have to hard-code includes to those locations, which differ based on file structure. This script was created to fix this issue.

cpp_file_generator

IDE's have a lot of features, but language servers are catching up. One feature that's nice but missing is simply creating new .cpp/.hpp pairs for a new class or file you want to make. This generator does so.

editor_configurations

When working with a cpp-toolbox project, there are usually four main things you want to do: build, run, debug the program, and use git. This repository facilitates these tasks simply for various editors. For example, to start Neovim with terminals opened (in buffers), run python scripts/editor_configurations/launch_nvim.py or from a running instance of nvim, :source scripts/editor_configurations/cpp_terminal_autostart.vim.

cpp_project_bootstrapper

Creating new cpp projects can be time-consuming, as setting up the required files takes time away from coding. In our context, we have to make multiple projects for testing purposes and creating MWE’s. This script helps manage that process quickly.

process_changes_in_submodules

When working on projects mainly composed of submodules, committing changes can be cumbersome because you must visit each submodule separately to commit them. This script simplifies the process by reducing the moving around and finding necessary changes.

cpp_tbx_submodule_adder

Adding submodules can be cumbersome. To see the available submodules, you’d typically look at the web interface, go to the project, copy the clone URL, and so on. This script provides a command-line interface to list and select submodules automatically.


edit this page