forked from OSchip/llvm-project
39 lines
1.3 KiB
Python
Executable File
39 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python
|
|
"""Calls `gn` with the right --dotfile= and --root= arguments for LLVM."""
|
|
|
|
# GN normally expects a file called '.gn' at the root of the repository.
|
|
# Since LLVM's GN build isn't supported, putting that file at the root
|
|
# is deemed inappropriate, which requires passing --dotfile= and -root= to GN.
|
|
# Since that gets old fast, this script automatically passes these arguments.
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
THIS_DIR = os.path.dirname(__file__)
|
|
ROOT_DIR = os.path.join(THIS_DIR, '..', '..', '..')
|
|
|
|
|
|
def main():
|
|
# Find real gn executable. For now, just assume it's on PATH.
|
|
# FIXME: Probably need to append '.exe' on Windows.
|
|
gn = 'gn'
|
|
|
|
# Compute --dotfile= and --root= args to add.
|
|
extra_args = []
|
|
gn_main_arg = next((x for x in sys.argv[1:] if not x.startswith('-')), None)
|
|
if gn_main_arg != 'help': # `gn help` gets confused by the switches.
|
|
cwd = os.getcwd()
|
|
dotfile = os.path.relpath(os.path.join(THIS_DIR, '.gn'), cwd)
|
|
root = os.path.relpath(ROOT_DIR, cwd)
|
|
extra_args = [ '--dotfile=' + dotfile, '--root=' + root ]
|
|
|
|
# Run GN command with --dotfile= and --root= added.
|
|
cmd = [gn] + extra_args + sys.argv[1:]
|
|
sys.exit(subprocess.call(cmd))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|