Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
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