wip
This commit is contained in:
+14
-76
@@ -1,50 +1,31 @@
|
||||
# Commonly used helpers, auto-loaded into every recipe.
|
||||
|
||||
def _toolchain_env(ctx):
|
||||
sysroot_flag = " --sysroot=" + ctx.sysroot
|
||||
return {
|
||||
"CFLAGS": OPTIONS.cflags + sysroot_flag,
|
||||
"CXXFLAGS": OPTIONS.cxxflags + sysroot_flag,
|
||||
"LDFLAGS": OPTIONS.ldflags + sysroot_flag,
|
||||
}
|
||||
|
||||
# Autotools
|
||||
# Commonly used helpers.
|
||||
|
||||
def autotools_configure(ctx, extra_args = [], extra_env = {}):
|
||||
args = [
|
||||
ctx.source_dir + "/configure",
|
||||
env = {
|
||||
"CFLAGS": options.cflags,
|
||||
"CXXFLAGS": options.cxxflags,
|
||||
"LDFLAGS": options.ldflags,
|
||||
}
|
||||
env.update(extra_env)
|
||||
ctx.run([
|
||||
ctx.source_dir / "configure",
|
||||
"--host=" + options.target_triple,
|
||||
"--with-sysroot=" + ctx.sysroot,
|
||||
"--prefix=" + ctx.prefix,
|
||||
"--sysconfdir=/etc",
|
||||
"--localstatedir=/var",
|
||||
"--bindir=" + ctx.prefix + "/bin",
|
||||
"--sbindir=" + ctx.prefix + "/bin",
|
||||
"--libdir=" + ctx.prefix + "/lib",
|
||||
"--with-sysroot=" + ctx.sysroot,
|
||||
"--disable-static",
|
||||
"--enable-shared",
|
||||
]
|
||||
args.append("--host=" + OPTIONS.target_triple)
|
||||
args.extend(extra_args)
|
||||
|
||||
envs = _toolchain_env(ctx)
|
||||
envs.update(extra_env)
|
||||
|
||||
ctx.run(args, env = envs)
|
||||
] + extra_args, env = env)
|
||||
|
||||
def autotools_build(ctx, extra_args = []):
|
||||
args = ["make", "-j" + str(ctx.jobs)]
|
||||
args.extend(extra_args)
|
||||
ctx.run(args)
|
||||
|
||||
def autotools_check(ctx, extra_args = []):
|
||||
args = ["make", "check", "-j" + str(ctx.jobs)]
|
||||
args.extend(extra_args)
|
||||
ctx.run(args)
|
||||
ctx.run(["make", "-j" + str(ctx.jobs)] + extra_args)
|
||||
|
||||
def autotools_install(ctx, pkg, extra_args = []):
|
||||
args = ["make", "install", "DESTDIR=" + pkg.destdir]
|
||||
args.extend(extra_args)
|
||||
ctx.run(args)
|
||||
ctx.run(["make", "install"] + extra_args, env = {"DESTDIR": pkg.destdir})
|
||||
|
||||
def autotools(configure_args = [], configure_env = [], build_args = [], install_args = []):
|
||||
def _configure(ctx):
|
||||
@@ -54,46 +35,3 @@ def autotools(configure_args = [], configure_env = [], build_args = [], install_
|
||||
def _install(ctx, pkg):
|
||||
autotools_install(ctx, pkg, extra_args = install_args)
|
||||
return _configure, _build, _install
|
||||
|
||||
# Meson
|
||||
|
||||
def meson_configure(ctx, extra_args = []):
|
||||
args = [
|
||||
"meson",
|
||||
"setup",
|
||||
ctx.build_dir,
|
||||
ctx.source_dir,
|
||||
"--prefix=" + ctx.prefix,
|
||||
]
|
||||
args.extend(extra_args)
|
||||
ctx.run(args, env = _toolchain_env(ctx))
|
||||
|
||||
def meson_build(ctx):
|
||||
ctx.run(["meson", "compile", "-C", ctx.build_dir, "-j" + str(ctx.jobs)])
|
||||
|
||||
def meson_install(ctx, pkg):
|
||||
ctx.run(["meson", "install", "-C", ctx.build_dir, "--destdir", pkg.destdir])
|
||||
|
||||
def meson(configure_args = [], build_args = [], install_args = []):
|
||||
def _configure(ctx):
|
||||
meson_configure(ctx, extra_args = configure_args)
|
||||
def _build(ctx):
|
||||
meson_build(ctx, extra_args = build_args)
|
||||
def _install(ctx, pkg):
|
||||
meson_install(ctx, pkg, extra_args = install_args)
|
||||
return _configure, _build, _install
|
||||
|
||||
# Make
|
||||
|
||||
def make(ctx, target = None, extra_args = []):
|
||||
args = ["make", "-C", ctx.source_dir, "O=" + ctx.build_dir,
|
||||
"-j" + str(ctx.jobs)]
|
||||
args.extend(extra_args)
|
||||
if target:
|
||||
args.append(target)
|
||||
ctx.run(args)
|
||||
|
||||
def make_install(ctx, pkg, extra_args = []):
|
||||
args = ["make", "-C", ctx.build_dir, "DESTDIR=" + pkg.destdir, "install"]
|
||||
args.extend(extra_args)
|
||||
ctx.run(args)
|
||||
|
||||
Reference in New Issue
Block a user