I see two options for implementing "dev-only" settings:
- As Franz suggested, introducing new top-level settings arrays with their own distinct types:
devSwiftSettings: [DevSwiftSetting] devCSettings: [DevCSetting] devCXXSettings: [DevCXXSetting]
- By introducing a new condition within the existing
BuildSettingCondition
mechanism.
If we were to choose the first option, it would make sense to define the proposed warning control settings within these new Dev*Setting
types from the outset. This would avoid the need to deprecate or move them from regular settings later.
However, the choice between these two approaches isn't straightforward, as both have their respective downsides. I've elaborated on these considerations in a new thread.