QMake status and other ideas for our students

Milian Wolff mail at milianw.de
Wed Jan 5 15:18:40 UTC 2011


Hey all,

this email is mainly aimed at the french students hacking on KDevelop. Their 
team size has increased and now counts 10 people, awesome. I hope we continue 
to see more good work from you guys.

Here is an outline of the current status of the QMake plugin, in case you are 
interested to work on it:

First up, you can find it here:
https://projects.kde.org/projects/extragear/kdevelop/experimental/kdev-qmake

You'll need kdevelop-pg-qt to build it:
https://projects.kde.org/projects/extragear/kdevelop/utilities/kdevelop-pq-qt

Now, lets look at the plugin. It utilizes the AbstractProjectManagerPlugin 
(shared between generic manager, custom buildsystem and QMake). There are some 
bugs in there, for example renaming a file doesn't seem to delete the renamed 
file sometimes it seems. Besides that, most actions from the Project Manager 
View should work fine.

The real work needed to be done right now is the QMake support though. First 
up, we need a dialog similar to what CMake shows, when importing a project. It 
should ask for the build dir (for shadow builds), have a lineedit to insert 
custom stuff, defaulting to CONFIG+=debug. Then this setting, esp. the path to 
the build dir, needs to be handled in the plugin to make sure qmake is run 
from there and the qmakecache files are found properly. I think this is the 
most important missing part of the qmake support plugin.

The next most important thing is support for custom defines, e.g.

myapp.pro:
~~~~~~~~~~~~~~~~~~
TEMPLATE = app
TARGET = myapp

DEFINES += "TEST=1"
DEFINES += "FOO=\"\\\"bar\\\"\""

SOURCES += main.cpp
~~~~~~~~~~~~~~~~~~

These defines should be passed to the Cpp Language plugin via the existing API 
properly. I don't think it's hard to implement.

Finally, and probably hardest to do, is the missing support for macros 
("variable processing functions") in the QMake support. On one hand the build-
in functions are not yet implemented, and we need to find out which actually 
exist. They don't seem to be well documented, but take a look at this:
http://www.qtcentre.org/wiki/index.php?title=Undocumented_qmake#Undocumented_functions

Furthermore we should eventually support custom macros, see also:
http://doc.trolltech.com/4.7/qmake-advanced-usage.html#variable-processing-
functions

Generally I think this would be a cool project for you guys to work on. It 
would certainly help people out there stuck with QMake. And esp. the last part 
with custom functions sounds like an interesting problem to solve. I know that 
CMake supports this already for it's macros, so maybe you can look there for 
inspiration.

Bye

PS: There where other students contacting me and Aleix and I think you all 
should get in contact and decide who is working on what. I still look forward 
for the day that these plugins get revived/polished and released:

valgrind
qtdesigner

veritascpp
ctest
cppunit
coverage

mercurial

java
ruby

In that order imo.

All of them can be found in SVN. We could move them to git if someone is 
interested to work on them:
http://websvn.kde.org/trunk/playground/devtools/kdevelop4-extra-plugins/

Bye^2
-- 
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20110105/095320c3/attachment.sig>


More information about the KDevelop-devel mailing list