-impl<'a> Installer<'a> {
- pub fn new(build: &'a Build) -> Installer<'a> {
- let prefix_default = PathBuf::from("/usr/local");
- let sysconfdir_default = PathBuf::from("/etc");
- let docdir_default = PathBuf::from("share/doc/rust");
- let bindir_default = PathBuf::from("bin");
- let libdir_default = PathBuf::from("lib");
- let mandir_default = PathBuf::from("share/man");
- let prefix = build.config.prefix.as_ref().unwrap_or(&prefix_default);
- let sysconfdir = build.config.sysconfdir.as_ref().unwrap_or(&sysconfdir_default);
- let docdir = build.config.docdir.as_ref().unwrap_or(&docdir_default);
- let bindir = build.config.bindir.as_ref().unwrap_or(&bindir_default);
- let libdir = build.config.libdir.as_ref().unwrap_or(&libdir_default);
- let mandir = build.config.mandir.as_ref().unwrap_or(&mandir_default);
-
- let sysconfdir = prefix.join(sysconfdir);
- let docdir = prefix.join(docdir);
- let bindir = prefix.join(bindir);
- let libdir = prefix.join(libdir);
- let mandir = prefix.join(mandir);
-
- let destdir = env::var_os("DESTDIR").map(PathBuf::from);
-
- let prefix = add_destdir(&prefix, &destdir);
- let sysconfdir = add_destdir(&sysconfdir, &destdir);
- let docdir = add_destdir(&docdir, &destdir);
- let bindir = add_destdir(&bindir, &destdir);
- let libdir = add_destdir(&libdir, &destdir);
- let mandir = add_destdir(&mandir, &destdir);
-
- let empty_dir = build.out.join("tmp/empty_dir");
-
- t!(fs::create_dir_all(&empty_dir));
-
- Installer {
- build,
- prefix,
- sysconfdir,
- docdir,
- bindir,
- libdir,
- mandir,
- empty_dir,
- }
- }
-
- pub fn install_docs(&self, stage: u32, host: &str) {
- self.install_sh("docs", "rust-docs", stage, Some(host));
- }
-
- pub fn install_std(&self, stage: u32) {
- for target in self.build.config.target.iter() {
- self.install_sh("std", "rust-std", stage, Some(target));
- }
- }
-
- pub fn install_cargo(&self, stage: u32, host: &str) {
- self.install_sh("cargo", "cargo", stage, Some(host));
- }