first commit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env bash
|
||||
# One-time developer setup (Linux / macOS):
|
||||
# - verifies required tools
|
||||
# - installs vcpkg if VCPKG_ROOT is not set
|
||||
# - pins the vcpkg dependency baseline in vcpkg.json
|
||||
set -euo pipefail
|
||||
|
||||
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "${REPO_ROOT}"
|
||||
|
||||
echo ">> Checking required tools"
|
||||
missing=0
|
||||
for tool in git cmake ninja; do
|
||||
if ! command -v "${tool}" >/dev/null 2>&1; then
|
||||
echo " MISSING: ${tool}" >&2
|
||||
missing=1
|
||||
fi
|
||||
done
|
||||
if [[ "${missing}" -ne 0 ]]; then
|
||||
echo "ERROR: install the missing tools and re-run." >&2
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v c++ >/dev/null 2>&1 && ! command -v clang++ >/dev/null 2>&1; then
|
||||
echo "WARNING: no C++ compiler found on PATH (need GCC 13+ or Clang 16+ for C++23)." >&2
|
||||
fi
|
||||
|
||||
echo ">> Setting up vcpkg"
|
||||
if [[ -z "${VCPKG_ROOT:-}" ]]; then
|
||||
if [[ ! -d "${REPO_ROOT}/vcpkg" ]]; then
|
||||
echo " Cloning vcpkg into ./vcpkg"
|
||||
git clone https://github.com/microsoft/vcpkg.git "${REPO_ROOT}/vcpkg"
|
||||
fi
|
||||
"${REPO_ROOT}/vcpkg/bootstrap-vcpkg.sh" -disableMetrics
|
||||
export VCPKG_ROOT="${REPO_ROOT}/vcpkg"
|
||||
echo " VCPKG_ROOT is not set in your environment."
|
||||
echo " Add this to your shell profile (~/.bashrc, ~/.zshrc):"
|
||||
echo " export VCPKG_ROOT=\"${REPO_ROOT}/vcpkg\""
|
||||
else
|
||||
echo " Using VCPKG_ROOT=${VCPKG_ROOT}"
|
||||
fi
|
||||
VCPKG_EXE="${VCPKG_ROOT}/vcpkg"
|
||||
|
||||
echo ">> Pinning the vcpkg dependency baseline"
|
||||
if grep -q '"builtin-baseline"' vcpkg.json; then
|
||||
echo " builtin-baseline already present — leaving it pinned."
|
||||
else
|
||||
"${VCPKG_EXE}" x-update-baseline --add-initial-baseline
|
||||
echo " Added builtin-baseline to vcpkg.json. Commit this change."
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo ">> Bootstrap complete. Next steps:"
|
||||
echo " cmake --preset linux-debug # or macos-debug"
|
||||
echo " cmake --build --preset linux-debug"
|
||||
echo " ctest --preset linux-debug"
|
||||
Reference in New Issue
Block a user