mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-12-27 00:19:36 -05:00
5323c2d870
Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
"""Repository rule to autoconfigure a toolchain using the system mkosi."""
|
|
|
|
def _write_build(rctx, path):
|
|
if not path:
|
|
path = ""
|
|
rctx.template(
|
|
"BUILD",
|
|
Label("//bazel/mkosi:BUILD.tpl"),
|
|
substitutions = {
|
|
"{GENERATOR}": "@constellation//bazel/mkosi/mkosi_configure.bzl%find_system_mkosi",
|
|
"{MKOSI_PATH}": str(path),
|
|
},
|
|
executable = False,
|
|
)
|
|
|
|
def _find_system_mkosi_impl(rctx):
|
|
mkosi_path = rctx.which("mkosi")
|
|
if rctx.attr.verbose:
|
|
if mkosi_path:
|
|
print("Found mkosi at '%s'" % mkosi_path) # buildifier: disable=print
|
|
else:
|
|
print("No system mkosi found.") # buildifier: disable=print
|
|
_write_build(rctx = rctx, path = mkosi_path)
|
|
|
|
_find_system_mkosi = repository_rule(
|
|
implementation = _find_system_mkosi_impl,
|
|
doc = """Create a repository that defines an mkosi toolchain based on the system mkosi.""",
|
|
local = True,
|
|
environ = ["PATH"],
|
|
attrs = {
|
|
"verbose": attr.bool(
|
|
doc = "If true, print status messages.",
|
|
),
|
|
},
|
|
)
|
|
|
|
def find_system_mkosi(name, verbose = False):
|
|
_find_system_mkosi(name = name, verbose = verbose)
|
|
native.register_toolchains(
|
|
"@constellation//bazel/mkosi:mkosi_nix_toolchain",
|
|
"@%s//:mkosi_auto_toolchain" % name,
|
|
"@constellation//bazel/mkosi:mkosi_missing_toolchain",
|
|
)
|