Introduce a TargetTriple enum to support absolute target paths
This commit is contained in:
parent
b4aa80dd73
commit
3908b2e443
12 changed files with 118 additions and 56 deletions
|
|
@ -22,6 +22,7 @@ use rustc::util::nodemap::{FxHashMap, FxHashSet};
|
|||
use rustc_resolve as resolve;
|
||||
use rustc_metadata::creader::CrateLoader;
|
||||
use rustc_metadata::cstore::CStore;
|
||||
use rustc_back::target::TargetTriple;
|
||||
|
||||
use syntax::ast::NodeId;
|
||||
use syntax::codemap;
|
||||
|
|
@ -116,7 +117,7 @@ pub fn run_core(search_paths: SearchPaths,
|
|||
cfgs: Vec<String>,
|
||||
externs: config::Externs,
|
||||
input: Input,
|
||||
triple: Option<String>,
|
||||
triple: Option<TargetTriple>,
|
||||
maybe_sysroot: Option<PathBuf>,
|
||||
allow_warnings: bool,
|
||||
crate_name: Option<String>,
|
||||
|
|
@ -131,6 +132,7 @@ pub fn run_core(search_paths: SearchPaths,
|
|||
|
||||
let warning_lint = lint::builtin::WARNINGS.name_lower();
|
||||
|
||||
let host_triple = TargetTriple::from_triple(config::host_triple());
|
||||
let sessopts = config::Options {
|
||||
maybe_sysroot,
|
||||
search_paths,
|
||||
|
|
@ -138,7 +140,7 @@ pub fn run_core(search_paths: SearchPaths,
|
|||
lint_opts: if !allow_warnings { vec![(warning_lint, lint::Allow)] } else { vec![] },
|
||||
lint_cap: Some(lint::Allow),
|
||||
externs,
|
||||
target_triple: triple.unwrap_or(config::host_triple().to_string()),
|
||||
target_triple: triple.unwrap_or(host_triple),
|
||||
// Ensure that rustdoc works even if rustc is feature-staged
|
||||
unstable_features: UnstableFeatures::Allow,
|
||||
actually_rustdoc: true,
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ use std::sync::mpsc::channel;
|
|||
use externalfiles::ExternalHtml;
|
||||
use rustc::session::search_paths::SearchPaths;
|
||||
use rustc::session::config::{ErrorOutputType, RustcOptGroup, nightly_options, Externs};
|
||||
use rustc_back::target::TargetTriple;
|
||||
|
||||
#[macro_use]
|
||||
pub mod externalfiles;
|
||||
|
|
@ -542,7 +543,13 @@ where R: 'static + Send, F: 'static + Send + FnOnce(Output) -> R {
|
|||
paths.add_path(s, ErrorOutputType::default());
|
||||
}
|
||||
let cfgs = matches.opt_strs("cfg");
|
||||
let triple = matches.opt_str("target");
|
||||
let triple = matches.opt_str("target").map(|target| {
|
||||
if target.ends_with(".json") {
|
||||
TargetTriple::TargetPath(PathBuf::from(target))
|
||||
} else {
|
||||
TargetTriple::TargetTriple(target)
|
||||
}
|
||||
});
|
||||
let maybe_sysroot = matches.opt_str("sysroot").map(PathBuf::from);
|
||||
let crate_name = matches.opt_str("crate-name");
|
||||
let crate_version = matches.opt_str("crate-version");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue