build: bundle vcpkg as a git submodule, pinned to the manifest baseline
Adds vcpkg as a submodule at vcpkg/, pinned to the exact commit vcpkg.json already declares as builtin-baseline, so the bundled checkout and the manifest's resolved port versions can never drift apart. cmake/voicecat-toolchain.cmake, scripts/common.sh, and clients/apple/scripts/build-xcframework.sh now resolve vcpkg as: VCPKG_ROOT env var (external checkout) > bundled submodule. Docs updated to describe the new one-time setup. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -54,7 +54,8 @@ done
|
||||
# ── Resolve VCPKG_ROOT ───────────────────────────────────────────────────────────
|
||||
# The apple-dev CMake cache records the vcpkg root it was configured with (Z_VCPKG_ROOT_DIR);
|
||||
# reuse that so a developer who already configured `cmake --preset dev` doesn't need VCPKG_ROOT
|
||||
# in their shell env to run this script.
|
||||
# in their shell env to run this script. Falls back to the bundled submodule at
|
||||
# <repo-root>/vcpkg if neither the env var nor the cache resolve it.
|
||||
if [[ -z "${VCPKG_ROOT:-}" ]]; then
|
||||
cache="$REPO_ROOT/build/apple-dev/CMakeCache.txt"
|
||||
if [[ -f "$cache" ]]; then
|
||||
@@ -64,9 +65,16 @@ if [[ -z "${VCPKG_ROOT:-}" ]]; then
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [[ -z "${VCPKG_ROOT:-}" ]]; then
|
||||
bundled="$REPO_ROOT/vcpkg"
|
||||
if [[ -f "$bundled/scripts/buildsystems/vcpkg.cmake" ]]; then
|
||||
export VCPKG_ROOT="$bundled"
|
||||
fi
|
||||
fi
|
||||
if [[ -z "${VCPKG_ROOT:-}" || ! -d "$VCPKG_ROOT" ]]; then
|
||||
echo "error: VCPKG_ROOT is not set or does not exist." >&2
|
||||
echo " bootstrap vcpkg (https://vcpkg.io) then: export VCPKG_ROOT=/path/to/vcpkg" >&2
|
||||
echo " either init the bundled submodule: git submodule update --init vcpkg" >&2
|
||||
echo " or point at an external checkout: export VCPKG_ROOT=/path/to/vcpkg" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "[build-xcframework] VCPKG_ROOT=$VCPKG_ROOT"
|
||||
|
||||
Reference in New Issue
Block a user