Sort of new qmake test

Andreas Pakulat apaku at gmx.de
Mon Oct 2 12:34:06 UTC 2006


Be warned, this is a long mail.

On 28.09.06 16:56:06, Stephan Diederich wrote:
> (attached) test project tree:
> demos/
>   superdemo/
>      src/
>          main.cpp
>          src.pro (app template)
>      superdemo.pro (subdirs template)
> libs/
>   a/
>     a.pro (lib template)
>     a.h
>     a.cpp
>   b/
>     b.pro (lib template)
>     b.h
>     b.cpp

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.

> 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.

And as long as you don't set that properly all calls to qmake fail (the
2nd and 3rd try failed here too). This is something we should document
in the kdevelop handbook for the importer dialog, you need to recheck
the project options.

There is another problem when executing qmake on the "Subprojects" item
in the listview. I need to think about a proper solution for that.

> - 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.

> -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.

> - 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?

> - adding dependencies from one lib to another writes weired result in
> the pro-file :
> ( I added dependency from liba -> libb gives in a.pro:)
> LIBS += ../../demos/superdemo/b/libb.a
> TARGETDEPS += ../../demos/superdemo/b/libb.a
> Should this really go through the superdemo directory?

I guess you used the libb/liba under superdemo dir? This is again due to
KDevelop not knowing about libs/a and libs/b.

There's a slight mistake in creating the path, it uses
../../libs/b/ instead of ../b/ when adding to libs/a the dependecy.

> -adding dependecies from the app to the libs looks also a bit strange:
> (opened properties of src.pro. added project-internal libs a,b)
> src.pro:
> LIBS +=  ../b/libb.a
> TARGETDEPS += ../a/a ../b/libb.a
> libb is added to both, while a only to one of them?!

Again this is related to KDevelop not knowing about the libs because
they're not part of the project.

However there are some more problems I see here with those things.

> -opening the the qmake-options of a subdir asks sometimes "Save
> first?" (nothing opened before, just after start of kdevelop) (said
> "Yes": crashed with attached log (save_yes.log))

I'll look into that later on, have seen this right now for the first
time and am not sure how to reproduce it.

Seems like it's happening on every project reload...

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

Andreas

-- 
You possess a mind not merely twisted, but actually sprained.




More information about the KDevelop-devel mailing list