Build domains¶
A [build.<domain>] table is one buildable component. Its domain
controls where the source is built and what kind of artifact it contributes.
iree: graph plugin¶
[build.graph]
namespace = "example"
toolchain = "cpp"
sources = ["src/model.cpp"]
exports = ["model"]
A graph artifact is compiled for the build host and loaded by the SYNaPSe
Compiler. Its exports are C++ graph and codec objects used to construct compiler IR.
The plugin itself is not shipped as the graph executable for the target.
orchestration: portable Wasm¶
[build.orchestration]
toolchain = "cpp"
sources = ["src/application.cpp"]
Orchestration packages contain portable control flow such as an
Mln::Sdk::Orchestration. C and C++ use a WASI toolchain; Go uses TinyGo for
the current WebAssembly representation.
native: deployment provider¶
[build.native.image]
toolchain = "cpp"
sources = ["src/image.cpp"]
libraries = ["opencv_core"]
Native packages are shared providers built for the deployment architecture.
Several providers can coexist under stable labels such as
build.native.image and build.native.tokenizer.
driver: runtime backend plugin¶
[build.driver.qnn]
toolchain = "cpp"
sources = ["src/driver.cpp"]
Drivers extend device discovery and execution in the MyeLiN Runtime. They use
the mln_runtime_driver ABI and are not interchangeable with Native providers.
extends¶
extends inherits another build-package definition:
[build.orchestration.application]
toolchain = "cpp"
extends = ["control:base"]
A reference identifies a project dependency and build package. Missing targets, invalid reference syntax, and incompatible explicit runtime domains are rejected.
uses¶
uses adds a build-time artifact dependency rather than inheriting source
configuration:
[build.native.wrapper]
toolchain = "cpp"
uses = ["support"]
Use extends for definition composition; use uses when one build component
needs another component's produced artifact.
Source discovery¶
sources may name files or directories. When it is omitted, the planner can
use repository layout/convention-based discovery. Explicit source lists are
preferable when a package boundary should be obvious and auditable.
Domain vs target¶
The domain is not the hardware backend:
ireemeans “host plugin that describes a graph to the Compiler”;- a graph policy backend selects the IREE graph target;
nativeuses the deployment CPU/platform toolchain;wasmis the physical build value for portable Orchestration represented as WebAssembly.
See Toolchains and Devices.