-// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
extern crate toml;
#[macro_use]
extern crate serde_derive;
"armv5te-unknown-linux-musleabi",
"armv7-apple-ios",
"armv7-linux-androideabi",
+ "thumbv7neon-linux-androideabi",
"armv7-unknown-linux-gnueabihf",
+ "thumbv7neon-unknown-linux-gnueabihf",
"armv7-unknown-linux-musleabihf",
"armebv7r-none-eabi",
"armebv7r-none-eabihf",
manifest_version: String,
date: String,
pkg: BTreeMap<String, Package>,
- renames: BTreeMap<String, Rename>
+ renames: BTreeMap<String, Rename>,
+ profiles: BTreeMap<String, Vec<String>>,
}
#[derive(Serialize)]
rustfmt_release: String,
llvm_tools_release: String,
lldb_release: String,
+ miri_release: String,
input: PathBuf,
output: PathBuf,
rustfmt_version: Option<String>,
llvm_tools_version: Option<String>,
lldb_version: Option<String>,
+ miri_version: Option<String>,
rust_git_commit_hash: Option<String>,
cargo_git_commit_hash: Option<String>,
rustfmt_git_commit_hash: Option<String>,
llvm_tools_git_commit_hash: Option<String>,
lldb_git_commit_hash: Option<String>,
+ miri_git_commit_hash: Option<String>,
should_sign: bool,
}
let output = PathBuf::from(args.next().unwrap());
let date = args.next().unwrap();
let rust_release = args.next().unwrap();
+ let s3_address = args.next().unwrap();
let cargo_release = args.next().unwrap();
let rls_release = args.next().unwrap();
let clippy_release = args.next().unwrap();
+ let miri_release = args.next().unwrap();
let rustfmt_release = args.next().unwrap();
let llvm_tools_release = args.next().unwrap();
let lldb_release = args.next().unwrap();
- let s3_address = args.next().unwrap();
// Do not ask for a passphrase while manually testing
let mut passphrase = String::new();
rustfmt_release,
llvm_tools_release,
lldb_release,
+ miri_release,
input,
output,
rustfmt_version: None,
llvm_tools_version: None,
lldb_version: None,
+ miri_version: None,
rust_git_commit_hash: None,
cargo_git_commit_hash: None,
rustfmt_git_commit_hash: None,
llvm_tools_git_commit_hash: None,
lldb_git_commit_hash: None,
+ miri_git_commit_hash: None,
should_sign,
}.build();
self.llvm_tools_version = self.version("llvm-tools", "x86_64-unknown-linux-gnu");
// lldb is only built for macOS.
self.lldb_version = self.version("lldb", "x86_64-apple-darwin");
+ self.miri_version = self.version("miri", "x86_64-unknown-linux-gnu");
self.rust_git_commit_hash = self.git_commit_hash("rust", "x86_64-unknown-linux-gnu");
self.cargo_git_commit_hash = self.git_commit_hash("cargo", "x86_64-unknown-linux-gnu");
self.llvm_tools_git_commit_hash = self.git_commit_hash("llvm-tools",
"x86_64-unknown-linux-gnu");
self.lldb_git_commit_hash = self.git_commit_hash("lldb", "x86_64-unknown-linux-gnu");
+ self.miri_git_commit_hash = self.git_commit_hash("miri", "x86_64-unknown-linux-gnu");
self.digest_and_sign();
let manifest = self.build_manifest();
date: self.date.to_string(),
pkg: BTreeMap::new(),
renames: BTreeMap::new(),
+ profiles: BTreeMap::new(),
};
self.package("rustc", &mut manifest.pkg, HOSTS);
self.package("llvm-tools-preview", &mut manifest.pkg, TARGETS);
self.package("lldb-preview", &mut manifest.pkg, TARGETS);
+ self.profile("minimal",
+ &mut manifest.profiles,
+ &["rustc", "cargo", "rust-std", "rust-mingw"]);
+ self.profile("default",
+ &mut manifest.profiles,
+ &["rustc", "cargo", "rust-std", "rust-mingw",
+ "rust-docs", "rustfmt-preview", "clippy-preview"]);
+ self.profile("complete",
+ &mut manifest.profiles,
+ &["rustc", "cargo", "rust-std", "rust-mingw",
+ "rust-docs", "rustfmt-preview", "clippy-preview",
+ "rls-preview", "rust-src", "llvm-tools-preview",
+ "lldb-preview", "rust-analysis"]);
+
manifest.renames.insert("rls".to_owned(), Rename { to: "rls-preview".to_owned() });
manifest.renames.insert("rustfmt".to_owned(), Rename { to: "rustfmt-preview".to_owned() });
manifest.renames.insert("clippy".to_owned(), Rename { to: "clippy-preview".to_owned() });
return manifest;
}
+ fn profile(&mut self,
+ profile_name: &str,
+ dst: &mut BTreeMap<String, Vec<String>>,
+ pkgs: &[&str]) {
+ dst.insert(profile_name.to_owned(), pkgs.iter().map(|s| (*s).to_owned()).collect());
+ }
+
fn package(&mut self,
pkgname: &str,
dst: &mut BTreeMap<String, Package>,
format!("llvm-tools-{}-{}.tar.gz", self.llvm_tools_release, target)
} else if component == "lldb" || component == "lldb-preview" {
format!("lldb-{}-{}.tar.gz", self.lldb_release, target)
+ } else if component == "miri" || component == "miri-preview" {
+ format!("miri-{}-{}.tar.gz", self.miri_release, target)
} else {
format!("{}-{}-{}.tar.gz", component, self.rust_release, target)
}
&self.llvm_tools_version
} else if component == "lldb" || component == "lldb-preview" {
&self.lldb_version
+ } else if component == "miri" || component == "miri-preview" {
+ &self.miri_version
} else {
&self.rust_version
}
&self.llvm_tools_git_commit_hash
} else if component == "lldb" || component == "lldb-preview" {
&self.lldb_git_commit_hash
+ } else if component == "miri" || component == "miri-preview" {
+ &self.miri_git_commit_hash
} else {
&self.rust_git_commit_hash
}