feat: update depot version to 0.16.1 and enhance CMake install directory handling
This commit is contained in:
Generated
+1
-1
@@ -418,7 +418,7 @@ checksum = "807800ff3288b621186fe0a8f3392c4652068257302709c24efd918c3dffcdc2"
|
||||
|
||||
[[package]]
|
||||
name = "depot"
|
||||
version = "0.16.0"
|
||||
version = "0.16.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"ar",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "depot"
|
||||
version = "0.16.0"
|
||||
version = "0.16.1"
|
||||
edition = "2024"
|
||||
|
||||
[lints.rust]
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
project(
|
||||
'depot',
|
||||
version: '0.16.0',
|
||||
version: '0.16.1',
|
||||
meson_version: '>=0.60.0',
|
||||
)
|
||||
|
||||
|
||||
+92
-31
@@ -317,20 +317,58 @@ fn cmake_cache_entry_value<'a>(flags: &'a [String], variable: &str) -> Option<&'
|
||||
}
|
||||
|
||||
fn cmake_install_dir_args(flags: &crate::package::BuildFlags) -> Vec<String> {
|
||||
let prefix = cmake_cache_entry_value(&flags.configure, "CMAKE_INSTALL_PREFIX")
|
||||
.unwrap_or(flags.prefix.as_str());
|
||||
let dirs = crate::builder::install_dirs(flags);
|
||||
let defaults = [
|
||||
("CMAKE_INSTALL_BINDIR", dirs.bindir),
|
||||
("CMAKE_INSTALL_SBINDIR", dirs.sbindir),
|
||||
("CMAKE_INSTALL_LIBDIR", dirs.libdir),
|
||||
("CMAKE_INSTALL_LIBEXECDIR", dirs.libexecdir),
|
||||
("CMAKE_INSTALL_SYSCONFDIR", dirs.sysconfdir),
|
||||
("CMAKE_INSTALL_LOCALSTATEDIR", dirs.localstatedir),
|
||||
("CMAKE_INSTALL_SHAREDSTATEDIR", dirs.sharedstatedir),
|
||||
("CMAKE_INSTALL_INCLUDEDIR", dirs.includedir),
|
||||
("CMAKE_INSTALL_DATAROOTDIR", dirs.datarootdir),
|
||||
("CMAKE_INSTALL_DATADIR", dirs.datadir),
|
||||
("CMAKE_INSTALL_MANDIR", dirs.mandir),
|
||||
("CMAKE_INSTALL_INFODIR", dirs.infodir),
|
||||
(
|
||||
"CMAKE_INSTALL_BINDIR",
|
||||
cmake_install_dir_value(prefix, &dirs.bindir),
|
||||
),
|
||||
(
|
||||
"CMAKE_INSTALL_SBINDIR",
|
||||
cmake_install_dir_value(prefix, &dirs.sbindir),
|
||||
),
|
||||
(
|
||||
"CMAKE_INSTALL_LIBDIR",
|
||||
cmake_install_dir_value(prefix, &dirs.libdir),
|
||||
),
|
||||
(
|
||||
"CMAKE_INSTALL_LIBEXECDIR",
|
||||
cmake_install_dir_value(prefix, &dirs.libexecdir),
|
||||
),
|
||||
(
|
||||
"CMAKE_INSTALL_SYSCONFDIR",
|
||||
cmake_install_dir_value(prefix, &dirs.sysconfdir),
|
||||
),
|
||||
(
|
||||
"CMAKE_INSTALL_LOCALSTATEDIR",
|
||||
cmake_install_dir_value(prefix, &dirs.localstatedir),
|
||||
),
|
||||
(
|
||||
"CMAKE_INSTALL_SHAREDSTATEDIR",
|
||||
cmake_install_dir_value(prefix, &dirs.sharedstatedir),
|
||||
),
|
||||
(
|
||||
"CMAKE_INSTALL_INCLUDEDIR",
|
||||
cmake_install_dir_value(prefix, &dirs.includedir),
|
||||
),
|
||||
(
|
||||
"CMAKE_INSTALL_DATAROOTDIR",
|
||||
cmake_install_dir_value(prefix, &dirs.datarootdir),
|
||||
),
|
||||
(
|
||||
"CMAKE_INSTALL_DATADIR",
|
||||
cmake_install_dir_value(prefix, &dirs.datadir),
|
||||
),
|
||||
(
|
||||
"CMAKE_INSTALL_MANDIR",
|
||||
cmake_install_dir_value(prefix, &dirs.mandir),
|
||||
),
|
||||
(
|
||||
"CMAKE_INSTALL_INFODIR",
|
||||
cmake_install_dir_value(prefix, &dirs.infodir),
|
||||
),
|
||||
];
|
||||
|
||||
defaults
|
||||
@@ -340,6 +378,26 @@ fn cmake_install_dir_args(flags: &crate::package::BuildFlags) -> Vec<String> {
|
||||
.collect()
|
||||
}
|
||||
|
||||
fn cmake_install_dir_value(prefix: &str, value: &str) -> String {
|
||||
let trimmed_prefix = prefix.trim();
|
||||
let trimmed_value = value.trim();
|
||||
if trimmed_prefix.is_empty() || trimmed_value.is_empty() {
|
||||
return trimmed_value.to_string();
|
||||
}
|
||||
|
||||
let prefix_path = Path::new(trimmed_prefix);
|
||||
let value_path = Path::new(trimmed_value);
|
||||
if !prefix_path.is_absolute() || !value_path.is_absolute() {
|
||||
return trimmed_value.to_string();
|
||||
}
|
||||
|
||||
match value_path.strip_prefix(prefix_path) {
|
||||
Ok(rel) if rel.as_os_str().is_empty() => ".".to_string(),
|
||||
Ok(rel) => rel.to_string_lossy().replace('\\', "/"),
|
||||
Err(_) => trimmed_value.to_string(),
|
||||
}
|
||||
}
|
||||
|
||||
fn num_cpus() -> usize {
|
||||
std::thread::available_parallelism()
|
||||
.map(|n| n.get())
|
||||
@@ -523,13 +581,10 @@ mod tests {
|
||||
#[test]
|
||||
fn test_cmake_install_dir_args_include_defaults() {
|
||||
let args = cmake_install_dir_args(&BuildFlags::default());
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_BINDIR=/usr/bin"));
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_SBINDIR=/usr/bin"));
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_LIBDIR=/usr/lib"));
|
||||
assert!(
|
||||
args.iter()
|
||||
.any(|a| a == "-DCMAKE_INSTALL_LIBEXECDIR=/usr/lib")
|
||||
);
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_BINDIR=bin"));
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_SBINDIR=bin"));
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_LIBDIR=lib"));
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_LIBEXECDIR=lib"));
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_SYSCONFDIR=/etc"));
|
||||
assert!(
|
||||
args.iter()
|
||||
@@ -541,23 +596,17 @@ mod tests {
|
||||
);
|
||||
assert!(
|
||||
args.iter()
|
||||
.any(|a| a == "-DCMAKE_INSTALL_INCLUDEDIR=/usr/include")
|
||||
.any(|a| a == "-DCMAKE_INSTALL_INCLUDEDIR=include")
|
||||
);
|
||||
assert!(
|
||||
args.iter()
|
||||
.any(|a| a == "-DCMAKE_INSTALL_DATAROOTDIR=/usr/share")
|
||||
.any(|a| a == "-DCMAKE_INSTALL_DATAROOTDIR=share")
|
||||
);
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_DATADIR=share"));
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_MANDIR=share/man"));
|
||||
assert!(
|
||||
args.iter()
|
||||
.any(|a| a == "-DCMAKE_INSTALL_DATADIR=/usr/share")
|
||||
);
|
||||
assert!(
|
||||
args.iter()
|
||||
.any(|a| a == "-DCMAKE_INSTALL_MANDIR=/usr/share/man")
|
||||
);
|
||||
assert!(
|
||||
args.iter()
|
||||
.any(|a| a == "-DCMAKE_INSTALL_INFODIR=/usr/share/info")
|
||||
.any(|a| a == "-DCMAKE_INSTALL_INFODIR=share/info")
|
||||
);
|
||||
}
|
||||
|
||||
@@ -588,7 +637,19 @@ mod tests {
|
||||
.iter()
|
||||
.any(|a| a.starts_with("-DCMAKE_INSTALL_DATADIR="))
|
||||
);
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_BINDIR=/usr/bin"));
|
||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_BINDIR=bin"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_cmake_install_dir_value_makes_prefix_children_relative() {
|
||||
assert_eq!(cmake_install_dir_value("/usr", "/usr/include"), "include");
|
||||
assert_eq!(cmake_install_dir_value("/", "/usr/include"), "usr/include");
|
||||
assert_eq!(
|
||||
cmake_install_dir_value("/opt/depot", "/opt/depot/lib64"),
|
||||
"lib64"
|
||||
);
|
||||
assert_eq!(cmake_install_dir_value("/usr", "/etc"), "/etc");
|
||||
assert_eq!(cmake_install_dir_value("/usr", "include"), "include");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user