Automated installation (recommended):
./scripts/prerequisites.sh.\scripts\prerequisites.ps1What gets installed:
- Clang 18+ (Linux/macOS) or Visual Studio 2022 Build Tools (Windows)
- CMake 3.20+
- Python 3.12+ with virtual environment
- SBOM tools: reuse, spdx-tools, ntia-conformance-checker
- Build essentials and platform-specific libraries
Manual installation: If you prefer manual setup, see README.md for detailed instructions.
source .venv/bin/activate.\.venv\Scripts\Activate.ps1./scripts/configure.sh --release
./scripts/build.sh
./scripts/test.sh.\scripts\configure.ps1 -Release
.\scripts\build.ps1
.\scripts\test.ps1Software Bill of Materials (SBOM) for supply chain security:
cmake --install build/linux-releasecmake --install build\windows-msvc-releaseThis generates:
wshell-sbom.spdx(SPDX tag-value format)wshell-sbom.spdx.json(JSON format, NTIA-compliant)
- Prerequisites Check: Verifies compiler, CMake, Python environment
- Configure: CMake sets up build with security hardening flags
- Auto-fetch: Downloads Google Test v1.14.0 and cmake-sbom if needed
- Build: Compiles with full security hardening (ASLR, DEP, CFG, etc.)
- Test: Runs 31+ unit tests
- SBOM: Generates software bill of materials (on install)
The project uses CMake FetchContent to automatically download:
- ✅ Google Test v1.14.0 - Unit testing framework
- ✅ cmake-sbom - SBOM generation tool
- ✅ Works out of the box
- ✅ No manual dependency installation
- ✅ Consistent test environment
# Linux/macOS
./build/linux-release/src/main/wshell
# Windows
.\build\windows-msvc-release\src\main\Release\wshell.exeBefore pushing to GitHub, run all validation steps:
# Linux/macOS - Complete validation
./scripts/clean.sh
./scripts/configure.sh --release
./scripts/build.sh
./scripts/test.sh
./scripts/fuzz.sh # Fuzz testing
./scripts/benchmark.sh # Performance benchmarks
cmake --install build/linux-release # SBOM generation# Windows - Complete validation
.\scripts\clean.ps1
.\scripts\configure.ps1 -Release
.\scripts\build.ps1
.\scripts\test.ps1
.\scripts\benchmark.ps1
cmake --install build\windows-msvc-releaseWhy? This ensures:
- No build failures in CI/CD
- All tests pass
- No performance regressions
- SBOM is valid
- Security checks complete
- Read AI_CODING_GUIDELINES.md
- Review Pre-Push Validation Requirements
- Explore Configuration System
- Run coverage tests:
./scripts/coverage.sh