I see the following advantages of having CMake:
- Everything is way more readable then the current Make files.
- Easier on-boarding.
- Less build-related bugs.
- Less boiler-plate code.
- Faster builds.
- Great IDE integration.

Adding CMake as an optional feature seems to be a great solution.

Maintaining two systems for a while requires more work, but it would be a
backward-compatible way to polish the solution.

For trivial problems it is still just adding files to lists, right? For
more complex issues, I am pretty sure that parties attached to Make will
maintain it just fine and people who want CMake will fix it for themselves.

The discussion so far was that:
- Replacing Make breaks existing workflows.
- CMake is less flexible.
- Duplicated maintenance effort.

By just adding CMake no workflows are broken
If the new solution is able to recreate the previous build system, then it
is flexible enough.
I guess that overlapping maintenance effort is the only way to offer
backward compatibility.

I would like to point out that offering CMake is what people expect to have
from a modern project and NuttX is currently not offering it.

Am Fr., 19. Mai 2023 um 19:26 Uhr schrieb Tomek CEDRO <to...@cedro.info>:

> On Fri, May 19, 2023 at 7:17 PM Xiang Xiao wrote:
> > The change doesn't replace Makefile with CMake, both can work. So I would
> > suggest the vote is "Enable CMake support".
>
> Isn't the goal of CMake to generate Makefiles?
>
> What is the chance of keeping both makefiles and cmakefiles out of sync?
>
> Wouldn't that double the work?
>
> Wouldn't that imply switch to CMake anyways?
>
> From what I understand CMake can offer faster builds using different
> build methods / systems, it could eliminate GNU Make vs BSD Make
> problem, but also it will change whole build process, changes
> frequently, etc..?
>
> Such a big change needs good description.. risks.. clear list of
> advantages and disadvantages :-)
>
> --
> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
>

Reply via email to