- Incremental builds (object caching by mtime)
- `build.kind` with `staticlib` support
- Custom output directory via `build.target`
This commit is contained in:
2026-02-26 17:03:35 +08:00
parent 9fe2604154
commit 7817834790
19 changed files with 410 additions and 56 deletions

View File

@@ -31,6 +31,7 @@ pub fn build(args: &[String]) -> i32 {
let build_language = get_config_str(&config, "build.language");
let build_standard = get_config_str(&config, "build.standard");
let build_target = get_config_str(&config, "build.target");
let build_kind = get_config_str(&config, "build.kind");
let build_cflags = match get_config_list(&config, "build.cflags") {
Ok(v) => v,
Err(msg) => {
@@ -76,6 +77,7 @@ pub fn build(args: &[String]) -> i32 {
language: &build_language,
standard: &build_standard,
target_dir: normalize_target(&build_target),
kind: normalize_kind(&build_kind),
include_dirs: &resolved.include_dirs,
lib_dirs: &resolved.lib_dirs,
libs: &resolved.libs,
@@ -177,3 +179,8 @@ fn normalize_target(target: &str) -> Option<&str> {
Some(trimmed)
}
}
fn normalize_kind(kind: &str) -> &str {
let trimmed = kind.trim();
if trimmed.is_empty() { "bin" } else { trimmed }
}