Am Thu, Sep 21, 2023 at 04:05:17PM +0200 schrieb David Demelier: > Hi, > > It's near to impossible to convert a CMake project to make > automatically, CMake is almost like a scripting language given the > numerous of things you can do with it. > > Keep in mind that plain make (POSIX) is enough for really simple > projects but can come limited when going portable. Although the use of > pkg-config helps there are various places where you will need to pass > additional compiler/linker flags. For those I like GNU make even though > its syntax is somewhat strange at some points. >
Leaving aside the question of whether POSIX Make is enough for complex projects, I do concur that it is not a good fit for a cmake conversion. If I was tasked with this, I would probably attempt to build a parser for cmake files (in what language is undecided). And that parser can then output a shell script that does the same thing as what cmake would do, i.e. generate a makefile. If necessary, find other packages by whatever rules and write the results into the makefile. I've switched to ninja-build for some of my projects, and that is pretty awesome. Very fast compared to make. The developers basically took the suckless approach and cut everything out of make that made it slow. The result is incompatible but so much faster. I mention this because the approach of generating a makefile is highly encouraged with ninja, so I just use a shell script for that (and I do my best to keep it portable). That said, portability is really not my goal. I don't actively prevent my stuff from running on non-Linux platforms, but I don't actively seek to have them run and tested, either. So maybe someone with experience on that field should speak up. Ciao, Markus