build(cmake): clean up presets, add release/apple presets, cross-platform triplets

Rationalize the preset set to match the project's actual state (past M5):
- Rename dev->skeleton (no-deps stub smoke), m1-dev->dev (default dev preset)
- Drop m2-dev (cache-identical to m1-dev)
- Add release preset (optimized + tests on, symbols kept)
- Strip server-release binaries (-s linker flag)
- Add apple-dev/apple-ios/apple-ios-sim scaffolding presets for XCFramework

Add cmake/voicecat-toolchain.cmake wrapper that auto-resolves the vcpkg
triplet from the host platform (x64-mingw-static/x64-linux/arm64-osx) so
the main presets work on Windows/Linux/macOS without per-OS variants.

Update all docs (building.md, CLAUDE.md, README.md, AGENTS.md, deployment.md,
tech-stack.md, client READMEs) and stale preset-name references in code
comments. No C++ behavior changes — the core was already portable.
This commit is contained in:
2026-06-18 03:16:01 +02:00
parent d397731db9
commit bcb7ae8ccb
23 changed files with 454 additions and 144 deletions

View File

@@ -4,8 +4,9 @@
* Design: docs/architecture.md (Net thread), docs/protocol.md §1 (framing).
* Implementation uses standalone Asio for sockets and timers.
*
* The real classes are compiled only when VOICECAT_HAS_NET is defined (m1-dev+).
* The dev-preset stub definitions below keep the skeleton build green.
* The real classes are compiled only when VOICECAT_HAS_NET is defined (dev/release/
* server-release — vcpkg deps on). The skeleton-preset stub definitions below keep the
* no-deps build green.
*/
#ifndef VOICECAT_NET_TRANSPORT_H
#define VOICECAT_NET_TRANSPORT_H

View File

@@ -7,7 +7,7 @@
* (they use the fixed binary header in voice.md §2).
*
* STATUS: real. Protobuf codegen is on (core/CMakeLists.txt) for VOICECAT_HAS_NET builds
* (`m1-dev`/`server-release`); FrameCodec below is fully implemented and used by both the
* (`dev`/`release`/`server-release`); FrameCodec below is fully implemented and used by both the
* client (net/transport.h) and the server (conn_session.cpp). See protocol/envelope.h for the
* Envelope-level encode/decode that sits on top of this.
*/

View File

@@ -3,8 +3,8 @@
*
* Lifecycle (create/destroy) and trivial accessors are always real. Everything else below
* just delegates to vc_client (core/src/core/client.cpp): under VOICECAT_HAS_NET
* (`m1-dev`/`server-release` — see docs/building.md) that's the real M1M3 implementation;
* under the no-deps `dev` preset, client.cpp's `#else` branch returns VC_ERR_NOT_IMPLEMENTED
* (`dev`/`release`/`server-release` — see docs/building.md) that's the real M1M3 implementation;
* under the no-deps `skeleton` preset, client.cpp's `#else` branch returns VC_ERR_NOT_IMPLEMENTED
* for all of it, to keep that skeleton build green.
*/
#include "voicecat.h"