コード例 #1
0
ファイル: runner.py プロジェクト: kidanger/Drystal
def run_native(args, additional_args=None):
    wd, filename = None, None
    if args.dir:
        wd = args.dir
        filename = args.PATH
    else:
        wd = args.PATH
        if os.path.isfile(args.PATH):
            wd, filename = os.path.split(args.PATH)
    program, arguments = prepare_native(args.release, args.coverage, args.disable_modules)

    if filename:  # other main file
        arguments.append(filename)
    if args.live:
        arguments.append("--livecoding")
    if additional_args:
        arguments += additional_args

    if args.debug:
        execute(get_gdb_args(program, arguments=arguments), cwd=wd)
    elif args.profile:
        execute(['valgrind'] + VALGRIND_ARGS_PROFILE + [program] + arguments, cwd=wd)
    elif args.memcheck:
        execute(['valgrind'] + VALGRIND_ARGS_MEMCHECK + [program] + arguments, cwd=wd)
    else:
        execute([program] + arguments, cwd=wd)

    if args.coverage:
        directory = args.release and BUILD_NATIVE_RELEASE or BUILD_NATIVE_DEBUG
        run_target(directory, 'coverage-report')
コード例 #2
0
def run_native(args, additional_args=None):
    wd, filename = None, None
    if args.dir:
        wd = args.dir
        filename = args.PATH
    else:
        wd = args.PATH
        if os.path.isfile(args.PATH):
            wd, filename = os.path.split(args.PATH)
    program, arguments = prepare_native(args.release, args.coverage, args.disable_modules)

    if filename:  # other main file
        arguments.append(filename)
    if args.live:
        arguments.append("--livecoding")
    if additional_args:
        arguments += additional_args

    if args.debug:
        execute(get_gdb_args(program, arguments=arguments), cwd=wd)
    elif args.profile:
        execute(['valgrind'] + VALGRIND_ARGS_PROFILE + [program] + arguments, cwd=wd)
    elif args.memcheck:
        execute(['valgrind'] + VALGRIND_ARGS_MEMCHECK + [program] + arguments, cwd=wd)
    else:
        execute([program] + arguments, cwd=wd)

    if args.coverage:
        directory = args.release and BUILD_NATIVE_RELEASE or BUILD_NATIVE_DEBUG
        run_target(directory, 'coverage-report')
コード例 #3
0
ファイル: runner.py プロジェクト: kidanger/Drystal
def cmake_update(build, definitions=[], force_clean=False):
    generator = HAS_NINJA and 'Ninja' or 'Unix Makefiles'
    builder = HAS_NINJA and 'ninja' or 'make'
    if force_clean:
        clean(build)
    if not os.path.exists(build):
        os.mkdir(build)
        defs = ['-D' + d for d in definitions]
        if not execute(['cmake', '..', '-G', generator] + defs, cwd=build):
            print(E + 'cmake failed. Fix CMakeLists.txt and try again!' + N)
            clean(build)
            sys.exit(1)
    if not execute([builder], cwd=build):
        print(E + builder, 'failed, stopping.' + N)
        sys.exit(1)
コード例 #4
0
def cmake_update(build, definitions=[], force_clean=False):
    generator = HAS_NINJA and 'Ninja' or 'Unix Makefiles'
    builder = HAS_NINJA and 'ninja' or 'make'
    if force_clean:
        clean(build)
    if not os.path.exists(build):
        os.mkdir(build)
        defs = ['-D' + d for d in definitions]
        if not execute(['cmake', '..', '-G', generator] + defs, cwd=build):
            print(E + 'cmake failed. Fix CMakeLists.txt and try again!' + N)
            clean(build)
            sys.exit(1)
    if not execute([builder], cwd=build):
        print(E + builder, 'failed, stopping.' + N)
        sys.exit(1)
コード例 #5
0
ファイル: runner.py プロジェクト: kidanger/Drystal
def run_target(build, target):
    builder = HAS_NINJA and 'ninja' or 'make'
    if not execute([builder, target], cwd=build):
        print(E + builder, target, 'failed, stopping.' + N)
        sys.exit(1)
コード例 #6
0
def run_target(build, target):
    builder = HAS_NINJA and 'ninja' or 'make'
    if not execute([builder, target], cwd=build):
        print(E + builder, target, 'failed, stopping.' + N)
        sys.exit(1)