On Saturday, June 04, 2011 06:12:57 PM Bill Hoffman wrote:
> 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)

Or to make it a bit more complex:

srcs = foo.c, bar.c, blub.c

if(Windows)
   srcs += win.c

if (HAVE_MOUNT_H)
   srcs += mount.c

if(BSD || HAVE_WHATEVER)
   if (SOME_VERSION < 1.0)
      srcs += x1.c
   else
      srcs += x2.c

add_executable(hello $srcs)

I think an IDE cannot decide automatically where to add a file here.
Also I cannot imagine how to present those different places in a GUI (...and 
the GUI  would still be somewhat easier to understand than just looking at the 
cmake  script).

So, I'm curious how you plan to solve this.

Alex
_______________________________________________
Qt5-feedback mailing list
[email protected]
http://lists.qt.nokia.com/mailman/listinfo/qt5-feedback

Reply via email to