about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbit-aloo <sshourya17@gmail.com>2025-08-01 14:04:41 +0530
committerbit-aloo <sshourya17@gmail.com>2025-08-01 20:27:48 +0530
commit222dfcc02fdadc854335fd2a1cc8961203933a94 (patch)
tree93d18fab49daaaf552af0e5955b488ad0aa693dc /src
parent58a38cd7deba18d4b449214cab5cad36d3b4cceb (diff)
downloadrust-222dfcc02fdadc854335fd2a1cc8961203933a94.tar.gz
rust-222dfcc02fdadc854335fd2a1cc8961203933a94.zip
add install default implementation
Diffstat (limited to 'src')
-rw-r--r--src/bootstrap/src/core/config/config.rs35
-rw-r--r--src/bootstrap/src/core/config/toml/install.rs1
2 files changed, 26 insertions, 10 deletions
diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs
index d9cc215683e..c97e675f577 100644
--- a/src/bootstrap/src/core/config/config.rs
+++ b/src/bootstrap/src/core/config/config.rs
@@ -757,16 +757,31 @@ impl Config {
         // Verbose flag is a good default for `rust.verbose-tests`.
         config.verbose_tests = config.is_verbose();
 
-        if let Some(install) = toml.install {
-            let Install { prefix, sysconfdir, docdir, bindir, libdir, mandir, datadir } = install;
-            config.prefix = prefix.map(PathBuf::from);
-            config.sysconfdir = sysconfdir.map(PathBuf::from);
-            config.datadir = datadir.map(PathBuf::from);
-            config.docdir = docdir.map(PathBuf::from);
-            set(&mut config.bindir, bindir.map(PathBuf::from));
-            config.libdir = libdir.map(PathBuf::from);
-            config.mandir = mandir.map(PathBuf::from);
-        }
+        let Install {
+            prefix: install_prefix,
+            sysconfdir: install_sysconfdir,
+            docdir: install_docdir,
+            bindir: install_bindir,
+            libdir: install_libdir,
+            mandir: install_mandir,
+            datadir: install_datadir,
+        } = toml.install.unwrap_or_default();
+
+        let install_prefix = install_prefix.map(PathBuf::from);
+        let install_sysconfdir = install_sysconfdir.map(PathBuf::from);
+        let install_docdir = install_docdir.map(PathBuf::from);
+        let install_bindir = install_bindir.map(PathBuf::from);
+        let install_libdir = install_libdir.map(PathBuf::from);
+        let install_mandir = install_mandir.map(PathBuf::from);
+        let install_datadir = install_datadir.map(PathBuf::from);
+
+        config.prefix = install_prefix;
+        config.sysconfdir = install_sysconfdir;
+        config.datadir = install_datadir;
+        config.docdir = install_docdir;
+        set(&mut config.bindir, install_bindir);
+        config.libdir = install_libdir;
+        config.mandir = install_mandir;
 
         let file_content = t!(fs::read_to_string(config.src.join("src/ci/channel")));
         let ci_channel = file_content.trim_end();
diff --git a/src/bootstrap/src/core/config/toml/install.rs b/src/bootstrap/src/core/config/toml/install.rs
index da31c0cc878..60fa958bd82 100644
--- a/src/bootstrap/src/core/config/toml/install.rs
+++ b/src/bootstrap/src/core/config/toml/install.rs
@@ -14,6 +14,7 @@ use crate::{HashSet, PathBuf, define_config, exit};
 
 define_config! {
     /// TOML representation of various global install decisions.
+    #[derive(Default)]
     struct Install {
         prefix: Option<String> = "prefix",
         sysconfdir: Option<String> = "sysconfdir",