Skip to main content

InstallStep

Enum InstallStep 

Source
pub enum InstallStep {
Show 17 variants System { argv: Vec<String>, }, Configure { args: Vec<String>, }, Make { args: Vec<String>, }, CMake { args: Vec<String>, }, Bootstrap { args: Vec<String>, }, Cargo { args: Vec<String>, }, Go { args: Vec<String>, }, Meson { args: Vec<String>, }, BinInstall { from: String, to: Option<String>, }, LibInstall { from: String, to: Option<String>, }, IncludeInstall { from: String, to: Option<String>, }, PrefixInstall { from: String, to: Option<String>, }, EnvSet { key: String, value: String, }, Inreplace { file: String, from: String, to: String, }, StageResource { name: String, dir: Option<String>, }, ApplyPatch { index: usize, }, Unsupported { construct: String, },
}
Expand description

One executable step of an InstallPlan. Steps run in order, in the staged source directory, with the plan’s accumulated environment.

Variants§

§

System

A fully-resolved system "cmd", ... invocation (argv[0] is the program).

Fields

§argv: Vec<String>

Full argv including the program.

§

Configure

system "./configure", ... — args exclude the ./configure itself.

Fields

§args: Vec<String>

Arguments to ./configure.

§

Make

system "make", ... — args exclude the make itself.

Fields

§args: Vec<String>

Arguments to make.

§

CMake

system "cmake", ... — args exclude the cmake itself.

Fields

§args: Vec<String>

Arguments to cmake.

§

Bootstrap

system "./bootstrap" — args exclude the script itself.

Fields

§args: Vec<String>

Arguments to ./bootstrap.

§

Cargo

system "cargo", ... — args exclude the cargo itself.

Fields

§args: Vec<String>

Arguments to cargo (e.g. install --locked ...).

§

Go

system "go", ... — args exclude the go itself.

Fields

§args: Vec<String>

Arguments to go (e.g. build -trimpath ...).

§

Meson

system "meson", ... or system "ninja", .... Because this variant covers two programs, args is the FULL argv including the program at args[0] ("meson" or "ninja").

Fields

§args: Vec<String>

Full argv including the program (meson / ninja).

§

BinInstall

bin.install "f" (optionally renamed via => "g").

Fields

§from: String

Source path relative to the build dir.

§to: Option<String>

Optional rename inside <prefix>/bin.

§

LibInstall

lib.install "f" (optionally renamed).

Fields

§from: String

Source path relative to the build dir.

§to: Option<String>

Optional rename inside <prefix>/lib.

§

IncludeInstall

include.install "f" (optionally renamed).

Fields

§from: String

Source path relative to the build dir.

§to: Option<String>

Optional rename inside <prefix>/include.

§

PrefixInstall

prefix.install "f", and the subdir receivers (libexec.install, share.install, man1.install, pkgshare.install) via to = Some("libexec") / Some("share/man/man1") / etc. A rename form appends the new name: libexec.install "a" => "b" yields to = Some("libexec/b").

Fields

§from: String

Source path relative to the build dir.

§to: Option<String>

Destination relative to the prefix (None = prefix root).

§

EnvSet

ENV["K"] = "v" / ENV.append / ENV.prependvalue is the fully merged value at this point of the plan.

Fields

§key: String

Environment variable name.

§value: String

Fully resolved (and append/prepend-merged) value.

§

Inreplace

inreplace "file", "from", "to" with string literals only.

Fields

§file: String

File to edit, relative to the build dir.

§from: String

Literal text to replace.

§to: String

Replacement text.

§

StageResource

resource("name").stage / .stage(dir) — unpack the named resource into dir (relative to the build dir) or the current dir.

Fields

§name: String

Resource name (matches ResourceSpec::name).

§dir: Option<String>

Optional destination dir relative to the build dir.

§

ApplyPatch

Apply InstallPlan::patches[index] to the staged source.

Fields

§index: usize
§

Unsupported

A construct the parser does not support; construct carries the source text so callers can report exactly what blocked native execution.

Fields

§construct: String

The offending recipe source text.

Trait Implementations§

Source§

impl Clone for InstallStep

Source§

fn clone(&self) -> InstallStep

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for InstallStep

Source§

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

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

impl<'de> Deserialize<'de> for InstallStep

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for InstallStep

Source§

fn eq(&self, other: &InstallStep) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Serialize for InstallStep

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for InstallStep

Auto Trait Implementations§

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromBase64 for T
where T: for<'de> Deserialize<'de>,

Source§

fn from_base64<Input>(raw: &Input) -> Result<T, Error>
where Input: AsRef<[u8]> + ?Sized,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<C> SignWithKey<String> for C
where C: ToBase64,

Source§

impl<T> ToBase64 for T
where T: Serialize,

Source§

fn to_base64(&self) -> Result<Cow<'_, str>, Error>

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more