So. Last year, I literally spent two months tearing my hair out, trying to get CMake to work across Windows and Linux, and to get the stupid thing to actually build!
My takeaway? It just isn't worth it. CMake is not the build system it once was. We should probably consider other alternatives, just for ease of development, if nothing else.
One possibility is the Mozilla mach build system. Open to other ideas though.
Thanks guys!
Relates to #53
Hi @stephengtuggy,
I have to say that I disagree with this notion. CMake works perfectly fine for me on all platforms and does its job quite well. It's not perfect, but from what I see, it's the best out there.
Furthermore, unlike mach, it's widely known and used and has a lot more features, including a GUI.
Regarding the windows compilation, the main issues I see there are dependency finding and building, and not the build system itself. In fact, CMake has all the facilities to overcome that, including the ability to download sources from the internet, and compile them locally as part of the build process.
If anything, I would say that we need to update and improve our CMakeLists.txt, so it'll accommodate to all of our needs.
There's little nits I have about CMake; but the biggest issue is that there really isn't another cross-platform build chain that is as capable and not tied to some specific project and the nuances of those projects. CMake has actually been growing in use among the FOSS community in the last few years with even Qt making it their official build system a couple years back; I believe KDE did the same too. (Note: Qt even wrote two of their own build systems - qmake and qbs.) There's a handful of others capable build systems other there, but most are tied to Java or a language we don't use and are not easy to integrate. I suspect mach will be tied to how Mozilla does stuff too (typical - see Bugzilla) since it's built for their particular use-case.
I do agree agree with @nabaco that the issue isn't likely Cmake itself; more likely it's how we use CMake and how we suppose those specific platforms.
It'll take some effort to get there but all the tools are there that are needed.
Advantages of CMake:
Fair enough, guys. OK, I'm closing the issue.
Most helpful comment
There's little nits I have about CMake; but the biggest issue is that there really isn't another cross-platform build chain that is as capable and not tied to some specific project and the nuances of those projects. CMake has actually been growing in use among the FOSS community in the last few years with even Qt making it their official build system a couple years back; I believe KDE did the same too. (Note: Qt even wrote two of their own build systems - qmake and qbs.) There's a handful of others capable build systems other there, but most are tied to Java or a language we don't use and are not easy to integrate. I suspect
machwill be tied to how Mozilla does stuff too (typical - see Bugzilla) since it's built for their particular use-case.I do agree agree with @nabaco that the issue isn't likely Cmake itself; more likely it's how we use CMake and how we suppose those specific platforms.
It'll take some effort to get there but all the tools are there that are needed.
Advantages of CMake: