Custom vcpkg ports, triplets, and installation scripts for Windscribe.
Overrides and additions to the official vcpkg registry.
When updating a port's version:
- Update
ports/<name>/vcpkg.jsonwith the newversion(and reset or incrementport-version) - Update
versions/baseline.jsonto reflect the new baseline version - Update
versions/<first-letter>-/<portname>.jsonwith a new entry including thegit-treehash - Update
tools/vcpkg/vcpkg-configuration.jsonin the Windscribe desktop app repo to reflect the new baseline version - Update
vcpkg-configuration.jsonin the Windscribe wsnet repo to reflect the new baseline version
The git-tree hash is the SHA of the ports/<name>/ directory tree object in git:
git rev-parse HEAD:ports/<name>Increment port-version (without changing version) when the port behavior changes but the upstream version does not (e.g., patch changes, portfile fixes).
Custom triplets in the triplets/ directory. All build release-only to reduce build times.
Includes triplets for: iOS, tvOS (device + simulator), macOS universal (arm64+x86_64), Linux and Windows static.
All triplet names are prefixed with ws- (e.g. ws-arm64-osx, ws-x64-linux) to avoid shadowing vcpkg's built-in triplets.
The installation scripts (vcpkg_install.sh / vcpkg_install.bat) automatically copy all .cmake files from triplets/ into <VCPKG_PATH>/triplets/ every time they run. No manual copying or VCPKG_OVERLAY_TRIPLETS configuration is needed.
- Commit and push the changes to this repository.
- Re-run the installation script, it will copy the updated triplets to
<VCPKG_PATH>/triplets/automatically:
# Linux / macOS
./install-vcpkg/vcpkg_install.sh <VCPKG_PATH>
# Windows
install-vcpkg\vcpkg_install.bat <VCPKG_PATH>Scripts in install-vcpkg/ install a pinned version of vcpkg. They skip reinstallation if the correct commit is already present.
Clone the registry and run locally:
git clone https://github.com/Windscribe/ws-vcpkg-registry.git
# Linux / macOS
./ws-vcpkg-registry/install-vcpkg/vcpkg_install.sh <VCPKG_PATH>
# Windows
ws-vcpkg-registry\install-vcpkg\vcpkg_install.bat <VCPKG_PATH>After cloning, the following patches from install-vcpkg/patches/ are automatically applied to vcpkg:
vcpkg_configure_cmake.patch— passes correctCMAKE_SYSTEM_NAME=tvOSwhen building forappletvos/appletvsimulatorsysrootios_toolchain.patch— extends the iOS toolchain to setCMAKE_SYSTEM_NAME=tvOSfor tvOS targets instead ofiOS
The pinned commit hash is stored in install-vcpkg/vcpkg_commit.txt. To update vcpkg to a newer version:
- Pick a commit from microsoft/vcpkg (e.g. the latest
main):
git ls-remote https://github.com/microsoft/vcpkg refs/heads/master-
Replace the hash in
install-vcpkg/vcpkg_commit.txtwith the new commit SHA. -
Verify the patches still apply cleanly. The two patches in
install-vcpkg/patches/are applied on top of the vcpkg source after cloning. If vcpkg changed the patched files, the patches may need to be rebased:
# Clone the new vcpkg commit manually and test
git clone https://github.com/microsoft/vcpkg.git /tmp/vcpkg-test
cd /tmp/vcpkg-test
git checkout <NEW_COMMIT>
git apply /path/to/ws-vcpkg-registry/install-vcpkg/patches/vcpkg_configure_cmake.patch
git apply /path/to/ws-vcpkg-registry/install-vcpkg/patches/ios_toolchain.patch-
If a patch fails, update it to match the new vcpkg source, then commit both the new hash and the updated patch together.
-
Commit and push the changes. CI and local developers will automatically get the new vcpkg version the next time they run the installation script — the script detects the commit mismatch, removes the old installation, and reinstalls from scratch.