The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.2 KiB
40 lines
1.2 KiB
from __future__ import annotations |
|
|
|
import os |
|
import shutil |
|
import subprocess |
|
|
|
from . import destdir_join |
|
|
|
import argparse |
|
import typing as T |
|
|
|
parser = argparse.ArgumentParser() |
|
parser.add_argument('--install') |
|
parser.add_argument('--extra-extension-path', action="append", default=[]) |
|
parser.add_argument('--name') |
|
parser.add_argument('--builddir') |
|
parser.add_argument('--project-version') |
|
|
|
|
|
def run(argv: T.List[str]) -> int: |
|
options, args = parser.parse_known_args(argv) |
|
subenv = os.environ.copy() |
|
|
|
for ext_path in options.extra_extension_path: |
|
subenv['PYTHONPATH'] = subenv.get('PYTHONPATH', '') + ':' + ext_path |
|
|
|
res = subprocess.call(args, cwd=options.builddir, env=subenv) |
|
if res != 0: |
|
return res |
|
|
|
if options.install: |
|
source_dir = os.path.join(options.builddir, options.install) |
|
destdir = os.environ.get('DESTDIR', '') |
|
installdir = destdir_join(destdir, |
|
os.path.join(os.environ['MESON_INSTALL_PREFIX'], |
|
'share/doc/', options.name, "html")) |
|
|
|
shutil.rmtree(installdir, ignore_errors=True) |
|
shutil.copytree(source_dir, installdir) |
|
return 0
|
|
|