Skip to content

[enhancement] [build].flags 支持 TOML 数组表 [[build.flags]] 写法(长条目可读性) #227

Description

@Sunrisepeak

现状

[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 实现踩坑记录)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions