From a5183c3dbf5a9df6cce2d6bcca187e419c05ab04 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Wed, 20 Aug 2025 11:23:26 -0400 Subject: [PATCH] Always use ninja --- design.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/design.md b/design.md index f33ccc5..535627c 100644 --- a/design.md +++ b/design.md @@ -8,10 +8,11 @@ WeaselDB is a high-performance write-side database component designed for system ### Build System - Use CMake with C++20 standard +- **Always use ninja to build** (preferred over make) - Primary build commands: - `mkdir -p build && cd build` - - `cmake .. -DCMAKE_BUILD_TYPE=Release` - - `ninja` or `make -j$(nproc)` + - `cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release` + - `ninja` ### Testing and Development Workflow - **Run all tests**: `ninja test` or `ctest` @@ -319,7 +320,7 @@ The modular design allows each component to be optimized independently while mai ### Build System Details - CMake generates gperf hash tables at build time -- Ninja is preferred over make for faster incremental builds +- **Always use ninja** - preferred over make for faster incremental builds - Release builds include debug symbols for profiling - All external dependencies except weaseljson are auto-fetched @@ -485,3 +486,9 @@ background_processor.submit([raw_conn]() { Server::releaseBackToServer(std::unique_ptr(raw_conn)); }); ``` + +## Development Notes + +- **Always use ninja to build** - faster and more reliable than make +- Build from project root: `mkdir -p build && cd build && cmake .. -G Ninja && ninja` +- For specific targets: `ninja ` (e.g., `ninja load_tester`)