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 >