Beispiel #1
0
def main(args: argparse.Namespace) -> None:
    pytest_cases = []
    for path in args.paths:
        pytest_cases += get_pytest_cases(path, args.target)

    paths = set()
    app_configs = defaultdict(set)
    for case in pytest_cases:
        paths.add(case.app_path)
        app_configs[case.app_path].add(case.config)

    app_dirs = list(paths)
    if not app_dirs:
        raise RuntimeError('No apps found')

    logging.info(f'Found {len(app_dirs)} apps')
    app_dirs.sort()

    # Find compatible configurations of each app, collect them as BuildItems
    build_items: List[BuildItem] = []
    config_rules = config_rules_from_str(args.config or [])
    for app_dir in app_dirs:
        app_dir = os.path.realpath(app_dir)
        build_items += find_builds_for_app(
            app_path=app_dir,
            work_dir=app_dir,
            build_dir='build_@t_@w',
            build_log=f'{app_dir}/build_@t_@w/build.log',
            target_arg=args.target,
            build_system='cmake',
            config_rules=config_rules,
        )

    modified_build_items = []
    # auto clean up the binaries if no flag --preserve-all
    for item in build_items:
        is_test_related = item.config_name in app_configs[item.app_dir]
        if args.test_only and not is_test_related:
            logging.info(f'Skipping non-test app: {item}')
            continue

        copied_item = copy.deepcopy(item)
        if not args.preserve_all and not is_test_related:
            copied_item.preserve = False
        modified_build_items.append(copied_item)

    logging.info(f'Found {len(modified_build_items)} builds')
    modified_build_items.sort(key=lambda x: x.build_path)  # type: ignore

    build_apps(
        build_items=modified_build_items,
        parallel_count=args.parallel_count,
        parallel_index=args.parallel_index,
        dry_run=False,
        build_verbose=args.build_verbose,
        keep_going=True,
        output_build_list=None,
        size_info=args.size_info,
    )
Beispiel #2
0
def run(build, pkgs):
   log = "Build started at: %s\n" %datetime.now()
   SafeWriteFile(build_log, log)
   SafeWriteFile(build_err, '')
   create_mmps(build, pkgs)
   create_engine_mmps(build)
   
   log = "Build engines started at: %s\n" %datetime.now()
   SafeWriteFile(build_log, log, 'a')
   build_mmp()
   log = "Build engines ended at: %s\n" %datetime.now()
   SafeWriteFile(build_log, log, 'a')
   
   build_apps(pkgs)
   create_installers(pkgs)

   
Beispiel #3
0
def run(build, pkgs, only_begotten_engine=None):
    log = "Build started at: %s\n" % datetime.now()
    SafeWriteFile(build_log, log)
    SafeWriteFile(build_err, '')
    create_mmps(build, pkgs)
    create_engine_mmps(build)
    parse_codecs()
    parse_base()

    log = "Build engines started at: %s\n" % datetime.now()
    SafeWriteFile(build_log, log, 'a')
    if only_begotten_engine:
        minimal_whitelist(build_log)
    build_mmp(only_begotten_engine)
    log = "Build engines ended at: %s\n" % datetime.now()
    SafeWriteFile(build_log, log, 'a')

    build_apps(pkgs)
    create_installers(pkgs)
Beispiel #4
0
def run(build, pkgs, only_begotten_engine=None):
    log = "Build started at: %s\n" % time.ctime()
    SafeWriteFile(build_log, log)
    SafeWriteFile(build_err, '')
    Generate_ScummVm_hrh(build)
    create_mmps(build, pkgs)
    create_engine_mmps(build)
    parse_codecs(pkgs)
    parse_base()
    parse_lua()
    parse_gamedata(build, pkgs)

    SafeWriteFile(build_log, log, 'a')
    if only_begotten_engine:
        minimal_whitelist(build_log)
    build_mmp(only_begotten_engine)
    log = "Build engines ended at: %s\n" % time.ctime()
    SafeWriteFile(build_log, log, 'a')

    build_apps(pkgs)
    create_installers(pkgs)
Beispiel #5
0
def main(args: argparse.Namespace) -> None:
    if args.all_pytest_apps:
        paths = get_pytest_dirs(IDF_PATH, args.under_dir)
        args.recursive = True
    elif args.paths is None:
        paths = [os.getcwd()]
    else:
        paths = args.paths

    app_dirs = []
    for path in paths:
        app_dirs += find_apps(CMakeBuildSystem, path, args.recursive, [],
                              args.target)
    if not app_dirs:
        logging.error('No apps found')
        sys.exit(1)

    logging.info('Found {} apps'.format(len(app_dirs)))
    app_dirs.sort()

    # Find compatible configurations of each app, collect them as BuildItems
    build_items: List[BuildItem] = []
    config_rules = config_rules_from_str(args.config or [])
    for app_dir in app_dirs:
        app_dir = os.path.realpath(app_dir)
        build_items += find_builds_for_app(
            app_dir,
            app_dir,
            'build_@t_@w',
            f'{app_dir}/build_@t_@w/build.log',
            args.target,
            'cmake',
            config_rules,
            True,
        )
    logging.info('Found {} builds'.format(len(build_items)))
    build_items.sort(key=lambda x: x.build_path)  # type: ignore

    build_apps(build_items, args.parallel_count, args.parallel_index, False,
               args.build_verbose, True, None, args.size_info)