现状
[build].flags 仅接受单行内联表;标准 TOML 数组表被明确拒绝:
[[build.flags]]
glob = "src/**/*.cpp"
cxxflags = ["-DX=1"]
→ error: array-of-tables not supported。而 TOML 内联表按规范不可跨行,于是长条目只能挤一行。
真实用例(ffmpeg-m)
NASM 汇编条目带 8 个 -I + -Pconfig.asm,单行 300+ 字符:
flags = [
{ glob = "third_party/ffmpeg/**/*.asm", asmflags = ["-Igen/linux-x86_64/", "-Ithird_party/ffmpeg/", "-Ithird_party/ffmpeg/libavcodec/x86/", "-Ithird_party/ffmpeg/libavutil/x86/", "-Ithird_party/ffmpeg/libavfilter/x86/", "-Ithird_party/ffmpeg/libswscale/x86/", "-Ithird_party/ffmpeg/libswresample/x86/", "-Pconfig.asm"] },
]
期望
[[build.flags]] 与现有内联表形式等价共存(声明顺序 = 应用顺序语义不变)。这是纯解析层扩展,不新增语义,符合"closed syntax"原则。
(环境:mcpp 0.0.95;来源:mcpplibs/ffmpeg-m 实现踩坑记录)
现状
[build].flags仅接受单行内联表;标准 TOML 数组表被明确拒绝:→
error: array-of-tables not supported。而 TOML 内联表按规范不可跨行,于是长条目只能挤一行。真实用例(ffmpeg-m)
NASM 汇编条目带 8 个
-I+-Pconfig.asm,单行 300+ 字符:期望
[[build.flags]]与现有内联表形式等价共存(声明顺序 = 应用顺序语义不变)。这是纯解析层扩展,不新增语义,符合"closed syntax"原则。(环境:mcpp 0.0.95;来源:mcpplibs/ffmpeg-m 实现踩坑记录)