let opts = ops::CleanOptions {
config,
spec: values(args, "package"),
- target: args.value_of("target"),
+ target: args.target(),
release: args.is_present("release"),
};
ops::clean(&ws, &opts)?;
list: args.is_present("list"),
check_metadata: !args.is_present("no-metadata"),
allow_dirty: args.is_present("allow-dirty"),
- target: args.value_of("target"),
+ target: args.target(),
jobs: args.jobs()?,
registry: None,
})?;
index,
verify: !args.is_present("no-verify"),
allow_dirty: args.is_present("allow-dirty"),
- target: args.value_of("target"),
+ target: args.target(),
jobs: args.jobs()?,
dry_run: args.is_present("dry-run"),
registry,
Ok(jobs)
}
+ fn target(&self) -> Option<String> {
+ self._value_of("target").map(|s| s.to_string())
+ }
+
fn _value_of(&self, name: &str) -> Option<&str>;
}
let opts = CompileOptions {
config,
jobs: args.jobs()?,
- target: args.value_of("target"),
+ target: args.target(),
features: values(args, "features"),
all_features: args.is_present("all-features"),
no_default_features: args.is_present("no-default-features"),
use ops::{self, Context, BuildConfig, Kind, Unit};
pub struct CleanOptions<'a> {
- pub spec: Vec<String>,
- pub target: Option<&'a str>,
pub config: &'a Config,
+ pub spec: Vec<String>,
+ pub target: Option<String>,
pub release: bool,
}
let mut cx = Context::new(ws, &resolve, &packages, opts.config,
BuildConfig {
host_triple,
- requested_target: opts.target.map(|s| s.to_owned()),
+ requested_target: opts.target.clone(),
release: opts.release,
jobs: 1,
..BuildConfig::default()
/// Number of concurrent jobs to use.
pub jobs: Option<u32>,
/// The target platform to compile for (example: `i686-unknown-linux-gnu`).
- pub target: Option<&'a str>,
+ pub target: Option<String>,
/// Extra features to build for the root package
pub features: Vec<String>,
/// Flag whether all available features should be built for the root package
options: &CompileOptions<'a>,
exec: Arc<Executor>)
-> CargoResult<ops::Compilation<'a>> {
- let CompileOptions { config, jobs, target, ref spec, ref features,
+ let CompileOptions { config, jobs, ref target, ref spec, ref features,
all_features, no_default_features,
release, mode, message_format,
ref filter,
ref target_rustdoc_args,
ref target_rustc_args } = *options;
- let target = target.map(|s| s.to_string());
+ let target = target.clone();
if jobs == Some(0) {
bail!("jobs must be at least 1")
// nothing we can do about it and otherwise if it's getting overwritten
// then that's also ok!
let mut target_dir = ws.target_dir();
- if let Some(triple) = options.compile_opts.target {
+ if let Some(ref triple) = options.compile_opts.target {
target_dir.push(Path::new(triple).file_stem().unwrap());
}
let path = target_dir.join("doc").join(&name).join("index.html");
pub allow_dirty: bool,
pub verify: bool,
pub jobs: Option<u32>,
- pub target: Option<&'cfg str>,
+ pub target: Option<String>,
pub registry: Option<String>,
}
ops::compile_ws(&ws, None, &ops::CompileOptions {
config,
jobs: opts.jobs,
- target: opts.target,
+ target: opts.target.clone(),
features: Vec::new(),
no_default_features: false,
all_features: false,
pub verify: bool,
pub allow_dirty: bool,
pub jobs: Option<u32>,
- pub target: Option<&'cfg str>,
+ pub target: Option<String>,
pub dry_run: bool,
pub registry: Option<String>,
}
list: false,
check_metadata: true,
allow_dirty: opts.allow_dirty,
- target: opts.target,
+ target: opts.target.clone(),
jobs: opts.jobs,
registry: opts.registry.clone(),
})?.unwrap();