mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
6ee1afc9c0
The vcpkg install is handled through an action to run vcpkg install with the private --x-install-root flag that their CMake toolchain file uses to install dependencies into a build-time directory.
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())
|