diff options
Diffstat (limited to 'chromium/tools/gn/bootstrap/bootstrap.py')
-rwxr-xr-x | chromium/tools/gn/bootstrap/bootstrap.py | 49 |
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') |