Refactor build flags handling and add tool alias management

- Introduced a new method `apply_default_string` to streamline the application of default values for string fields in build flags.
- Enhanced `apply_flags_table` to utilize the new method for setting various build flags, improving code readability and maintainability.
- Added support for additional build flags: `fuse_ld`, `ranlib`, `strip`, `nm`, `objcopy`, `objdump`, and `readelf`.
- Implemented a new command `set` to manage tool aliases for compilers, linkers, and shells, allowing users to set preferred tools in the build environment.
- Improved error handling and validation for tool alias configuration, ensuring that existing non-symlink files are not replaced.
- Added tests to verify the correct behavior of tool alias management and build flag application.
This commit is contained in:
2026-05-27 14:39:01 -05:00
parent 1833a2c42d
commit 5c33a36100
23 changed files with 1895 additions and 170 deletions
+14 -2
View File
@@ -6,6 +6,18 @@ edition = "2024"
[lints.rust]
warnings = "deny"
[features]
default = []
# Prefer vendored/static native libraries while keeping libc dynamically linked.
static-except-libc = [
"git2/vendored-libgit2",
"git2/vendored-openssl",
"git2/zlib-ng-compat",
"reqwest/native-tls-vendored",
"rusqlite/bundled",
"xz2/static",
]
[dependencies]
anyhow = "1.0.102"
ar = "0.9.0"
@@ -20,7 +32,7 @@ semver = "1.0.28"
serde = { version = "1.0.228", features = ["derive"] }
yaml-rust2 = "0.11.0"
sha2 = "0.11.0"
tar = "0.4.45"
tar = "0.4.46"
tempfile = "=3.27.0"
thiserror = "2.0.18"
toml = "1.1.2"
@@ -35,7 +47,7 @@ suppaftp = "8.0.2"
minisign = "0.9.1"
petgraph = "0.8.3"
fd-lock = "4.0.4"
reqwest = { version = "0.13.2", default-features = false, features = ["blocking", "native-tls"] }
reqwest = { version = "0.13.4", default-features = false, features = ["blocking", "native-tls"] }
filetime = "0.2.29"
clap_complete = "4.6.5"
clap_mangen = "0.3.0"