[Qt5-feedback] Build system requirements for Qt5

Oswald Buddenhagen oswald.buddenhagen at nokia.com
Thu Jun 9 12:57:17 CEST 2011


On 06/09/11 09:36, ext Alexander Neundorf wrote:
> There is absolutely nothing wrong if you write a replacement for make, a
> generator for that can be added to cmake.
>
/me shakes head in resignation

> This is not possible with the cmake features as they are currently available
> with the current language.
>
q.e.d.

> Just what I know: Bill seems to be open to add a second, declarative input
> format to cmake.
>
yes, i've been tracking that discussion, both the public one and the 
direct communication we had with kitware.
it seems desperate to see you giving in, because the reservations 
against changing the language (or even adding a second one, which seems 
even worse in some regards) are still valid. cmake's biggest strength is 
the surrounding community and the plethora of library code for it. by 
changing the language (or adding a new one) you will fragment and 
confuse the community, while still constraining yourself to the inherent 
limitations of the tool's architecture.

> cmake was declarative when it was started, but became more and more
> imperative.
>
like qmake and about every other build tool that evolved from a 
particular project's build system.

> E.g. when you say it should be declaration oder independent:
> add_subdirectory() was added because the order-independent subdirs() was not
> good enough for KDE.
>
an ugly workaround for the failure to add a facility to adequately 
represent build order requirements in a declarative way.

> CMake can easily put all existing targets into the project file for the IDE,
> the IDE doesn't have to guess them.
>
and how is the IDE supposed to understand the relationships between them?
the target we are looking for right now is compile-foo.cpp. but i can 
list arbitrary other requirements. there is no way around the IDE 
understanding the entire project structure, and doing that quickly 
(i.e., without calling some external tool all the time and having it 
generate some intermediate representation).

honestly, i don't think this discussion will lead anywhere, so let's 
just stop it now.
we are holding a build system workshop at the contributor summit, to 
share and discuss our research and plans in more detail with interested 
parties.


More information about the Qt5-feedback mailing list