feat: update install_dirs to derive mandir and infodir from datarootdir

This commit is contained in:
2026-03-08 22:45:50 -05:00
parent f3bcf00fe9
commit 2da53aa6ef
2 changed files with 18 additions and 4 deletions
+14 -2
View File
@@ -176,7 +176,6 @@ fn meson_setup_args(
("--localstatedir", dirs.localstatedir),
("--sharedstatedir", dirs.sharedstatedir),
("--includedir", dirs.includedir),
("--datarootdir", dirs.datarootdir),
("--datadir", dirs.datadir),
("--mandir", dirs.mandir),
("--infodir", dirs.infodir),
@@ -305,12 +304,25 @@ mod tests {
assert!(args.iter().any(|a| a == "--localstatedir=/var"));
assert!(args.iter().any(|a| a == "--sharedstatedir=/var/lib"));
assert!(args.iter().any(|a| a == "--includedir=/usr/include"));
assert!(args.iter().any(|a| a == "--datarootdir=/usr/share"));
assert!(args.iter().any(|a| a == "--datadir=/usr/share"));
assert!(args.iter().any(|a| a == "--mandir=/usr/share/man"));
assert!(args.iter().any(|a| a == "--infodir=/usr/share/info"));
}
#[test]
fn test_meson_setup_args_derive_dirs_from_datarootdir() {
let flags = BuildFlags {
datarootdir: "/opt/share-root".to_string(),
..BuildFlags::default()
};
let args = meson_setup_args(&flags, None, &[]);
assert!(!args.iter().any(|a| a.starts_with("--datarootdir=")));
assert!(args.iter().any(|a| a == "--datadir=/opt/share-root"));
assert!(args.iter().any(|a| a == "--mandir=/opt/share-root/man"));
assert!(args.iter().any(|a| a == "--infodir=/opt/share-root/info"));
}
#[test]
fn test_meson_setup_args_honor_explicit_prefix() {
let flags = BuildFlags {
+4 -2
View File
@@ -68,6 +68,8 @@ pub(crate) fn install_dirs(flags: &crate::package::BuildFlags) -> InstallDirs {
default_libdir_for_variant(flags.lib32_variant),
);
let datarootdir = configured_install_dir(&flags.datarootdir, "/usr/share");
let default_mandir = format!("{datarootdir}/man");
let default_infodir = format!("{datarootdir}/info");
InstallDirs {
bindir: configured_install_dir(&flags.bindir, "/usr/bin"),
@@ -80,8 +82,8 @@ pub(crate) fn install_dirs(flags: &crate::package::BuildFlags) -> InstallDirs {
includedir: configured_install_dir(&flags.includedir, "/usr/include"),
datarootdir: datarootdir.clone(),
datadir: configured_install_dir(&flags.datadir, &datarootdir),
mandir: configured_install_dir(&flags.mandir, "/usr/share/man"),
infodir: configured_install_dir(&flags.infodir, "/usr/share/info"),
mandir: configured_install_dir(&flags.mandir, &default_mandir),
infodir: configured_install_dir(&flags.infodir, &default_infodir),
}
}