*: Switch to python
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
def meson_cross_file(self):
|
||||
cross = self.build_dir / "meson-cross.ini"
|
||||
self.write_text(
|
||||
cross,
|
||||
f"""\
|
||||
[binaries]
|
||||
c = '{self.triple}-gcc'
|
||||
cpp = '{self.triple}-g++'
|
||||
ar = '{self.triple}-gcc-ar'
|
||||
nm = '{self.triple}-nm'
|
||||
objcopy = '{self.triple}-objcopy'
|
||||
ranlib = '{self.triple}-ranlib'
|
||||
strip = '{self.triple}-strip'
|
||||
pkg-config = '{self.triple}-pkg-config'
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = '{self.arch}'
|
||||
cpu = '{self.arch}'
|
||||
endian = 'little'
|
||||
""",
|
||||
)
|
||||
return cross
|
||||
|
||||
|
||||
def meson_configure(
|
||||
self, extra_args=(), extra_env=None, *, source_dir=None, flags=True, host=False
|
||||
):
|
||||
p = self.options
|
||||
env = {}
|
||||
if flags:
|
||||
env.update(
|
||||
{
|
||||
"CFLAGS": p.get("cflags", ""),
|
||||
"CXXFLAGS": p.get("cxxflags", ""),
|
||||
"LDFLAGS": p.get("ldflags", ""),
|
||||
}
|
||||
)
|
||||
if extra_env:
|
||||
env.update(extra_env)
|
||||
cross_args = [] if host else ["--cross-file", meson_cross_file(self)]
|
||||
self.run(
|
||||
"meson",
|
||||
"setup",
|
||||
source_dir or self.source_dir,
|
||||
*cross_args,
|
||||
f"--prefix={p.get('prefix', '/usr')}",
|
||||
f"--sysconfdir={p.get('sysconfdir', '/etc')}",
|
||||
f"--localstatedir={p.get('localstatedir', '/var')}",
|
||||
"--libdir=lib",
|
||||
"--sbindir=bin",
|
||||
"--bindir=bin",
|
||||
"--datadir=share",
|
||||
"--buildtype=release",
|
||||
"-Ddefault_library=shared",
|
||||
*extra_args,
|
||||
env=env,
|
||||
)
|
||||
|
||||
|
||||
def meson_build(self, extra_args=()):
|
||||
self.run("meson", "compile", f"-j{self.jobs}", *extra_args)
|
||||
|
||||
|
||||
def meson_install(self, extra_args=()):
|
||||
self.run(
|
||||
"meson",
|
||||
"install",
|
||||
"--no-rebuild",
|
||||
*extra_args,
|
||||
env={"DESTDIR": str(self.dest_dir)},
|
||||
)
|
||||
|
||||
|
||||
def meson(*, configure_args=(), configure_env=None, build_args=(), install_args=()):
|
||||
def _configure(self):
|
||||
meson_configure(self, configure_args, configure_env)
|
||||
|
||||
def _build(self):
|
||||
meson_build(self, build_args)
|
||||
|
||||
def _install(self):
|
||||
meson_install(self, install_args)
|
||||
|
||||
return _configure, _build, _install
|
||||
Reference in New Issue
Block a user