chore: remove skeleton build mode and stub #ifdef scaffolding
Drop the M0 no-deps skeleton preset and all VOICECAT_HAS_NET/AUDIO/OPUS/NS guards that it required. Every subsystem is fully implemented; the stub #else paths were dead code that added noise to every header and source file. - CMakePresets.json: remove skeleton configure/build/test entries - CMakeLists.txt (root/core/tests): remove VOICECAT_USE_VCPKG_DEPS option and guards; all targets now build unconditionally - 17 C++ source files: unwrap HAS_* guards, delete stub #else blocks - apm_processor.cpp: delete ApmPassthrough no-op class; create() always returns RnnoiseProcessor - 18 test files: remove HAS_* guards and stub int main() skip bodies - docs/building.md: remove skeleton from preset table and prose VOICECAT_HAS_LOOPBACK (Windows WASAPI loopback platform gate) unchanged. 29/29 ctest green. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -24,8 +24,7 @@ and *how to drive the binaries by hand*.
|
||||
| Preset | Binary dir | Deps | Build type | Server | Tools | Tests | Strip | Platform | What it's for |
|
||||
|--------|-----------|------|------------|--------|-------|-------|-------|----------|---------------|
|
||||
| `vcpkg-common` | — | vcpkg | — | — | — | — | — | all | Hidden base. Sets the vcpkg toolchain wrapper ([`cmake/voicecat-toolchain.cmake`](../cmake/voicecat-toolchain.cmake)) which auto-resolves the triplet from the host platform. Not used directly. |
|
||||
| `skeleton` | `build/skeleton` | none | Debug | ON | ON | ON | no | all | The M0 skeleton. Compiles with just a C++20 compiler — no `VCPKG_ROOT` needed. Subsystems are stubs (`VC_ERR_NOT_IMPLEMENTED`). Good for "does the repo even build" sanity checks. Runs 2 tests (smoke + frame_codec). |
|
||||
| `dev` | `build/dev` | vcpkg | Debug | ON | ON | ON | no | all | **The one you actually want.** Day-to-day development: real protocol, crypto, voice, server — everything. Builds server + tools + tests (21 tests). Works on Windows, Linux, and macOS (triplet auto-resolved). |
|
||||
| `dev` | `build/dev` | vcpkg | Debug | ON | ON | ON | no | all | **The one you actually want.** Day-to-day development: real protocol, crypto, voice, server — everything. Builds server + tools + tests (29 tests). Works on Windows, Linux, and macOS (triplet auto-resolved). |
|
||||
| `release` | `build/release` | vcpkg | Release | ON | ON | ON | no | all | Optimized build with the full test suite. Use to run tests against optimized code, profile, or catch optimizer-sensitive bugs. Symbols kept (not stripped) so stack traces and profiling remain useful. |
|
||||
| `server-release` | `build/server-release` | vcpkg | Release | ON | ON | OFF | **yes** | all | Production-shaped build for deployment. Optimized + stripped binaries (`-s`), no tests. This is what you'd ship/run — see [docs/deployment.md](deployment.md). |
|
||||
| `windows-client` | `build/windows-client` | vcpkg | Release | OFF | OFF | OFF | no | Windows | Produces a redistributable `voicecat.dll` for the C# WinForms client (M4). Static MinGW runtime — no `libgcc_s_seh-1.dll` etc. See [clients/windows/README.md](../clients/windows/README.md). |
|
||||
@@ -33,10 +32,9 @@ and *how to drive the binaries by hand*.
|
||||
| `apple-ios` | `build/apple-ios` | vcpkg | Release | OFF | OFF | OFF | no | macOS→iOS | **Scaffolding** — cross-compiled static `libvoicecat.a` for iOS device (`arm64-ios`). One XCFramework slice. Not yet CI-validated. |
|
||||
| `apple-ios-sim` | `build/apple-ios-sim` | vcpkg | Release | OFF | OFF | OFF | no | macOS→iOS sim | **Scaffolding** — cross-compiled static `libvoicecat.a` for iOS simulator (`arm64-ios-sim`). One XCFramework slice. Not yet CI-validated. |
|
||||
|
||||
So in practice there are three presets that matter for day-to-day work:
|
||||
So in practice there are two presets that matter for day-to-day work:
|
||||
- **`dev`** — everything: real protocol, real voice, real manual testing. This is the loop you run constantly.
|
||||
- **`release`** — same suite, optimized. Run it when you want to check optimized behavior or profile.
|
||||
- **`skeleton`** — fast no-deps build to confirm the stub path still compiles (CI smoke check).
|
||||
|
||||
The rest are purpose-specific: `server-release` for deployment, `windows-client` for the DLL,
|
||||
`apple-*` for Apple platform slices.
|
||||
@@ -63,9 +61,9 @@ The preset set was cleaned up on 2026-06-18 (see `PROGRESS.md`). The old names m
|
||||
|
||||
| Old name | New name | Notes |
|
||||
|----------|----------|-------|
|
||||
| `dev` | `skeleton` | Renamed to reflect its actual purpose (no-deps stub smoke check). |
|
||||
| `m1-dev` | `dev` | Renamed — the project is past M5, so milestone-named presets were misleading. This is now the default development preset. |
|
||||
| `m2-dev` | *(dropped)* | Was cache-identical to `m1-dev` (same flags, same triplet, only the binary dir differed). Removed. |
|
||||
| `skeleton` | *(dropped)* | Removed — was a no-deps stub build mode used during M0. All subsystems are now fully implemented; the stub `#ifdef` scaffolding has been deleted. |
|
||||
| `server-release` | `server-release` | Unchanged name; now stripped (`-s`) and auto-triplet. |
|
||||
| *(new)* | `release` | New: optimized build with tests on, symbols kept. |
|
||||
| `windows-client` | `windows-client` | Unchanged name; triplet now auto-resolved. |
|
||||
@@ -77,7 +75,7 @@ was run.
|
||||
|
||||
## 2. One-time setup for the real-deps presets
|
||||
|
||||
`dev`, `release`, `server-release`, `windows-client`, and `apple-*` all need `VCPKG_ROOT`
|
||||
All presets except `vcpkg-common` need `VCPKG_ROOT`
|
||||
pointing at a bootstrapped vcpkg checkout:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user