summaryrefslogtreecommitdiff
path: root/chromium/tools/gn/bootstrap/bootstrap.py
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/tools/gn/bootstrap/bootstrap.py')
-rwxr-xr-xchromium/tools/gn/bootstrap/bootstrap.py49
1 files changed, 38 insertions, 11 deletions
diff --git a/chromium/tools/gn/bootstrap/bootstrap.py b/chromium/tools/gn/bootstrap/bootstrap.py
index f154ed2ef3e..d27e4e7b1e0 100755
--- a/chromium/tools/gn/bootstrap/bootstrap.py
+++ b/chromium/tools/gn/bootstrap/bootstrap.py
@@ -68,6 +68,8 @@ def run_build(tempdir, options):
else:
build_rel = os.path.join('out', 'Release')
build_root = os.path.join(SRC_ROOT, build_rel)
+ if options.shadow:
+ build_root = os.getcwd()
print 'Building gn manually in a temporary directory for bootstrapping...'
build_gn_with_ninja_manually(tempdir, options)
@@ -79,8 +81,9 @@ def run_build(tempdir, options):
out_gn += '.exe'
if options.no_rebuild:
- mkdir_p(build_root)
- shutil.copy2(temp_gn, out_gn)
+ if temp_gn != out_gn:
+ mkdir_p(build_root)
+ shutil.copy2(temp_gn, out_gn)
else:
print 'Building gn using itself to %s...' % build_rel
build_gn_with_gn(temp_gn, build_root, options)
@@ -103,7 +106,7 @@ def main(argv):
help='Do a debug build. Defaults to release build.')
parser.add_option('-o', '--output',
help='place output in PATH', metavar='PATH')
- parser.add_option('-s', '--no-rebuild', action='store_true',
+ parser.add_option('-n', '--no-rebuild', action='store_true',
help='Do not rebuild GN with GN.')
parser.add_option('--no-clean', action='store_true',
help='Re-used build directory instead of using new '
@@ -111,6 +114,9 @@ def main(argv):
parser.add_option('--gn-gen-args', help='Args to pass to gn gen --args')
parser.add_option('-v', '--verbose', action='store_true',
help='Log more details')
+ parser.add_option('-s', '--shadow', action='store_true',
+ help='Use current dir as build dir')
+ parser.add_option('-p', '--path', help='Path to ninja binary')
options, args = parser.parse_args(argv)
if args:
@@ -124,6 +130,9 @@ def main(argv):
if not os.path.exists(build_dir):
os.makedirs(build_dir)
return run_build(build_dir, options)
+ elif options.shadow:
+ build_dir = os.getcwd()
+ return run_build(build_dir, options)
else:
with scoped_tempdir() as tempdir:
return run_build(tempdir, options)
@@ -206,6 +215,8 @@ def build_gn_with_ninja_manually(tempdir, options):
write_gn_ninja(os.path.join(tempdir, 'build.ninja'),
root_gen_dir, options)
cmd = ['ninja', '-C', tempdir, '-w', 'dupbuild=err']
+ if options.path:
+ cmd[0] = options.path
if options.verbose:
cmd.append('-v')
@@ -320,9 +331,14 @@ def write_gn_ninja(path, root_gen_dir, options):
ld = cxx
ar = os.environ.get('AR', 'ar')
- cflags = os.environ.get('CFLAGS', '').split()
- cflags_cc = os.environ.get('CXXFLAGS', '').split()
- ldflags = os.environ.get('LDFLAGS', '').split()
+ # QTBUG-64759
+ # cflags = os.environ.get('CFLAGS', '').split()
+ # cflags_cc = os.environ.get('CXXFLAGS', '').split()
+ # ldflags = os.environ.get('LDFLAGS', '').split()
+ cflags = []
+ cflags_cc = []
+ ldflags = []
+
include_dirs = [root_gen_dir, SRC_ROOT]
libs = []
@@ -342,12 +358,16 @@ def write_gn_ninja(path, root_gen_dir, options):
# logic inside //build/toolchain.
cflags.extend(['-O2', '-g0'])
+ # Always set TOOLKIT_QT define, because use_qt GN argument is not used for the initial GN build.
+ cflags.extend(['-DTOOLKIT_QT'])
+
cflags.extend([
'-D_FILE_OFFSET_BITS=64',
'-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS',
'-pthread',
'-pipe',
- '-fno-exceptions'
+ '-fno-exceptions',
+ '-D__STDC_FORMAT_MACROS'
])
cflags_cc.extend(['-std=c++14', '-Wno-c++11-narrowing'])
if is_aix:
@@ -372,7 +392,6 @@ def write_gn_ninja(path, root_gen_dir, options):
'/GR-',
'/D_HAS_EXCEPTIONS=0',
])
-
target_arch = windows_target_build_arch()
if target_arch == 'x64':
ldflags.extend(['/MACHINE:x64'])
@@ -612,6 +631,12 @@ def write_gn_ninja(path, root_gen_dir, options):
'base/time/time_conversion_posix.cc',
'base/trace_event/heap_profiler_allocation_register_posix.cc',
])
+ if not is_mac:
+ static_libraries['base']['sources'].extend([
+ 'base/time/time_now_posix.cc',
+ 'base/time/time_exploded_posix.cc',
+ ])
+
static_libraries['libevent'] = {
'sources': [
'base/third_party/libevent/buffer.c',
@@ -656,8 +681,6 @@ def write_gn_ninja(path, root_gen_dir, options):
'base/strings/sys_string_conversions_posix.cc',
'base/synchronization/waitable_event_posix.cc',
'base/sys_info_linux.cc',
- 'base/time/time_exploded_posix.cc',
- 'base/time/time_now_posix.cc',
'base/threading/platform_thread_linux.cc',
])
if is_linux:
@@ -665,7 +688,7 @@ def write_gn_ninja(path, root_gen_dir, options):
'base/allocator/allocator_shim.cc',
'base/allocator/allocator_shim_default_dispatch_to_glibc.cc',
])
- libs.extend(['-lrt', '-latomic'])
+ libs.extend(['-lrt'])
static_libraries['libevent']['include_dirs'].extend([
os.path.join(SRC_ROOT, 'base', 'third_party', 'libevent', 'linux')
])
@@ -821,9 +844,13 @@ def build_gn_with_gn(temp_gn, build_dir, options):
if not options.debug:
gn_gen_args += ' is_debug=false'
cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args]
+ if sys.executable:
+ cmd.append('--script-executable=%s' % sys.executable)
check_call(cmd)
cmd = ['ninja', '-C', build_dir, '-w', 'dupbuild=err']
+ if options.path:
+ cmd[0] = options.path
if options.verbose:
cmd.append('-v')
cmd.append('gn')