-
Notifications
You must be signed in to change notification settings - Fork 0
Building and Setup
| Tool | Version | Notes |
|---|---|---|
| CMake | >= 3.24 | Ninja generator is used |
| Clang | >= 17 | CI uses LLVM 22; project targets C++20 |
| Conan | 2.x | Dependency management |
| Ninja | any recent | Pulled in by CMake preset |
| Git | any recent | Fetches Tempify at configure time (unless -DTEMPIFY_SOURCE_DIR= is set) |
| Python pipx | optional | Used in CI for Conan, gcovr, cmakelang |
Optional but recommended:
-
ccache or sccache for faster rebuilds (
BUILD_CACHE=ONby default) - clang-format, clang-tidy, cmake-format, cppcheck for local QA
-
ReqPack (
rqp) when yourbuild.luausesreqpack { ... }— see ReqPack Declaration
git clone https://github.com/Coditary/Beez.git
cd Beez
make setup CONAN_PROFILE=conan/profiles/clang-releasePlain make setup uses CONAN_PROFILE=clang-release (profile name in your Conan home). Prefer the repo-local profile path above unless you already have a matching profile installed.
make setup runs:
-
conan installintobuild/with the Conan profile fromCONAN_PROFILE - CMake configure with preset
conan-releaseorconan-debug(fromBUILD_TYPE) and tests enabled
Default compiler environment variables:
export CC=clang
export CXX=clang++| Make target | Purpose |
|---|---|
build |
Release configure + compile |
debug |
Debug configure + compile |
test |
Run CTest (BUILD_TYPE=Release by default) |
run |
Run the beez binary (make run ARGS="--help") |
clean |
Remove build/
|
all |
Full QA pipeline (build, test, format-check, lint, analyze, security, coverage, sanitize, fuzzer-smoke) |
help |
List all Make targets |
Binary path after release build:
build/build/Release/bin/beez
| Target | Configure preset | Use case |
|---|---|---|
setup-debug / debug
|
conan-debug |
Debugging, breakpoints |
setup-coverage |
Debug + BUILD_COVERAGE=ON
|
Coverage reports |
setup-sanitize |
Debug + ASan/UBSan | Memory and UB checks |
setup-fuzzer |
Debug + BUILD_FUZZER=ON
|
Lua DSL fuzz target |
make debug
make test BUILD_TYPE=Debug
make sanitizemake build
make install-beez # symlink to ~/.local/bin/beez
make install-beez-completion # add shell completion to ~/.bashrc / ~/.zshrc
make uninstall-beez # remove symlinkOverride install location:
make install-beez BEEZ_INSTALL_DIR=/path/to/binShipped profiles live under conan/profiles/:
clang-releaseclang-debug
CI generates a profile dynamically from the installed Clang version (scripts/ci-conan-profile.sh).
Override for local machines:
make setup CONAN_PROFILE=conan/profiles/clang-debug BUILD_TYPE=DebugMain runtime and test libraries:
| Package | Role |
|---|---|
| lua | Lua 5.4 embedding for the DSL |
| cli11 | CLI parsing |
| spdlog | Logging backend |
| onetbb | Parallel execution |
| zlib | Cache compression |
| gtest | Unit and integration tests |
sol2 (Lua/C++ bindings) is fetched via CMake FetchContent, not Conan.
The Beez repository includes its own root build.lua for maintainer workflows (beez build, beez quality, beez all, etc.). That pipeline is optional for contributors; the Makefile targets above are the canonical entry points documented in CI.
- Testing - running and adding tests
-
Code Quality - lint, format,
make all - Repository Layout - where source lives
Quick Reference · Glossary · FAQ
- Fundamentals
- Core Concepts
- Project Layout
- First Pipeline
- Phases and Scopes
- How Phases and Scopes Work
- Selecting with Phases and Scopes
- Designing Phases and Scopes
- Parallel Execution and Dependencies
- Configuration
- Configuration Overview
- Global User Config
- Project Config
- Environment Variables
- Performance Settings
- Cache Settings
- Config Reference
- CLI
- CLI Overview
- Running Targets
- Filtering by Phase
- Running a Single Step
- Listing Entities
- Output and Logging Flags
- Cache and Maintenance Flags
- Meta and Utility Commands
-
Project Scaffolding —
beez --init(embedded Tempify) - CLI Flag Reference
- Lua DSL
- DSL Overview
- Plugin System — Plugins, Config DSL, Standard-Workflows
- Step Declaration
- Task Declaration
- Workflow Declaration
- Order Declaration
- Configure Step
- ReqPack Declaration
- Beez API
- Step Context
- DSL Patterns
- Caching
- Caching Overview
- Step Cache
- Success Cache
- Glob Metadata Cache
- Artifact Patterns
- Cache Keys and Invalidation
- Cache Storage and Maintenance
- Caching Troubleshooting
- UI and Output
- Output Modes
- Progress and Animation
- Colors and Themes
- Run Summaries
- Logging and Log Files
- Development and Contribution
- Building and Setup
- Repository Layout
- Testing
- Code Quality
- Feature Development Workflow
- Submitting Changes