- `sharedlib` build kind (shared library output)
- ASM projects (`build.language = "asm"`)
- NASM and GAS backends
- `build.platform` architecture hint for `-march` / `/arch`
- Basic CLI integration tests
This commit is contained in:
2026-03-01 19:47:38 +08:00
parent 98531c7335
commit d1e3b0c384
30 changed files with 690 additions and 37 deletions

View File

@@ -121,9 +121,14 @@ impl Config {
return Err(ConfigError::Invalid(format!("build.{key} is empty")));
}
}
if let Some(platform) = build.get("platform") {
if !platform.as_str().map(|v| !v.trim().is_empty()).unwrap_or(false) {
return Err(ConfigError::Invalid("build.platform is empty".into()));
}
}
if let Some(kind) = build.get("kind").and_then(|v| v.as_str()) {
let kind = kind.trim();
if kind != "bin" && kind != "staticlib" {
if kind != "bin" && kind != "staticlib" && kind != "sharedlib" {
return Err(ConfigError::Invalid("build.kind is invalid".into()));
}
}