1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-08 05:27:14 +09:00
ladybird/Meta/host_platform.py
Timothy Flynn aa0fcc67b3 Meta: Tentatively support BSD distributions in ladybird.py
Support was unknowingly dropped when porting ladybird.sh to ladybird.py.
This tentatively restores this support, but is untested on a BSD system.
2025-05-29 16:24:17 -04:00

62 lines
1.9 KiB
Python

# Copyright (c) 2025, ayeteadoe <ayeteadoe@gmail.com>
# Copyright (c) 2025, Tim Flynn <trflynn89@ladybird.org>
#
# SPDX-License-Identifier: BSD-2-Clause
import enum
import platform
import sys
class HostArchitecture(enum.IntEnum):
x86_64 = enum.auto()
AArch64 = enum.auto()
class HostSystem(enum.IntEnum):
Linux = enum.auto()
macOS = enum.auto()
Windows = enum.auto()
BSD = enum.auto()
class Platform:
def __init__(self):
self.system = platform.system()
if self.system == "Windows":
self.host_system = HostSystem.Windows
elif self.system == "Darwin":
self.host_system = HostSystem.macOS
elif self.system == "Linux":
self.host_system = HostSystem.Linux
elif self.system in ("FreeBSD", "OpenBSD", "NetBSD", "DragonFly"):
self.host_system = HostSystem.BSD
else:
print(f"Unsupported host system {self.system}", file=sys.stderr)
sys.exit(1)
self.architecture = platform.machine().lower()
if self.architecture in ("x86_64", "amd64"):
self.host_architecture = HostArchitecture.x86_64
elif self.architecture in ("aarch64", "arm64"):
self.host_architecture = HostArchitecture.AArch64
else:
print(f"Unsupported host architecture {self.architecture}", file=sys.stderr)
sys.exit(1)
def default_compiler(self) -> tuple[str, str]:
if self.host_system == HostSystem.Windows:
return ("clang-cl", "clang-cl")
return ("cc", "c++")
def default_debugger(self) -> str:
if self.host_system in (HostSystem.Linux, HostSystem.BSD):
return "gdb"
return "lldb"
def default_symbolizer(self) -> str:
if self.host_system == HostSystem.Windows:
return "llvm-symbolizer"
if self.host_system == HostSystem.macOS:
return "atos"
return "addr2line"