Date: Mon, 25 Nov 2024 22:40:50 +0000
I think a simple file format is possible. I could implement a simple enough
JSON-based one in CMake itself. Assuming a couple other build systems add
support for the same format, we would have something we could standardize
meaningfully. I expect we'll help a *lot* of the ecosystem by simplifying
interop with a standard in this space.
That being said, I expect the utility of that approach will diminish as
project complexity increases. It's widely counterintuitive, but having a
Turing-complete build configuration does have the upside of supporting just
about anything you if you really, really want to. Without forking your
build tool. For instance, arbitrary dependency discovery, ecosystem
specific project layout support, or modeling of arbitrary development
tooling like bespoke code generators or linters.
Bret
On Mon, Nov 25, 2024, 22:07 Wyatt Childers via SG15 <sg15_at_[hidden]>
wrote:
> I'm skeptical of viability here... a major portion of what constitutes the
> build system itself, is *how the project is described*.
>
> - Wyatt
>
>
> On 11/14/24 17:53, James via SG15 wrote:
>
> Has there been any consideration for establishing a standardized format to
> describe C++ projects that could be universally recognized by different
> build systems? This wouldn’t involve creating a new build system, but
> rather defining a common file format that accurately describes project
> structure, dependencies, and build requirements in a standardized way.
>
> The goal would be to improve interoperability and developer experience
> across different build systems and generators, also allowing projects to
> seamlessly transition between them without modifications to the project
> file itself.
>
> Additionally such a change could improve tooling and IDEs, enhancing the
> developer experience even more!
>
> _______________________________________________
> SG15 mailing listSG15_at_[hidden]://lists.isocpp.org/mailman/listinfo.cgi/sg15
>
>
> _______________________________________________
> SG15 mailing list
> SG15_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/sg15
>
JSON-based one in CMake itself. Assuming a couple other build systems add
support for the same format, we would have something we could standardize
meaningfully. I expect we'll help a *lot* of the ecosystem by simplifying
interop with a standard in this space.
That being said, I expect the utility of that approach will diminish as
project complexity increases. It's widely counterintuitive, but having a
Turing-complete build configuration does have the upside of supporting just
about anything you if you really, really want to. Without forking your
build tool. For instance, arbitrary dependency discovery, ecosystem
specific project layout support, or modeling of arbitrary development
tooling like bespoke code generators or linters.
Bret
On Mon, Nov 25, 2024, 22:07 Wyatt Childers via SG15 <sg15_at_[hidden]>
wrote:
> I'm skeptical of viability here... a major portion of what constitutes the
> build system itself, is *how the project is described*.
>
> - Wyatt
>
>
> On 11/14/24 17:53, James via SG15 wrote:
>
> Has there been any consideration for establishing a standardized format to
> describe C++ projects that could be universally recognized by different
> build systems? This wouldn’t involve creating a new build system, but
> rather defining a common file format that accurately describes project
> structure, dependencies, and build requirements in a standardized way.
>
> The goal would be to improve interoperability and developer experience
> across different build systems and generators, also allowing projects to
> seamlessly transition between them without modifications to the project
> file itself.
>
> Additionally such a change could improve tooling and IDEs, enhancing the
> developer experience even more!
>
> _______________________________________________
> SG15 mailing listSG15_at_[hidden]://lists.isocpp.org/mailman/listinfo.cgi/sg15
>
>
> _______________________________________________
> SG15 mailing list
> SG15_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/sg15
>
Received on 2024-11-25 22:41:08