mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-08 05:27:14 +09:00
Meta: Integrate find_compiler.py into ladybird.py
This commit is contained in:
parent
3d0fdaacff
commit
a5bfb686f4
Notes:
github-actions[bot]
2025-05-29 23:35:15 +00:00
Author: https://github.com/trflynn89
Commit: a5bfb686f4
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4904
Reviewed-by: https://github.com/ADKaster
1 changed files with 17 additions and 22 deletions
|
@ -19,6 +19,8 @@ from typing import Optional
|
||||||
|
|
||||||
sys.path.append(str(Path(__file__).resolve().parent.parent))
|
sys.path.append(str(Path(__file__).resolve().parent.parent))
|
||||||
|
|
||||||
|
from Meta.find_compiler import default_host_compiler
|
||||||
|
from Meta.find_compiler import pick_host_compiler
|
||||||
from Meta.host_platform import HostArchitecture
|
from Meta.host_platform import HostArchitecture
|
||||||
from Meta.host_platform import HostSystem
|
from Meta.host_platform import HostSystem
|
||||||
from Meta.host_platform import Platform
|
from Meta.host_platform import Platform
|
||||||
|
@ -27,6 +29,7 @@ from Toolchain.BuildVcpkg import build_vcpkg
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
platform = Platform()
|
platform = Platform()
|
||||||
|
(default_cc, default_cxx) = default_host_compiler(platform)
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description="Ladybird")
|
parser = argparse.ArgumentParser(description="Ladybird")
|
||||||
subparsers = parser.add_subparsers(dest="command")
|
subparsers = parser.add_subparsers(dest="command")
|
||||||
|
@ -40,19 +43,9 @@ def main():
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
# FIXME: Validate that the cc/cxx combination is compatible (e.g. don't allow CC=gcc and CXX=clang++)
|
|
||||||
# FIXME: Migrate find_compiler.sh for more explicit compiler validation
|
|
||||||
compiler_parser = argparse.ArgumentParser(add_help=False)
|
compiler_parser = argparse.ArgumentParser(add_help=False)
|
||||||
compiler_parser.add_argument(
|
compiler_parser.add_argument("--cc", required=False, default=default_cc)
|
||||||
"--cc",
|
compiler_parser.add_argument("--cxx", required=False, default=default_cxx)
|
||||||
required=False,
|
|
||||||
default=os.environ.get("CC", "clang-cl" if platform.host_system == HostSystem.Windows else "cc"),
|
|
||||||
)
|
|
||||||
compiler_parser.add_argument(
|
|
||||||
"--cxx",
|
|
||||||
required=False,
|
|
||||||
default=os.environ.get("CXX", "clang-cl" if platform.host_system == HostSystem.Windows else "c++"),
|
|
||||||
)
|
|
||||||
|
|
||||||
target_parser = argparse.ArgumentParser(add_help=False)
|
target_parser = argparse.ArgumentParser(add_help=False)
|
||||||
target_parser.add_argument("target", nargs=argparse.OPTIONAL, default="Ladybird")
|
target_parser.add_argument("target", nargs=argparse.OPTIONAL, default="Ladybird")
|
||||||
|
@ -141,11 +134,13 @@ def main():
|
||||||
if args.target == "ladybird":
|
if args.target == "ladybird":
|
||||||
args.target = "Ladybird"
|
args.target = "Ladybird"
|
||||||
|
|
||||||
|
(cc, cxx) = pick_host_compiler(platform, args.cc, args.cxx)
|
||||||
|
|
||||||
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, cc, cxx)
|
||||||
build_main(build_dir, args.target, args.args)
|
build_main(build_dir, 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, cc, cxx)
|
||||||
build_main(build_dir)
|
build_main(build_dir)
|
||||||
test_main(build_dir, args.preset, args.pattern)
|
test_main(build_dir, args.preset, args.pattern)
|
||||||
elif args.command == "run":
|
elif args.command == "run":
|
||||||
|
@ -159,28 +154,28 @@ def main():
|
||||||
os.environ["UBSAN_OPTIONS"] = os.environ.get(
|
os.environ["UBSAN_OPTIONS"] = os.environ.get(
|
||||||
"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, cc, cxx)
|
||||||
build_main(build_dir, args.target)
|
build_main(build_dir, 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, cc, cxx)
|
||||||
build_main(build_dir, args.target, args.args)
|
build_main(build_dir, 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, cc, cxx)
|
||||||
build_main(build_dir, args.target, args.args)
|
build_main(build_dir, args.target, args.args)
|
||||||
build_main(build_dir, "install", args.args)
|
build_main(build_dir, "install", args.args)
|
||||||
elif args.command == "vcpkg":
|
elif args.command == "vcpkg":
|
||||||
configure_build_env(args.preset, args.cc, args.cxx)
|
configure_build_env(args.preset, cc, cxx)
|
||||||
build_vcpkg()
|
build_vcpkg()
|
||||||
elif args.command == "clean":
|
elif args.command == "clean":
|
||||||
clean_main(args.preset, args.cc, args.cxx)
|
clean_main(args.preset, cc, cxx)
|
||||||
elif args.command == "rebuild":
|
elif args.command == "rebuild":
|
||||||
clean_main(args.preset, args.cc, args.cxx)
|
clean_main(args.preset, cc, cxx)
|
||||||
build_dir = configure_main(platform, args.preset, args.cc, args.cxx)
|
build_dir = configure_main(platform, args.preset, cc, cxx)
|
||||||
build_main(build_dir, args.target, args.args)
|
build_main(build_dir, 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, cc, cxx)
|
||||||
build_main(build_dir, args.target)
|
build_main(build_dir, args.target)
|
||||||
addr2line_main(build_dir, args.target, args.program, args.addresses)
|
addr2line_main(build_dir, args.target, args.program, args.addresses)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue