mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-30 04:39:06 +00:00
Meta: Provide compiler jobs as a command line argument
On my Linux machine with 32 cores, ninja actually defaults to 34 jobs. By defaulting ourselves to multiprocessing.cpu_count(), we actually decrease the number of jobs used.
This commit is contained in:
parent
e6938e11b0
commit
0958c5f508
Notes:
github-actions[bot]
2025-05-30 16:55:22 +00:00
Author: https://github.com/trflynn89
Commit: 0958c5f508
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4931
1 changed files with 16 additions and 17 deletions
|
@ -6,7 +6,6 @@
|
||||||
# SPDX-License-Identifier: BSD-2-Clause
|
# SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import multiprocessing
|
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
import re
|
import re
|
||||||
|
@ -45,6 +44,7 @@ def main():
|
||||||
compiler_parser = argparse.ArgumentParser(add_help=False)
|
compiler_parser = argparse.ArgumentParser(add_help=False)
|
||||||
compiler_parser.add_argument("--cc", required=False, default=default_cc)
|
compiler_parser.add_argument("--cc", required=False, default=default_cc)
|
||||||
compiler_parser.add_argument("--cxx", required=False, default=default_cxx)
|
compiler_parser.add_argument("--cxx", required=False, default=default_cxx)
|
||||||
|
compiler_parser.add_argument("--jobs", "-j", required=False)
|
||||||
|
|
||||||
target_parser = argparse.ArgumentParser(add_help=False)
|
target_parser = argparse.ArgumentParser(add_help=False)
|
||||||
target_parser.add_argument("target", nargs=argparse.OPTIONAL)
|
target_parser.add_argument("target", nargs=argparse.OPTIONAL)
|
||||||
|
@ -126,10 +126,10 @@ def main():
|
||||||
|
|
||||||
if args.command == "build":
|
if args.command == "build":
|
||||||
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
||||||
build_main(build_dir, args.target, args.args)
|
build_main(build_dir, args.jobs, args.target, args.args)
|
||||||
elif args.command == "test":
|
elif args.command == "test":
|
||||||
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
||||||
build_main(build_dir)
|
build_main(build_dir, args.jobs)
|
||||||
test_main(build_dir, args.preset, args.pattern)
|
test_main(build_dir, args.preset, args.pattern)
|
||||||
elif args.command == "run":
|
elif args.command == "run":
|
||||||
if args.preset == "Sanitizer":
|
if args.preset == "Sanitizer":
|
||||||
|
@ -143,16 +143,16 @@ def main():
|
||||||
"UBSAN_OPTIONS", "print_stacktrace=1:print_summary=1:halt_on_error=1"
|
"UBSAN_OPTIONS", "print_stacktrace=1:print_summary=1:halt_on_error=1"
|
||||||
)
|
)
|
||||||
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
||||||
build_main(build_dir, args.target)
|
build_main(build_dir, args.jobs, args.target)
|
||||||
run_main(platform.host_system, build_dir, args.target, args.args)
|
run_main(platform.host_system, build_dir, args.target, args.args)
|
||||||
elif args.command == "debug":
|
elif args.command == "debug":
|
||||||
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
||||||
build_main(build_dir, args.target, args.args)
|
build_main(build_dir, args.jobs, args.target, args.args)
|
||||||
debug_main(platform.host_system, build_dir, args.target, args.debugger, args.cmd)
|
debug_main(platform.host_system, build_dir, args.target, args.debugger, args.cmd)
|
||||||
elif args.command == "install":
|
elif args.command == "install":
|
||||||
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
||||||
build_main(build_dir, args.target, args.args)
|
build_main(build_dir, args.jobs, args.target, args.args)
|
||||||
build_main(build_dir, "install", args.args)
|
build_main(build_dir, args.jobs, "install", args.args)
|
||||||
elif args.command == "vcpkg":
|
elif args.command == "vcpkg":
|
||||||
configure_build_env(args.preset)
|
configure_build_env(args.preset)
|
||||||
build_vcpkg()
|
build_vcpkg()
|
||||||
|
@ -161,10 +161,10 @@ def main():
|
||||||
elif args.command == "rebuild":
|
elif args.command == "rebuild":
|
||||||
clean_main(args.preset)
|
clean_main(args.preset)
|
||||||
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
||||||
build_main(build_dir, args.target, args.args)
|
build_main(build_dir, args.jobs, args.target, args.args)
|
||||||
elif args.command == "addr2line":
|
elif args.command == "addr2line":
|
||||||
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
||||||
build_main(build_dir, args.target)
|
build_main(build_dir, args.jobs, args.target)
|
||||||
addr2line_main(build_dir, args.target, args.program, args.addresses)
|
addr2line_main(build_dir, args.target, args.program, args.addresses)
|
||||||
|
|
||||||
|
|
||||||
|
@ -297,14 +297,13 @@ def ensure_ladybird_source_dir() -> Path:
|
||||||
return ladybird_source_dir
|
return ladybird_source_dir
|
||||||
|
|
||||||
|
|
||||||
def build_main(build_dir: Path, target: Optional[str] = None, args: list[str] = []):
|
def build_main(build_dir: Path, jobs: str | None, target: Optional[str] = None, args: list[str] = []):
|
||||||
build_args = [
|
build_args = ["ninja", "-C", str(build_dir)]
|
||||||
"ninja",
|
|
||||||
"-C",
|
if not jobs:
|
||||||
str(build_dir),
|
jobs = os.environ.get("MAKEJOBS", None)
|
||||||
"-j",
|
if jobs:
|
||||||
os.environ.get("MAKEJOBS", str(multiprocessing.cpu_count())),
|
build_args.extend(["-j", jobs])
|
||||||
]
|
|
||||||
|
|
||||||
if target:
|
if target:
|
||||||
build_args.append(target)
|
build_args.append(target)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue