[Development] Proposing CMake as build tool for Qt 6

Konstantin Tokarev annulen at yandex.ru
Mon Jun 17 17:44:46 CEST 2019



17.06.2019, 18:17, "Matthew Woehlke" <mwoehlke.floss at gmail.com>:
> On 17/06/2019 08.44, Konstantin Tokarev wrote:
>>  Also, are you trying to say that cmake's configuration system is
>>  more user friendly than Qt's configure
>
> Yes. Very much so.
>
>>  (or for, that matter, autotool's configure or similar things in sane
>>  build systems)?
>
> Yes. Very much so.

then our definitions of friendliness vary. I'd rather call cmake's behvior
user-hostile.

>
>>  All of the latter provide a set of documented options with
>>  human-oriented names,
>
> CMake's options are also documented. (Or, at least, they should be. If
> they aren't, that's the fault of the project author(s), though, not
> CMake. Similarly, I'm sure you can neglect to document autotools options.)

In ccmake there is only one line per option for documentation. And I can't find
documentation in cmake-gui either.

>
> The difference is that autotools just spits out a great block of text at
> me. With ccmake / cmake-gui, I can *interactively* putter around the
> available options. And I don't have to copy/paste to turn things on, or
> worry if I need to remember to run configure with the same arguments
> every time, or...

This approach gives you no way to extract your actualy configuration line after
you finished your interactive configuration. That's why everyone uses commands
like

     cmake -DX=A -DY=B -DZ=C ...

in their build instructions (though variable names are much less pleasant, in
particular to prevent name conflicts with cmake builtins and 3rd-party projects)

>
>>  [...] which exposes internal variable names as they are.
>
> Again, poor naming is not CMake's fault. I'm sure you can give autotools
> config options very poor names also.

Autotools provide human-readable options of standardized format

--with-thing
--without-thing
--enable-thing
--disable-thing

Also there are a lot of standard options working with any project, like --host=
which provides cross-compilation

>
> Having recently tried to build Qt myself for the first time, I very,
> very much miss having something like ccmake...

As much as I miss really helpful --help with cmake

-- 
Regards,
Konstantin



More information about the Development mailing list