1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-09 17:44:56 +09:00
ladybird/Toolchain/BuildVcpkg.py
Timothy Flynn 16c535a6d2 Meta: Read vcpkg baseline revision from vcpkg.json
Just so we only have to update one location when we update the baseline.
2025-04-22 19:30:07 -04:00

44 lines
1.3 KiB
Python
Executable file

#!/usr/bin/env python3
import json
import os
import pathlib
import subprocess
import sys
def main() -> int:
script_dir = pathlib.Path(__file__).parent.resolve()
with open(script_dir.parent / "vcpkg.json", "r") as vcpkg_json_file:
vcpkg_json = json.load(vcpkg_json_file)
git_repo = "https://github.com/microsoft/vcpkg.git"
git_rev = vcpkg_json["builtin-baseline"]
build_dir = script_dir.parent / "Build"
build_dir.mkdir(parents=True, exist_ok=True)
vcpkg_checkout = build_dir / "vcpkg"
if not vcpkg_checkout.is_dir():
subprocess.check_call(args=["git", "clone", git_repo], cwd=build_dir)
else:
bootstrapped_vcpkg_version = subprocess.check_output(
["git", "-C", vcpkg_checkout, "rev-parse", "HEAD"]).strip().decode()
if bootstrapped_vcpkg_version == git_rev:
return 0
print(f"Building vcpkg@{git_rev}")
subprocess.check_call(args=["git", "fetch", "origin"], cwd=vcpkg_checkout)
subprocess.check_call(args=["git", "checkout", git_rev], cwd=vcpkg_checkout)
bootstrap_script = "bootstrap-vcpkg.bat" if os.name == 'nt' else "bootstrap-vcpkg.sh"
subprocess.check_call(args=[vcpkg_checkout / bootstrap_script, "-disableMetrics"], cwd=vcpkg_checkout)
return 0
if __name__ == "__main__":
sys.exit(main())