def _ninja_build(options): cmd = ['ninja'] cmd += native_builder_options(options) # if options.jobs: # Unlike scons, ninja enable parallel building defaultly, # so only set it when user specified it explicitly. # cmd.append('-j%s' % options.jobs) cmd.append('-j%s' % (options.jobs or build_manager.instance.parallel_jobs_num())) if options.keep_going: cmd.append('-k0') if console.verbosity_compare(options.verbosity, 'verbose') >= 0: cmd.append('-v') cmdstr = subprocess.list2cmdline(cmd) if console.verbosity_compare(options.verbosity, 'quiet') <= 0: # Filter out description message such as '[1/123] CC xxx.cc' cmdstr += r' | sed -e "/^\[[0-9]*\/[0-9]*\] /d"' return _run_native_builder(cmdstr)
def _run_ninja(cmd, options): cmdstr = subprocess.list2cmdline(cmd) if console.verbosity_compare(options.verbosity, 'quiet') > 0: return _run_backend_builder(cmdstr) ninja_output = 'blade-bin/ninja_output.log' with open(ninja_output, 'w', buffering=1) as wf, open(ninja_output, 'r', buffering=1) as rf: os.environ['NINJA_STATUS'] = '[%f/%t] ' # The progress depends on this format p = subprocess.Popen(cmdstr, shell=True, stdout=wf, stderr=subprocess.STDOUT) _show_progress(p, rf) return p.returncode
def _run_ninja(cmd, options): cmdstr = subprocess.list2cmdline(cmd) if console.verbosity_compare(options.verbosity, 'quiet') > 0: return _run_native_builder(cmdstr) ninja_output = 'blade-bin/ninja_output.log' with open(ninja_output, 'w', buffering=1) as wf, open(ninja_output, 'r', buffering=1) as rf: os.environ['NINJA_STATUS'] = '[%f/%t] ' # The progress depends on this format p = subprocess.Popen(cmdstr, shell=True, stdout=wf, stderr=subprocess.STDOUT) _show_progress(p, rf) return p.returncode
def _scons_build(options): cmd = ['scons'] cmd += native_builder_options(options) cmd.append('-j%s' % (options.jobs or build_manager.instance.parallel_jobs_num())) cmd += ['--duplicate=soft-copy', '--cache-show'] if options.keep_going: cmd.append('-k') if console.verbosity_compare(options.verbosity, 'quiet') <= 0: cmd.append('-s') cmdstr = subprocess.list2cmdline(cmd) return _run_native_builder(cmdstr)
def _run_ninja_build(cmd, options): """Run the "ninja" program with interactive.""" cmdstr = ' '.join(cmd) if console.verbosity_compare(options.verbosity, 'quiet') > 0: return _run_ninja_command(cmdstr) # In quiet mode, redirect ninja output to the file ninja_output = 'blade-bin/ninja_output.log' with open(ninja_output, 'w', buffering=1) as wf, open(ninja_output, 'r', buffering=1) as rf: os.environ['NINJA_STATUS'] = '[%f/%t] ' # The progress depends on this format p = subprocess.Popen(cmdstr, shell=True, stdout=wf, stderr=subprocess.STDOUT) _show_progress(p, rf) return p.returncode
def _ninja_build(options): cmd = ['ninja', '-f', build_manager.instance.build_script()] cmd += backend_builder_options(options) cmd.append('-j%s' % build_manager.instance.build_jobs_num()) if options.keep_going: cmd.append('-k0') if console.verbosity_compare(options.verbosity, 'verbose') >= 0: cmd.append('-v') build_start_time = time.time() ret = _run_ninja(cmd, options) if options.show_builds_slower_than is not None: _show_slow_builds(build_start_time, options.show_builds_slower_than) return ret
def _ninja_build(options): cmd = ['ninja'] cmd += backend_builder_options(options) # Ninja enable parallel building defaultly, but we still set it explicitly. cmd.append('-j%s' % (options.jobs or build_manager.instance.parallel_jobs_num())) if options.keep_going: cmd.append('-k0') if console.verbosity_compare(options.verbosity, 'verbose') >= 0: cmd.append('-v') build_start_time = time.time() ret = _run_ninja(cmd, options) if options.show_builds_slower_than is not None: _show_slow_builds(build_start_time, options.show_builds_slower_than) return ret
def _run_ninja(cmd, options): cmdstr = subprocess.list2cmdline(cmd) if console.verbosity_compare(options.verbosity, 'quiet') > 0: return _run_native_builder(cmdstr) ninja_output = 'blade-bin/ninja_output.log' with open(ninja_output, 'w', buffering=1) as wf, open(ninja_output, 'r', buffering=1) as rf: p = subprocess.Popen(cmdstr, shell=True, stdout=wf, stderr=subprocess.STDOUT) _show_progress(p, rf) return p.returncode
def build(build_dir, build_script, jobs_num, options): """Execute the ninja executable with proper arguments.""" cmd = ['ninja', '-f', build_script] cmd += _build_options(options) cmd.append('-j%s' % jobs_num) if options.keep_going: cmd.append('-k0') if console.verbosity_compare(options.verbosity, 'verbose') >= 0: cmd.append('-v') build_start_time = time.time() ret = _run_ninja_build(cmd, options) if options.show_builds_slower_than is not None: _show_slow_builds(build_dir, build_start_time, options.show_builds_slower_than) return ret
def _ninja_build(options): cmd = ['ninja'] cmd += native_builder_options(options) # if options.jobs: # Unlike scons, ninja enable parallel building defaultly, # so only set it when user specified it explicitly. # cmd.append('-j%s' % options.jobs) cmd.append('-j%s' % (options.jobs or build_manager.instance.parallel_jobs_num())) if options.keep_going: cmd.append('-k0') if console.verbosity_compare(options.verbosity, 'verbose') >= 0: cmd.append('-v') build_start_time = time.time() ret = _run_ninja(cmd, options) if options.show_builds_slower_than is not None: _show_slow_builds(build_start_time, options.show_builds_slower_than) return ret