[Development] Specifying module dependencies

Oswald Buddenhagen oswald.buddenhagen at theqtcompany.com
Thu Jun 11 18:47:40 CEST 2015


On Thu, Jun 11, 2015 at 03:43:15PM +0200, Simon Hausmann wrote:
> On Thursday, June 11, 2015 12:29:10 PM Oswald Buddenhagen wrote:
> > On Wed, Jun 10, 2015 at 08:32:07PM +0000, Hausmann Simon wrote:
> > > Hi,
> > > 
> > > Ok :) let's try with reduced qmake syntax (just variables, no functions).
> > > We can still fall back to json if it's too clumsy.
> > as you can "parse anything", what's wrong with parsing the function
> > calls from qt.pro? they match a pretty simple regexp ...
> 
> Nothing is wrong with that. In fact that's a great idea :)
> 
> So how about we place a dependencies.pri into the top-level directory of each 
> module that contains just that one addModule(...) function call?
> 
> Then qt.pro can just include whatever is there, the CI can simply parse it and 
> - this is different to today's status - the module dependencies are tracked 
> within the module instead of in the external qt5.git.
> 
it's not that easy.

you won't get rid of the redundant dependency specifications anyway,
because qt.pro (and the sync.profile's) are about repository deps, while
the module's requires() (and whatever other methods they use to exclude
themselves) are about module (and non-qt) deps.

about sync.profile and pinning, i think you didn't consider non-mainline
branches in your plan. you need to specify the branches of the other
modules you want to build against *somewhere*. nowadays that could be
actually qt5.git's .gitmodules, as it now contains the branches. of
course, this implies branching qt5.git for every CI-controlled
non-mainline branch. this actually sounds quite logical. i'm all for
removing the inter-repo deps from sync.profile - it was never meant to
contain them in the first place.




More information about the Development mailing list