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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions