diff options
| -rw-r--r-- | doc/CONTRIBUTING.md | 29 | ||||
| -rwxr-xr-x | scripts/check_all.sh | 15 |
2 files changed, 40 insertions, 4 deletions
diff --git a/doc/CONTRIBUTING.md b/doc/CONTRIBUTING.md index 7d206a5..f41d90e 100644 --- a/doc/CONTRIBUTING.md +++ b/doc/CONTRIBUTING.md @@ -8,10 +8,33 @@ This document outlines the conventions to follow when contributing to this proje Before preparing or proposing a commit, you **must** perform the following verifications to prevent regressions: +**Automated Verification (Recommended):** +```bash +./scripts/check_all.sh +``` +This script automatically: +- Builds with tests and tools enabled +- Runs the full test suite (26 tests) +- Verifies all tools compile (spectool, specview, specplay) +- Cross-compiles for Windows (if mingw-w64 is installed) + +**Manual Verification:** + 1. **MacOS / Linux (Native)**: - * Build the project (debug or release). - * Run the entire test suite (`ctest`). - * Ensure all tests pass. + * Build the project with tests and tools enabled: + ```bash + cmake -S . -B build -DDEMO_BUILD_TESTS=ON -DDEMO_BUILD_TOOLS=ON + cmake --build build -j8 + ``` + * Run the entire test suite: + ```bash + cd build && ctest --output-on-failure + ``` + * Verify tools compile: + ```bash + cmake --build build --target spectool specview specplay + ``` + * Ensure all tests pass and all tools build successfully. 2. **Windows (Cross-Compilation)**: * If `mingw-w64` is installed on your system, you **must** also verify the Windows build. diff --git a/scripts/check_all.sh b/scripts/check_all.sh index 91d55c4..113d3f0 100755 --- a/scripts/check_all.sh +++ b/scripts/check_all.sh @@ -1,13 +1,26 @@ #!/bin/bash # This script builds and tests all supported platform targets to ensure # stability before a major commit. +# +# What it verifies: +# 1. Native build (macOS/Linux) with all tests and tools +# 2. All 26 tests pass +# 3. All tools compile (spectool, specview, specplay) +# 4. Windows cross-compilation (if mingw-w64 available) +# +# Usage: ./scripts/check_all.sh set -e echo "--- Running Native Build & Tests ---" -cmake -S . -B build -DDEMO_BUILD_TESTS=ON +echo "Configuring with all options enabled (tests + tools)..." +cmake -S . -B build -DDEMO_BUILD_TESTS=ON -DDEMO_BUILD_TOOLS=ON +echo "Building all targets (demo, tests, and tools)..." cmake --build build -j8 +echo "Running test suite..." (cd build && ctest --output-on-failure) +echo "Verifying tools compile..." +cmake --build build --target spectool specview specplay -j8 echo "" echo "--- Running Windows Cross-Compilation Build ---" |
