Skip to content

Repository files navigation

brodo

This project is a game engine for Windows.

Build

cmake --preset vs
cmake --build --preset vs-debug

Use vs-release instead of vs-debug for a Release build.

The engine static library owns the Windows entry point and engine implementation. The sandbox executable supplies the application implementation.

Development setup

Install pre-commit and enable the repository hooks:

python -m pip install pre-commit
pre-commit install

The clang-format hook formats staged C and C++ files automatically. If it changes a file, review and stage the result before committing again.

To format every first-party C and C++ file manually:

pre-commit run clang-format --all-files

Test

Tests are enabled by default through CTest and use GoogleTest.

cmake --build --preset vs-debug
ctest --preset vs-debug

Configure with -DBUILD_TESTING=OFF when tests and GoogleTest are not needed.

Static analysis

The lint preset requires LLVM 22, including clang-cl and clang-tidy, and Ninja in PATH. It analyzes the first-party engine, sandbox, and tests targets while compiling them.

cmake --preset lint
cmake --build --preset lint --parallel
ctest --preset lint

Clang-tidy warnings fail the lint build. Prefer fixing the code or updating the shared .clang-tidy policy. When a diagnostic cannot be avoided at an API boundary, use a narrow suppression that names the check, for example NOLINT(check-name).

Automatic fixes are intentionally not applied by CI. Developers may run clang-tidy with --fix locally, then review the diff and run the build and tests before committing.

Formatting

The shared .clang-format policy is based on the Microsoft style and uses clang-format 22.1.5. Pre-commit applies formatting automatically to staged files, while CI checks all first-party C and C++ files without modifying them.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages