[Qt5-feedback] Build system requirements for Qt5
Bill Hoffman
bill.hoffman at kitware.com
Sat Jun 4 18:12:57 CEST 2011
On 6/4/2011 4:37 AM, Thiago Macieira wrote:
> Em Friday, 3 de June de 2011, às 13:59:20, Charley Bay escreveu:
>> Marcus spaketh:
>>> I have been considering this for quite some time, and we have been
>>> talking about this at Kitware. There is discussion of replacing Qt's
>>> build system, possibly writing a new one or modifying an existing one.
>>> What I would really like to know is what you want the declarative
>>> language to look like. Is the general consensus a JSON structure?
>>> Would looping and conditional constructs from JavaScript be used, or
>>> purely the data container format?
>
> The most important thing is that it be a declarative language, not imperative.
> It needs to be something that the IDE can fully parse without ambiguity and
> without hacks as "evaluate all branches of if-else to true".
>
> It should be clear which parts are related to the configuration-detection part
> of the cycle and which ones list the build instructions. Like autoconf and
> automake do: autoconf is imperative, automake is declarative.
>
I would like to dig into the specifics a bit on the declarative vs
imperative and what it would actually look like.
How would you handle the imperative system introspection's interaction
with the declarative part. Perhaps if you could give a simple example
of how one would handle an optionally compiled file in a library.
How would something like this be expressed:
if(HAS_FEATURE_A)
add_source_to_library(foo foo.c)
I could see some ways to do this. But, I want to make sure we are all
on the same page with expectations. You could have all the sources
always declared in the declarative part of the target. Then filter them
out in the imperative part. Does QtCreator need to know which things
are active? How does QtCreator interact with the system introspection
part of the system?
Having a declarative input mechanism to CMake would be something we
(CMake devs) are interested in supporting. However, we would like to
see some examples and use cases.
Thanks.
-Bill
More information about the Qt5-feedback
mailing list