CMake

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

CMake

Ben Coman
 
On Thu, 17 Jan 2019 at 06:17, Eliot Miranda <[hidden email]> wrote:
        - About CMake, you may be right that makefile is better than CMake but a part of the world is using
        CMake and the net result is that we lost our effort and infrastructure just to follow you. Ronie uses CMake. 
        Igor which I consider as a talented developer used CMake because he thought it was the best tool
        he should use.

Yes, and I disagree about the way that they use it, and for good reason.  I have defended my use of Makefiles for a long time, for objective reasons. 

These reasons may be technically correct, but in terms of *community* consider it similar to premature optimization.
For yourself, the priority is a faster build.  Others may prioritize a faster coding workflow using an IDE like Visual Studio.
Indeed, back when I trialed building minheadless on Windows a *primary* consideration was that it looked easy to 
use Visual Studio because minheadless had a CMake build.  That led to me contributing a couple of small fixes for win64,
but without the enticement of CMake I might never have opened that box.   

Consider then the possibility that a portion of our Windows using community remains untapped 
because their skill set is Visual Studio and they don't see an easy path to using it with plain makefiles**.
So it depends on what is better for the *community* to optimize for:
* faster build-time for incumbents (important because thats where the majority of contributions come from)   
* broader community involvement with a workflow accelerating IDE (important because growing the vm community is important, from which additional core devs may arise) 

** I do understand that plain makefiles can be used with VS, but I'm not clear on the setup and 
unsure if all the fancy intellisense tools work.

I have also proposed good ways for using CMake (to derive a platform-specific header file defining available platform-specific features). 

I presume its the additional multi-build-system features that people want CMake for, not just the using it in name only.
I can't remember the trade-off between Automake-configure and CMake-configure.  Make using CMake-configure
would make it easier to co-ordinate parallel CMake and GnuMake systems.  I think I've noticed several large
code-bases providing both (but I'd have to check)
 

But my objection to Igor's process was that he generated sources on each build. 

 
And my objections to Ronie's use of CMake for the minheadless build are that a) it is slow and

I'd like to quantify that.  
@esteban, I remember you converted minheadless from CMake to Gnumake, but I'm not sure if I've got that right.
Can both be run off the current HEAD for minheadless?  Or I could compare HEAD with a previous commit that had CMake. 


b) explicit feature sets are much better than the implicit feature sets that arise when using CMake.

I'd like to understand this better. Could you expand?

cheers -ben