pyodide/pyodide-build/pyodide_build/out_of_tree/build.py

37 lines
1.1 KiB
Python
Raw Normal View History

import os
from pathlib import Path
from typing import Any
from .. import build_env, common, pypabuild
def run(srcdir: Path, outdir: Path, exports: Any, args: list[str]) -> Path:
outdir = outdir.resolve()
cflags = build_env.get_build_flag("SIDE_MODULE_CFLAGS")
cflags += f" {os.environ.get('CFLAGS', '')}"
cxxflags = build_env.get_build_flag("SIDE_MODULE_CXXFLAGS")
cxxflags += f" {os.environ.get('CXXFLAGS', '')}"
ldflags = build_env.get_build_flag("SIDE_MODULE_LDFLAGS")
ldflags += f" {os.environ.get('LDFLAGS', '')}"
env = os.environ.copy()
env.update(build_env.get_build_environment_vars())
build_env_ctx = pypabuild.get_build_env(
env=env,
pkgname="",
cflags=cflags,
cxxflags=cxxflags,
ldflags=ldflags,
target_install_dir="",
exports=exports,
)
with build_env_ctx as env:
built_wheel = pypabuild.build(srcdir, outdir, env, " ".join(args))
wheel_path = Path(built_wheel)
with common.modify_wheel(wheel_path) as wheel_dir:
build_env.replace_so_abi_tags(wheel_dir)
return wheel_path