mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-21 15:40:28 +00:00
56 lines
2.2 KiB
Python
56 lines
2.2 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
import os
|
|
import pathlib
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description="Install vcpkg dependencies")
|
|
parser.add_argument("--cc", type=str, required=True, help="The C compiler to use")
|
|
parser.add_argument("--cxx", type=str, required=True, help="The C++ compiler to use")
|
|
parser.add_argument("--manifest", type=str, required=True, help="The vcpkg manifest to install")
|
|
parser.add_argument("--vcpkg", type=str, required=True, help="The path to the vcpkg executable")
|
|
parser.add_argument("--vcpkg-root", type=str, required=True, help="The path to the vcpkg root directory")
|
|
parser.add_argument("--vcpkg-triplet", type=str, required=True, help="The vcpkg triplet to use")
|
|
parser.add_argument("--vcpkg-overlay-triplets", type=str, help="Path to a vcpkg overlay triplets directory")
|
|
parser.add_argument("--vcpkg-binary-cache-dir", type=str, help="Path to a vcpkg binary cache directory")
|
|
parser.add_argument("--stamp-file", type=str, help="Path to a file to touch after installation")
|
|
parser.add_argument("install_directory", type=str, help="The directory to install vcpkg deps into")
|
|
args = parser.parse_args()
|
|
|
|
manifest_directory = pathlib.Path(args.manifest).parent
|
|
|
|
env = os.environ.copy()
|
|
env["CC"] = args.cc
|
|
env["CXX"] = args.cxx
|
|
|
|
vcpkg_arguments = [
|
|
args.vcpkg,
|
|
"install",
|
|
"--no-print-usage",
|
|
"--x-wait-for-lock",
|
|
f"--triplet={args.vcpkg_triplet}",
|
|
f"--vcpkg-root={args.vcpkg_root}",
|
|
f"--x-manifest-root={manifest_directory}",
|
|
f"--x-install-root={args.install_directory}",
|
|
]
|
|
|
|
if args.vcpkg_overlay_triplets:
|
|
vcpkg_arguments += [f"--overlay-triplets={args.vcpkg_overlay_triplets}"]
|
|
if args.vcpkg_binary_cache_dir:
|
|
binary_cache_dir = pathlib.Path(args.vcpkg_binary_cache_dir).absolute()
|
|
vcpkg_arguments += [f"--binarysource=clear;files,{binary_cache_dir},readwrite"]
|
|
|
|
subprocess.run(vcpkg_arguments, env=env, check=True)
|
|
|
|
if args.stamp_file:
|
|
pathlib.Path(args.stamp_file).touch()
|
|
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|