From 9af91a0d9fd72ebb5a049cbc645111ff25de7234 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sun, 1 Mar 2026 20:04:08 +0800 Subject: [PATCH] Added: - `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 --- src/cli/build.rs | 11 +++++++++++ src/core/builder/mod.rs | 1 - 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/cli/build.rs b/src/cli/build.rs index f5e852d..56719e5 100644 --- a/src/cli/build.rs +++ b/src/cli/build.rs @@ -32,6 +32,7 @@ pub fn build(args: &[String]) -> i32 { 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_platform = get_config_str(&config, "build.platform"); let build_cflags = match get_config_list(&config, "build.cflags") { Ok(v) => v, Err(msg) => { @@ -78,6 +79,7 @@ pub fn build(args: &[String]) -> i32 { standard: &build_standard, target_dir: normalize_target(&build_target), kind: normalize_kind(&build_kind), + platform: normalize_platform(&build_platform), include_dirs: &resolved.include_dirs, lib_dirs: &resolved.lib_dirs, libs: &resolved.libs, @@ -184,3 +186,12 @@ fn normalize_kind(kind: &str) -> &str { let trimmed = kind.trim(); if trimmed.is_empty() { "bin" } else { trimmed } } + +fn normalize_platform(platform: &str) -> Option<&str> { + let trimmed = platform.trim(); + if trimmed.is_empty() { + None + } else { + Some(trimmed) + } +} diff --git a/src/core/builder/mod.rs b/src/core/builder/mod.rs index f6efd46..0d24476 100644 --- a/src/core/builder/mod.rs +++ b/src/core/builder/mod.rs @@ -1,7 +1,6 @@ pub mod clang; pub mod gas; pub mod gcc; -pub mod gas; pub mod msvc; pub mod nasm;