Sort of new qmake test

Stephan Diederich S.Diederich at gmx.de
Wed Oct 4 13:20:32 UTC 2006


Hi Andreas,

2006/10/2, Andreas Pakulat <apaku at gmx.de>:
> Be warned, this is a long mail.

np, mine wasn't better, but I gave my best this time ;)

> On 28.09.06 16:56:06, Stephan Diederich wrote:
[snip]

> This is not a proper project. There's no main .pro file. These are
> multiple individual projects and kdevelop has no support for that. I
> added .pro files in <projectroot>, libs and demos with just
> TEMPLATE=subdirs and SUBDIRS set accordingly.

Thanks for that hint! The support for this type of "project" was given
before. I know this structure is a bit uncommon, but unfortunately we
have it, and that's why we've chosen qmake as our build system.
The demo project was just an short excerpt. Our tree looks like that:
projectroot
  apps
     app1
     app2
     ...
  demos
     superdemo
     ...
  someLibsFromUs
     liba
     libb
  andSomeOtherLibsFromUs
     libd

The libs are shared across different apps and demos, but there's no
main project at the top which includes everything, as not every
app/demo uses all of the libs. Bjam and qmake are the only build
systems - I've found so far - that support that structure. In each
app/demo/lib-dir there's a .pro file (as well as vcproj-files from
VC++). The demos and app dirs have .pro and .sln (also VC++) files,
and are the so called main projects. It's no problem to add .pro files
in the project-root and all the other sub-but_not_a_leaf-dir, but
opening the project-root in kdev isn't an option, as too much unneeded
stuff gets pulled into the project :(

> > So, here's the stuff:
> > - if a qmake project is imported (here superdemo), the first attempt
> > to build the project fails. Reason is that kdev searches qmake at
> > /bin/qmake. After opening the Project-Options the first time, it just
> > starts qmake (without /bin) and that works
>
> The problem is that after importing you need to tell KDevelop where the
> Qt installation is. Depending on the choice during import (Qt or Qt4
> QMake application) it sets a couple of defaults for the Qt options under
> Project Options->C++ Support->Qt tab, but KDevelop cannot know the Qt
> installation directory.

Sorry, I think I didn't make myself clear. I just opened and closed
the project options dialog. I didn't change anything in there. So I
think KDevelop could have known that before. But that's not a problem
- just wanted to mention it, as it was a bit uncommon.

[snip]
> > - if I open the qmake-config dialog of the src-subproject, and then
> > change to the top-project(superdemo.pro), kdevelop crashes with the BT
> > attached (qmakeprojectchangecrash.log). konsole output says only Kdev
> > crashing.. (nothing before)
>
> That has been fixed on Saturday, the handling of custom variables was broken.

Confirmed!

>
> > -adding subdirs to a subdir project doesn't work.
> >   (says something about "Not allowed to create subfolder") But why
> > create? It's already there (tried to add lib "a" to the
> > superdemo.pro-subdir-template)
> >
> > - after adding ../../libs/a to superproject.pro SUBDIRS by hand it works
>
> I need to check in the source if/how I can enable the usage of
> out-of-project-root subdirs in the project.

Ok, cool, thanks! This is *really* interesting for our directory/project layout.

>
> > - changing some project attributes generates way too many empty lines
> > in the *.pro files
>
> Hmm, is it more sensible to only add empty lines before/after scopes? Or
> should I never insert empty lines at all?

Erm, not sensible at all. I've just seen it and thought I'd drop a
line. One ugly thing for source control was the complete rewrite of a
project from kdevelop file after adding just a single source file.
But, if IIRC this was fixed. Thanks!

[snipped stuff which heavily depends on the possibility of having
out-of-project-root]

> Again thanks for the testing, I'll look into the problems as soon as
> possible.

You're welcome, and - thanks for looking into that stuff.

Cheers,
Stephan




More information about the KDevelop-devel mailing list