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]]
|
[[package]]
|
||||||
name = "depot"
|
name = "depot"
|
||||||
version = "0.16.0"
|
version = "0.16.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"ar",
|
"ar",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "depot"
|
name = "depot"
|
||||||
version = "0.16.0"
|
version = "0.16.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[lints.rust]
|
[lints.rust]
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
project(
|
project(
|
||||||
'depot',
|
'depot',
|
||||||
version: '0.16.0',
|
version: '0.16.1',
|
||||||
meson_version: '>=0.60.0',
|
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> {
|
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 dirs = crate::builder::install_dirs(flags);
|
||||||
let defaults = [
|
let defaults = [
|
||||||
("CMAKE_INSTALL_BINDIR", dirs.bindir),
|
(
|
||||||
("CMAKE_INSTALL_SBINDIR", dirs.sbindir),
|
"CMAKE_INSTALL_BINDIR",
|
||||||
("CMAKE_INSTALL_LIBDIR", dirs.libdir),
|
cmake_install_dir_value(prefix, &dirs.bindir),
|
||||||
("CMAKE_INSTALL_LIBEXECDIR", dirs.libexecdir),
|
),
|
||||||
("CMAKE_INSTALL_SYSCONFDIR", dirs.sysconfdir),
|
(
|
||||||
("CMAKE_INSTALL_LOCALSTATEDIR", dirs.localstatedir),
|
"CMAKE_INSTALL_SBINDIR",
|
||||||
("CMAKE_INSTALL_SHAREDSTATEDIR", dirs.sharedstatedir),
|
cmake_install_dir_value(prefix, &dirs.sbindir),
|
||||||
("CMAKE_INSTALL_INCLUDEDIR", dirs.includedir),
|
),
|
||||||
("CMAKE_INSTALL_DATAROOTDIR", dirs.datarootdir),
|
(
|
||||||
("CMAKE_INSTALL_DATADIR", dirs.datadir),
|
"CMAKE_INSTALL_LIBDIR",
|
||||||
("CMAKE_INSTALL_MANDIR", dirs.mandir),
|
cmake_install_dir_value(prefix, &dirs.libdir),
|
||||||
("CMAKE_INSTALL_INFODIR", dirs.infodir),
|
),
|
||||||
|
(
|
||||||
|
"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
|
defaults
|
||||||
@@ -340,6 +378,26 @@ fn cmake_install_dir_args(flags: &crate::package::BuildFlags) -> Vec<String> {
|
|||||||
.collect()
|
.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 {
|
fn num_cpus() -> usize {
|
||||||
std::thread::available_parallelism()
|
std::thread::available_parallelism()
|
||||||
.map(|n| n.get())
|
.map(|n| n.get())
|
||||||
@@ -523,13 +581,10 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_cmake_install_dir_args_include_defaults() {
|
fn test_cmake_install_dir_args_include_defaults() {
|
||||||
let args = cmake_install_dir_args(&BuildFlags::default());
|
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_BINDIR=bin"));
|
||||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_SBINDIR=/usr/bin"));
|
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_SBINDIR=bin"));
|
||||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_LIBDIR=/usr/lib"));
|
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_LIBDIR=lib"));
|
||||||
assert!(
|
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_LIBEXECDIR=lib"));
|
||||||
args.iter()
|
|
||||||
.any(|a| a == "-DCMAKE_INSTALL_LIBEXECDIR=/usr/lib")
|
|
||||||
);
|
|
||||||
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_SYSCONFDIR=/etc"));
|
assert!(args.iter().any(|a| a == "-DCMAKE_INSTALL_SYSCONFDIR=/etc"));
|
||||||
assert!(
|
assert!(
|
||||||
args.iter()
|
args.iter()
|
||||||
@@ -541,23 +596,17 @@ mod tests {
|
|||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
args.iter()
|
args.iter()
|
||||||
.any(|a| a == "-DCMAKE_INSTALL_INCLUDEDIR=/usr/include")
|
.any(|a| a == "-DCMAKE_INSTALL_INCLUDEDIR=include")
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
args.iter()
|
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!(
|
assert!(
|
||||||
args.iter()
|
args.iter()
|
||||||
.any(|a| a == "-DCMAKE_INSTALL_DATADIR=/usr/share")
|
.any(|a| a == "-DCMAKE_INSTALL_INFODIR=share/info")
|
||||||
);
|
|
||||||
assert!(
|
|
||||||
args.iter()
|
|
||||||
.any(|a| a == "-DCMAKE_INSTALL_MANDIR=/usr/share/man")
|
|
||||||
);
|
|
||||||
assert!(
|
|
||||||
args.iter()
|
|
||||||
.any(|a| a == "-DCMAKE_INSTALL_INFODIR=/usr/share/info")
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -588,7 +637,19 @@ mod tests {
|
|||||||
.iter()
|
.iter()
|
||||||
.any(|a| a.starts_with("-DCMAKE_INSTALL_DATADIR="))
|
.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]
|
#[test]
|
||||||
|
|||||||
Reference in New Issue
Block a user