pub struct SysrootBuilder { /* private fields */ }Expand description
A builder interface for constructing the Sysroot
See the individual methods for more details on what this means and what defaults exist.
Implementations§
Source§impl SysrootBuilder
impl SysrootBuilder
Sourcepub fn new() -> Self
pub fn new() -> Self
New SysrootBuilder.
sysroot_crate specifies which libraries to build as part of
the sysroot. See Sysroot for more details.
Sourcepub fn manifest(&mut self, manifest: PathBuf) -> &mut Self
pub fn manifest(&mut self, manifest: PathBuf) -> &mut Self
Set path to the Cargo.toml of the project requiring a custom sysroot.
If provided, any Cargo Profile’s in the provided manifest will be copied into the sysroot crate being compiled.
If not provided, profiles use their default settings.
By default this will be None.
Sourcepub fn output(&mut self, output: PathBuf) -> &mut Self
pub fn output(&mut self, output: PathBuf) -> &mut Self
Set where the sysroot directory will be placed.
By default this is ./target/sysroot.
Sourcepub fn target(&mut self, target: PathBuf) -> &mut Self
pub fn target(&mut self, target: PathBuf) -> &mut Self
The target to compile for. This can be a target-triple, or a JSON Target Specification.
By default this is None, and if not set when
SysrootBuilder::build is called, will cause an error.
Sourcepub fn rust_src(&mut self, rust_src: PathBuf) -> &mut Self
pub fn rust_src(&mut self, rust_src: PathBuf) -> &mut Self
The rust source directory. These are used to compile the sysroot.
By default this uses the rust-src component from the
current rustup toolchain.
Sourcepub fn features(&mut self, features: &[Features]) -> &mut Self
pub fn features(&mut self, features: &[Features]) -> &mut Self
Which features to enable.
This adds to, not replaces, any previous calls to this method.
By default this is empty.
See Features for details.
Sourcepub fn rustc_flags<I, S>(&mut self, flags: I) -> &mut Self
pub fn rustc_flags<I, S>(&mut self, flags: I) -> &mut Self
Custom flags to pass to all rustc compiler invocations.
This adds to, not replaces, any previous calls to this method.
By default this is empty.
§Internal
This will use the RUSTFLAGS to ensure flags are set for all
invocations.
Flags passed to this method will be appended
to any existing RUSTFLAGS.
Sourcepub fn build(&self) -> Result<PathBuf>
pub fn build(&self) -> Result<PathBuf>
Build the Sysroot, and return a path suitable to pass to rustc.
§Errors
SysrootBuilder::targetwas not called- If
manifestis provided and does not exist - If
targetis a JSON specification, but doesn’t exist. - If the
rust_srcdirectory does not exist, or could not be detected. - If the sysroot cannot be setup, or fails to compile
Trait Implementations§
Source§impl Clone for SysrootBuilder
impl Clone for SysrootBuilder
Source§fn clone(&self) -> SysrootBuilder
fn clone(&self) -> SysrootBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more