feat: Store.get_storedir()
(cherry picked from commit 6f4ba636f1e563167e6456d42c9fb6f65c9ca504)
This commit is contained in:
parent
3d3c77eced
commit
c9d54ccbc6
5 changed files with 63 additions and 4 deletions
39
rust/nix-store/build.rs
Normal file
39
rust/nix-store/build.rs
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
fn main() {
|
||||
// Get nix version
|
||||
let nix_version = pkg_config::probe_library("nix-store-c").unwrap().version;
|
||||
|
||||
// Generate version flags
|
||||
// Unfortunately, Rust doesn't give us a "greater than" operator in conditional
|
||||
// compilation, so we pre-evaluate the version comparisons here, making use
|
||||
// of the multi-valued nature of Rust cfgs.
|
||||
let relevant_versions = vec!["2.26"];
|
||||
let versions = relevant_versions
|
||||
.iter()
|
||||
.map(|v| format!("\"{}\"", v))
|
||||
.collect::<Vec<_>>()
|
||||
.join(",");
|
||||
|
||||
// Declare the known versions, so that Rust can warn about unknown versions
|
||||
// that aren't part of `relevant_versions` yet - feel free to add entries.
|
||||
println!(
|
||||
"cargo:rustc-check-cfg=cfg(nix_at_least,values({}))",
|
||||
versions
|
||||
);
|
||||
|
||||
let nix_version = nix_version.split('.').collect::<Vec<&str>>();
|
||||
let nix_version = (
|
||||
nix_version[0].parse::<u32>().unwrap(),
|
||||
nix_version[1].parse::<u32>().unwrap(),
|
||||
);
|
||||
|
||||
for version_str in relevant_versions {
|
||||
let version = version_str.split('.').collect::<Vec<&str>>();
|
||||
let version = (
|
||||
version[0].parse::<u32>().unwrap(),
|
||||
version[1].parse::<u32>().unwrap(),
|
||||
);
|
||||
if nix_version >= version {
|
||||
println!("cargo:rustc-cfg=nix_at_least=\"{}\"", version_str);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue