C, Cmake and Raylib Boilerplate
This is a C project template with the following features:
- CMake build scripts for building libraries, applications, and tests.
- Integrated with Raylib.
- Integrated with Unity unit test framework.
- Integrated with FetchContent for library dependencies like Unity.
- Resource folder to include assets
- Updated and improved version of C-project-template
Compiling / Building
Installing Dependencies
Arch Linux
yay -Sy clang cmake lcov glfw libx11 libxcursor libxinerama libxrandr vulkan-headers xorg-server-devel xorg-xinput
Ubuntu
sudo apt-get install clang cmake lcov libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev
Usage
Setup
This will build cmake files and download dependencies
make setup
Build
# Debug build
make debug
# Release build
make release
Run Tests
This will build and run unity tests
make test
Code Coverage Checks
This will build and run unity tests and generate reports for coverage (depends on lcov)
make coverage
# This part is optional: Generates a html with more coverage details
genhtml build/coverage/coverage.info --output-directory build/coverage/out
Clean
This will delete generated files for debug and release
make clean
Run Binary
This will open an Raylib white window with the unlicense logo on it.
# Debug bin
./build/debug/bin/example_app
# Release bin
./build/release/bin/example_app
Directory Structure
./
├── .github
│ └── workflows -- Github workflows folder.
├── app -- Application source code
├── build
│ ├── cmake -- Cmake Finders for external compiled libs.
│ ├── debug -- Cmake debug build generated files.
│ │ ├── bin -- Application debug binaries.
│ │ └── resources -- Application resources assets symbolic link.
│ └── release -- Cmake release build generated files.
│ ├── bin -- Application release binaries.
│ └── resources -- Application resources assets symbolic link.
├── resources -- Application resources assets folder.
├── src -- Library source code and headers.
└── test -- Test source code.
└── unity -- Unity test framework source.
Dependencies
License
This is free and unencumbered software released into the public domain.
For more information, please refer to http://unlicense.org/