feat: enhance build configuration with C++ standard support and variable substitution

- Added `cxx_standard` field to the build configuration for specifying C++ standards.
- Updated documentation to reflect new `cxx_standard` and variable substitution capabilities in `cflags`, `ldflags`, and `include`.
- Implemented logic to handle C++ standard flags in the build process.
- Modified object file naming to include source file extensions.
- Updated various builder modules to support new language parsing logic.
- Introduced issue and feature request templates for better community engagement.
This commit is contained in:
2026-05-27 20:04:01 +08:00
parent b5bbdb929b
commit acdd1cc175
18 changed files with 602 additions and 328 deletions

View File

@@ -190,7 +190,7 @@ pub fn parse_language_value(value: &toml::Value, key: &str) -> Result<String, St
if parts.is_empty() {
return Err(format!("{key} is empty"));
}
Ok(parts.join("+"))
Ok(parts.join(","))
}
pub fn resolve_compiler(
@@ -258,7 +258,7 @@ fn toolchain_override_compiler(
pub fn primary_language(language: &str) -> String {
let parts: Vec<String> = language
.split('+')
.split(',')
.map(|p| p.trim().to_lowercase())
.filter(|p| !p.is_empty())
.collect();