QMake as a KDE Platform

One of the largest problems we have in KDevelop is that people use our templates. The problem with templates is they are obsolete the second you install them on your project. You don't get bug fixes from new KDevelop releases, you don't get updates when autotools or something changes. So they do over time become a serious liability.

One of the things I have discovered over the years of consulting is that simple solutions are easy to maintain, and easy to fix when they break. Given that bit of insight, I really feel basing our KDE templates off of KDE's build system is not really a nice solution. It's complex, and ever changing, so its hard to change your local projects when the build system updates.

Enter QMake. QMake has an advantage that it makes simple things simple to do. In the last 7 years of development only 2 times have I ever needed to add a configure check for an external library to my software project. Even then with the arrival of tools like pkg-config these checks might not be really that important.

So my proposal is pretty simple. Lets facilitate via templates and QMake project include files the use of a simple tool. By no means abandon the KDE build system. We address many other more complex needs in the KDE build system, that QMake is completely inadequate in its current state to solve. But to be fair to our 3rd party developers, lets give them a simple option, so they can develop for KDE as easily as possible.

So what do people think?


I think that this move would be great. Perhaps it is time to introduce a KDE/qmake template to KDevelop?

BTW/OT - this would make it alot easier to include the KDE widgets in the Qt Widget Gallery.

By e8johan at Fri, 10/01/2004 - 05:51

There is a QMake template with KDevelop in head.

Also KDE widgets are automaticly widget plugins, so they are drop in widgets for Qt Designer.

By Ian Reinhart Geiser at Fri, 10/01/2004 - 15:01

Any chance someone can make/point-out a good kde w/ qmake tutorial?


By Bobby at Fri, 10/01/2004 - 19:05

...start of one in my blog from a few days ago. maybe i should do a dot article this weekend...

By Ian Reinhart Geiser at Fri, 10/01/2004 - 19:56

Sometimes you don't have pkg-config support. That is a pain, because you need to find libraries that could be in a couple of places, or might not be there at all.

Maybe qconf could help?


By brad hards at Fri, 10/01/2004 - 08:02

True, but a lot of users don't need additional libraries, they just want to create a pure KDE application.

Moreover, in quite some cases (most?) popular libraries have their own utility scripts/programs to get their library and include paths, for example SDL has sdl-config

By krake at Fri, 10/01/2004 - 10:11

...then you have kde-config. That alone will give you what you need to build KDE applications with QMake. Sadly KDE applications still have a dependency on KDE, so development of KDE applications without KDE is difficult at best ;)

By Ian Reinhart Geiser at Fri, 10/01/2004 - 15:02

Maybe the autotools based templates could be in some extra package, something like "expert templates".

The QMake based templates could still have some kind of configure script so that packagers and users who install from source don't see the difference.

KDevelop is the first choice when new developers get into KDE development or into development on Linux, a large quantity of them are coming from platforms where development without an IDE is difficult (often due to system restrictions like having only one desktop, etc)

But especially for those novice users (not necessarly novices in programming) autotools based templates are a real turn off.
It takes too long to create a project, because after unpacking and file generating the autotool chain has to be run.

They usually don't know how to use the automake manager or don't even know it exists, when they need another KDE library linked

By krake at Fri, 10/01/2004 - 10:26

I entirely agree. I am not a regular KDE developer but I am a regular Qt (actually pyqt) developer. Each time I try to develop something with KDE, my number 1 problem is the build system. I would aready use qmake before the pkg-config stuff, just handling it manually.

Acutally, I even use tmake for a non-KDE non-Qt project where I need easy portability, easy build system and generation of visual project files. I use tmake because qmake is not available for free on windows, and tmake is easier to modify.

By pfremy at Sat, 10/02/2004 - 10:53