mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-30 04:39:06 +00:00
Meta: Add missing type hints to ladybird.py
This enables significantly better LSP integration.
This commit is contained in:
parent
9d3d0c4874
commit
23a95cfb9a
Notes:
github-actions[bot]
2025-05-21 22:57:01 +00:00
Author: https://github.com/trflynn89
Commit: 23a95cfb9a
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4837
Reviewed-by: https://github.com/ADKaster ✅
1 changed files with 19 additions and 17 deletions
|
@ -48,7 +48,9 @@ class Platform:
|
|||
self.host_architecture = HostArchitecture.Unsupported
|
||||
|
||||
|
||||
def main(platform):
|
||||
def main():
|
||||
platform = Platform()
|
||||
|
||||
if platform.host_system == HostSystem.Unsupported:
|
||||
print(f"Unsupported host system {platform.system}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
@ -211,7 +213,7 @@ def main(platform):
|
|||
addr2line_main(build_dir, args.target, args.program, args.addresses)
|
||||
|
||||
|
||||
def configure_main(platform, preset: str, cc: str, cxx: str):
|
||||
def configure_main(platform: Platform, preset: str, cc: str, cxx: str) -> Path:
|
||||
cmake_args = []
|
||||
|
||||
host_system = platform.host_system
|
||||
|
@ -225,7 +227,6 @@ def configure_main(platform, preset: str, cc: str, cxx: str):
|
|||
build_vcpkg()
|
||||
validate_cmake_version()
|
||||
|
||||
cmake_args.extend(build_env_cmake_args)
|
||||
config_args = [
|
||||
"cmake",
|
||||
"--preset",
|
||||
|
@ -235,6 +236,7 @@ def configure_main(platform, preset: str, cc: str, cxx: str):
|
|||
"-B",
|
||||
build_preset_dir,
|
||||
]
|
||||
config_args.extend(build_env_cmake_args)
|
||||
config_args.extend(cmake_args)
|
||||
|
||||
# FIXME: Improve error reporting for vcpkg install failures
|
||||
|
@ -248,7 +250,7 @@ def configure_main(platform, preset: str, cc: str, cxx: str):
|
|||
return build_preset_dir
|
||||
|
||||
|
||||
def configure_skia_jemalloc():
|
||||
def configure_skia_jemalloc() -> list[str]:
|
||||
page_size = resource.getpagesize()
|
||||
gn = shutil.which("gn") or None
|
||||
|
||||
|
@ -278,7 +280,7 @@ def configure_skia_jemalloc():
|
|||
return cmake_args
|
||||
|
||||
|
||||
def configure_build_env(preset: str, cc: str, cxx: str):
|
||||
def configure_build_env(preset: str, cc: str, cxx: str) -> tuple[Path, Path, list[str]]:
|
||||
cmake_args = []
|
||||
cmake_args.extend(
|
||||
[
|
||||
|
@ -300,11 +302,12 @@ def configure_build_env(preset: str, cc: str, cxx: str):
|
|||
"Sanitizer": build_root_dir / "sanitizers",
|
||||
"Distribution": build_root_dir / "distribution",
|
||||
}
|
||||
if preset not in known_presets:
|
||||
|
||||
build_preset_dir = known_presets.get(preset, None)
|
||||
if not build_preset_dir:
|
||||
print(f'Unknown build preset "{preset}"', file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
build_preset_dir = known_presets.get(preset)
|
||||
vcpkg_root = str(build_root_dir / "vcpkg")
|
||||
os.environ["VCPKG_ROOT"] = vcpkg_root
|
||||
os.environ["PATH"] += os.pathsep + str(lb_source_dir.joinpath("Toolchain", "Local", "cmake", "bin"))
|
||||
|
@ -350,7 +353,7 @@ def validate_cmake_version():
|
|||
sys.exit(1)
|
||||
|
||||
|
||||
def ensure_ladybird_source_dir():
|
||||
def ensure_ladybird_source_dir() -> Path:
|
||||
ladybird_source_dir = os.environ.get("LADYBIRD_SOURCE_DIR", None)
|
||||
ladybird_source_dir = Path(ladybird_source_dir) if ladybird_source_dir else None
|
||||
|
||||
|
@ -374,7 +377,7 @@ def ensure_ladybird_source_dir():
|
|||
return ladybird_source_dir
|
||||
|
||||
|
||||
def build_main(build_dir, target: str | None = None, args: list[str] = []):
|
||||
def build_main(build_dir: Path, target: str | None = None, args: list[str] = []):
|
||||
build_args = [
|
||||
"cmake",
|
||||
"--build",
|
||||
|
@ -406,7 +409,7 @@ def build_main(build_dir, target: str | None = None, args: list[str] = []):
|
|||
sys.exit(1)
|
||||
|
||||
|
||||
def test_main(build_dir, preset: str, pattern: str | None):
|
||||
def test_main(build_dir: Path, preset: str, pattern: str | None):
|
||||
test_args = [
|
||||
"ctest",
|
||||
"--preset",
|
||||
|
@ -436,7 +439,7 @@ def test_main(build_dir, preset: str, pattern: str | None):
|
|||
sys.exit(1)
|
||||
|
||||
|
||||
def run_main(host_system, build_dir, target: str, args: list[str]):
|
||||
def run_main(host_system: HostSystem, build_dir: Path, target: str, args: list[str]):
|
||||
run_args = []
|
||||
|
||||
if host_system == HostSystem.macOS and target in (
|
||||
|
@ -462,14 +465,13 @@ def run_main(host_system, build_dir, target: str, args: list[str]):
|
|||
sys.exit(1)
|
||||
|
||||
|
||||
def debug_main(host_system, build_dir, target: str, debugger: str, debugger_commands: list[str]):
|
||||
def debug_main(host_system: HostSystem, build_dir: Path, target: str, debugger: str, debugger_commands: list[str]):
|
||||
debuggers = ["gdb", "lldb"]
|
||||
if debugger not in debuggers or not shutil.which(debugger):
|
||||
print("Please install gdb or lldb!", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
gdb_args = [
|
||||
debugger,
|
||||
]
|
||||
|
||||
gdb_args = [debugger]
|
||||
for cmd in debugger_commands:
|
||||
gdb_args.extend(
|
||||
[
|
||||
|
@ -529,10 +531,10 @@ def addr2line_main(build_dir, target: str, program: str, addresses: list[str]):
|
|||
sys.exit(1)
|
||||
|
||||
|
||||
def print_process_stderr(e, msg):
|
||||
def print_process_stderr(e: subprocess.CalledProcessError, msg: str):
|
||||
err_details = f": {e.stderr}" if e.stderr else ""
|
||||
print(f"{msg}{err_details}", file=sys.stderr)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(Platform())
|
||||
main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue