12345678910111213141516171819202122232425262728293031323334353637383940 |
- import os
- import subprocess
- import pathlib
- import sys
- def main() -> int:
- script_dir = pathlib.Path(__file__).parent.resolve()
- git_repo = "https://github.com/microsoft/vcpkg.git"
- git_rev = "533a5fda5c0646d1771345fb572e759283444d5f"
- 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())
|