Add options necessary for Chromium's bootstrap.py to forward to gen.py
Also fixes a small bug in GenerateLastCommitPosition().
BUG=chromium:863459,chromium:863460
R=thakis
Change-Id: I8c341db46b5bf372af08142bce75d41c1e353f81
Reviewed-on: https://gn-review.googlesource.com/2160
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Brett Wilson <brettw@chromium.org>
diff --git a/build/gen.py b/build/gen.py
index eceeafe..fd0fa48 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -31,17 +31,26 @@
parser = optparse.OptionParser(description=sys.modules[__name__].__doc__)
parser.add_option('-d', '--debug', action='store_true',
help='Do a debug build. Defaults to release build.')
+ parser.add_option('--no-sysroot', action='store_true',
+ help='(Linux only) Do not build with the Debian sysroot.')
+ parser.add_option('--no-last-commit-position', action='store_true',
+ help='Do not generate last_commit_position.h.')
+ parser.add_option('--out-path',
+ help='The path to generate the build files in.')
options, args = parser.parse_args(argv)
if args:
parser.error('Unrecognized command line arguments: %s.' % ', '.join(args))
- linux_sysroot = UpdateLinuxSysroot() if is_linux else None
+ linux_sysroot = None
+ if is_linux and not options.no_sysroot:
+ linux_sysroot = UpdateLinuxSysroot()
- out_dir = os.path.join(REPO_ROOT, 'out')
+ out_dir = options.out_path or os.path.join(REPO_ROOT, 'out')
if not os.path.isdir(out_dir):
os.makedirs(out_dir)
- GenerateLastCommitPosition(os.path.join(out_dir, 'last_commit_position.h'))
+ if not options.no_last_commit_position:
+ GenerateLastCommitPosition(os.path.join(out_dir, 'last_commit_position.h'))
WriteGNNinja(os.path.join(out_dir, 'build.ninja'), options, linux_sysroot)
return 0
@@ -49,7 +58,8 @@
def GenerateLastCommitPosition(header):
ROOT_TAG = 'initial-commit'
describe_output = subprocess.check_output(
- ['git', 'describe', 'HEAD', '--match', ROOT_TAG], shell=is_win)
+ ['git', 'describe', 'HEAD', '--match', ROOT_TAG], shell=is_win,
+ cwd=REPO_ROOT)
mo = re.match(ROOT_TAG + '-(\d+)-g([0-9a-f]+)', describe_output)
if not mo:
raise ValueError(
@@ -259,7 +269,7 @@
])
cflags_cc.extend(['-std=c++14', '-Wno-c++11-narrowing'])
- if is_linux:
+ if linux_sysroot:
# Use the sid sysroot that UpdateLinuxSysroot() downloads. We need to
# force the used of libstdc++ for now because libc++ is not in that
# sysroot and we don't currently have a local build of that. We should