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).
Configure
system "./configure", ... — args exclude the ./configure itself.
Make
system "make", ... — args exclude the make itself.
CMake
system "cmake", ... — args exclude the cmake itself.
Bootstrap
system "./bootstrap" — args exclude the script itself.
Cargo
system "cargo", ... — args exclude the cargo itself.
Go
system "go", ... — args exclude the go itself.
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").
BinInstall
bin.install "f" (optionally renamed via => "g").
Fields
LibInstall
lib.install "f" (optionally renamed).
Fields
IncludeInstall
include.install "f" (optionally renamed).
Fields
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
EnvSet
ENV["K"] = "v" / ENV.append / ENV.prepend — value is the fully
merged value at this point of the plan.
Fields
Inreplace
inreplace "file", "from", "to" with string literals only.
Fields
StageResource
resource("name").stage / .stage(dir) — unpack the named resource
into dir (relative to the build dir) or the current dir.
Fields
name: StringResource name (matches ResourceSpec::name).
ApplyPatch
Apply InstallPlan::patches[index] to the staged source.
Fields
index: usizeIndex into InstallPlan::patches.
Unsupported
A construct the parser does not support; construct carries the
source text so callers can report exactly what blocked native
execution.
Trait Implementations§
Source§impl Clone for InstallStep
impl Clone for InstallStep
Source§fn clone(&self) -> InstallStep
fn clone(&self) -> InstallStep
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 InstallStep
impl Debug for InstallStep
Source§impl<'de> Deserialize<'de> for InstallStep
impl<'de> Deserialize<'de> for InstallStep
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for InstallStep
impl PartialEq for InstallStep
Source§fn eq(&self, other: &InstallStep) -> bool
fn eq(&self, other: &InstallStep) -> bool
self and other values to be equal, and is used by ==.