mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-08 05:27:14 +09: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
|
||||
|
||||
import argparse
|
||||
import multiprocessing
|
||||
import os
|
||||
import platform
|
||||
import re
|
||||
|
@ -45,6 +44,7 @@ def main():
|
|||
compiler_parser = argparse.ArgumentParser(add_help=False)
|
||||
compiler_parser.add_argument("--cc", required=False, default=default_cc)
|
||||
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.add_argument("target", nargs=argparse.OPTIONAL)
|
||||
|
@ -126,10 +126,10 @@ def main():
|
|||
|
||||
if args.command == "build":
|
||||
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":
|
||||
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)
|
||||
elif args.command == "run":
|
||||
if args.preset == "Sanitizer":
|
||||
|
@ -143,16 +143,16 @@ def main():
|
|||
"UBSAN_OPTIONS", "print_stacktrace=1:print_summary=1:halt_on_error=1"
|
||||
)
|
||||
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)
|
||||
elif args.command == "debug":
|
||||
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)
|
||||
elif args.command == "install":
|
||||
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
||||
build_main(build_dir, args.target, args.args)
|
||||
build_main(build_dir, "install", args.args)
|
||||
build_main(build_dir, args.jobs, args.target, args.args)
|
||||
build_main(build_dir, args.jobs, "install", args.args)
|
||||
elif args.command == "vcpkg":
|
||||
configure_build_env(args.preset)
|
||||
build_vcpkg()
|
||||
|
@ -161,10 +161,10 @@ def main():
|
|||
elif args.command == "rebuild":
|
||||
clean_main(args.preset)
|
||||
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":
|
||||
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)
|
||||
|
||||
|
||||
|
@ -297,14 +297,13 @@ def ensure_ladybird_source_dir() -> Path:
|
|||
return ladybird_source_dir
|
||||
|
||||
|
||||
def build_main(build_dir: Path, target: Optional[str] = None, args: list[str] = []):
|
||||
build_args = [
|
||||
"ninja",
|
||||
"-C",
|
||||
str(build_dir),
|
||||
"-j",
|
||||
os.environ.get("MAKEJOBS", str(multiprocessing.cpu_count())),
|
||||
]
|
||||
def build_main(build_dir: Path, jobs: str | None, target: Optional[str] = None, args: list[str] = []):
|
||||
build_args = ["ninja", "-C", str(build_dir)]
|
||||
|
||||
if not jobs:
|
||||
jobs = os.environ.get("MAKEJOBS", None)
|
||||
if jobs:
|
||||
build_args.extend(["-j", jobs])
|
||||
|
||||
if target:
|
||||
build_args.append(target)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue