Struct Build

Source
pub struct Build<'a> {
    pub outputs: Vec<Value<'a>>,
    pub implicit_outputs: Vec<Value<'a>>,
    pub rule: Identifier<'a>,
    pub inputs: Vec<Value<'a>>,
    pub implicit_inputs: Vec<Value<'a>>,
    pub order_only_inputs: Vec<Value<'a>>,
    pub bindings: Vec<Binding<'a>>,
}
Expand description

Build instruction.

The build instructions describe commands that have to be executed in order to produce the outputs. They are called “edges” in ninja jargon while the inputs and outputs are called “nodes”.

Example:

build foo.o : c foo.c || generated_header.h
  cflags = -DHAVE_BAR=1

Fields§

§outputs: Vec<Value<'a>>

Outputs.

This is what the build instruction produces. There can be many outputs but having at least one is mandatory. These are populated into the implicit $out variable by ninja.

§implicit_outputs: Vec<Value<'a>>

Implicit outputs.

Also produced by the build instruction. The difference to the outputs is that they are optional and are not populated into the $out variable by ninja.

§rule: Identifier<'a>

Rule name.

The name of the rule that is used to generate the command to execute to generate an output.

§inputs: Vec<Value<'a>>

Inputs.

These are used to produce the outputs. During rebuilding when any of these are considered out-of-date the outputs will have to rebuild. They are populated into the $in variable by ninja.

§implicit_inputs: Vec<Value<'a>>

Implicit inputs.

Similar to inputs but not populated into the $in variable by ninja.

§order_only_inputs: Vec<Value<'a>>

Order-only inputs.

These are inputs that have to exist for this build instruction to run. They are not checked for being up-to-date when rebuilding.

§bindings: Vec<Binding<'a>>

Variable assignments.

These can be used to customize the commands set forth by the rule.

Trait Implementations§

Source§

impl<'a> Clone for Build<'a>

Source§

fn clone(&self) -> Build<'a>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for Build<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> PartialEq for Build<'a>

Source§

fn eq(&self, other: &Build<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> Eq for Build<'a>

Source§

impl<'a> StructuralPartialEq for Build<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Build<'a>

§

impl<'a> RefUnwindSafe for Build<'a>

§

impl<'a> Send for Build<'a>

§

impl<'a> Sync for Build<'a>

§

impl<'a> Unpin for Build<'a>

§

impl<'a> UnwindSafe for Build<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.