pub struct BuildGraph {
pub actions: Vec<BuildAction>,
pub dialect: Dialect,
pub default_outputs: Vec<Utf8PathBuf>,
pub compile_commands: Vec<CompileCommand>,
}Expand description
Backend-independent description of everything that needs to happen to
realize a build. A backend (currently cabin-ninja) walks this graph,
lowers each semantic BuildAction to a concrete command via
cabin_driver::lower() for the graph’s Dialect, and emits the
equivalent build-system-specific representation.
Fields§
§actions: Vec<BuildAction>All actions to execute, in topological order. Earlier actions in the vector never depend on later actions. These are semantic actions: compile / archive / link intent, not pre-lowered argv.
dialect: DialectCommand-line dialect every action in this graph is lowered for. The backend reads it to pick compile/archive/link spellings and the matching Ninja dependency-tracking mode.
default_outputs: Vec<Utf8PathBuf>Output paths that should be marked as default targets.
compile_commands: Vec<CompileCommand>One entry per C/C++ source compile, used to emit
compile_commands.json. Both languages contribute entries
with their language-appropriate compiler driver and flags
recorded in arguments.
Trait Implementations§
Source§impl Clone for BuildGraph
impl Clone for BuildGraph
Source§fn clone(&self) -> BuildGraph
fn clone(&self) -> BuildGraph
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BuildGraph
impl Debug for BuildGraph
impl Eq for BuildGraph
Source§impl PartialEq for BuildGraph
impl PartialEq for BuildGraph
Source§fn eq(&self, other: &BuildGraph) -> bool
fn eq(&self, other: &BuildGraph) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for BuildGraph
Auto Trait Implementations§
impl Freeze for BuildGraph
impl RefUnwindSafe for BuildGraph
impl Send for BuildGraph
impl Sync for BuildGraph
impl Unpin for BuildGraph
impl UnsafeUnpin for BuildGraph
impl UnwindSafe for BuildGraph
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.