CMake

Ben Coman btc at openinworld.com
Wed Jan 16 21:21:18 EST 2019


On Thu, 17 Jan 2019 at 06:17, Eliot Miranda <eliot.miranda at gmail.com> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20190117/482e8e2f/attachment.html>


More information about the Pharo-dev mailing list