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(sysroot_crate: Sysroot) -> Self
pub fn new(sysroot_crate: Sysroot) -> 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::target
was not called- If
manifest
is provided and does not exist - If
target
is a JSON specification, but doesn’t exist. - If the
rust_src
directory 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