summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/CONTRIBUTING.md29
-rwxr-xr-xscripts/check_all.sh15
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 ---"