diff --git a/extras/scripts/winmake.py b/extras/scripts/winmake.py index 6edef793902b7b74a3b531a51c33cb87f7defb7c..93346333a3ea76ecc9784ce338f4d12dc86efbf9 100644 --- a/extras/scripts/winmake.py +++ b/extras/scripts/winmake.py @@ -63,11 +63,11 @@ def build_contrib(args, paths): log.info(f"op={str(op)}, pkgs={args.pkg}, force={str(args.force)}") if op == Operation.CLEAN: - versioner.clean_all() if args.pkg == "all" else versioner.clean_pkg(args.pkg) + return versioner.clean_all() if args.pkg == "all" else versioner.clean_pkg(args.pkg) elif args.pkg == "all": - versioner.exec_for_all(op=op, force=args.force) + return versioner.exec_for_all(op=op, force=args.force) else: - versioner.exec_for_pkg(args.pkg, op=op, force=args.force, recurse=args.recurse) + return versioner.exec_for_pkg(args.pkg, op=op, force=args.force, recurse=args.recurse) def build_from_dir(path, out_dir=None): """Pretty much just for building libjami.""" @@ -81,9 +81,10 @@ def build_from_dir(path, out_dir=None): pkg = Package(src_dir=path, buildsrc_dir=out_dir) if builder.build(pkg): log.info(f"Package {pkg.name} built successfully.") + return True else: log.error(f"Package {pkg.name} failed to build.") - sys.exit(1) + return False def main(): start_time = time.time() @@ -108,16 +109,18 @@ def main(): sh_exec.set_quiet_mode(args.quiet) sh_exec.set_debug_cmd(args.verbosity == 2) - build_from_dir_only = False + success = False try: # This will search for the base directory containing the contrib directory. paths = Paths(base_dir=base_dir, root_names=["daemon", "jami-daemon"]) - build_contrib(args, paths) + log.info(f"Building contribs in {paths}.") + success = build_contrib(args, paths) except RuntimeError as e: - build_from_dir_only = True + log.info(f"Building from directory {base_dir}.") + success = build_from_dir(base_dir, args.out_dir) - if build_from_dir_only: - build_from_dir(base_dir, args.out_dir) + if not success: + sys.exit(1) log.info("--- %s ---" % seconds_to_str(time.time() - start_time))