mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-25 06:14:18 +08:00
52 lines
1.4 KiB
Python
Executable File
52 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
# This script wraps llvm-config that intended for cross compiling to Redox.
|
|
# Because we can't run llvm-config compiled to Redox, we wrap it here.
|
|
# Any recipes that calls this script must have "host:llvm.runtime" available.
|
|
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
|
|
LLVM_CONFIG = "/usr/bin/llvm-config"
|
|
|
|
def main():
|
|
toolchain_path = os.environ.get("COOKBOOK_TOOLCHAIN")
|
|
sysroot_path = os.environ.get("COOKBOOK_SYSROOT")
|
|
|
|
if not toolchain_path or not sysroot_path:
|
|
print(f"Error: COOKBOOK_TOOLCHAIN or COOKBOOK_SYSROOT not set", file=sys.stderr)
|
|
sys.exit(1)
|
|
|
|
cmd = [toolchain_path + LLVM_CONFIG] + sys.argv[1:]
|
|
|
|
try:
|
|
result = subprocess.run(
|
|
cmd,
|
|
stdout=subprocess.PIPE,
|
|
stderr=sys.stderr,
|
|
check=False,
|
|
text=True
|
|
)
|
|
except FileNotFoundError:
|
|
print(f"Error: Could not find executable '{LLVM_CONFIG}'", file=sys.stderr)
|
|
sys.exit(1)
|
|
|
|
if result.returncode != 0:
|
|
sys.exit(result.returncode)
|
|
|
|
output = result.stdout
|
|
|
|
if sys.argv[1] in ["--bindir"]:
|
|
output = toolchain_path + "/usr/bin"
|
|
else: #if sys.argv[1] in ["--cppflags", "--cxxflags", "--includedir", "--ldflags", "--libdir", "--libfiles"]
|
|
src = toolchain_path.rstrip(os.sep)
|
|
dst = sysroot_path.rstrip(os.sep)
|
|
|
|
output = output.replace(src, dst)
|
|
|
|
print(output, end='')
|
|
|
|
if __name__ == "__main__":
|
|
main()
|