While people are brainstorming on kde-core-devel about some very fuzzy (so far) “merging of kdelibs and Qt”, which funnily got picked up at some places on the interwebs like strong plans (ahem!), I keep doing my streamlining work of the platform in my dark corner of the world. I’m just posting this small blog entry to keep you people informed on what got dropped in the platform the last few days.
First, everywhere it was possible, the internal dependencies of kdelibs became conditionnal. For instance, you can now build a libplasma without any dependency on libkio, libsolid, libknewstuff or libkdewebkit. Other libraries have seen a similar work, it’s not that many dependency cuts (as for instance, right now, it’s very hard to not depend on kdecore or kdeui as higlighted by the brainstorming mentionned above).
Second, I just committed last night and this morning a whole bunch of changes to allow building kdelibs without any deprecated symbols. It reduces a lot the symbols exported by our libraries, and to some extend the size of the libraries. As it’s obviously binary incompatible, it is an option that you can activate using the experimental Mobile profile.
And that’s where I need your help, I can port a couple of modules out of using such deprecated APIs (I did it for kdepimlibs and kdebase so far), but I can’t and won’t do it all by myself! So this blog post is also a call to arms: developers, try to build kdelibs with the Mobile profile and check that you application still build and run against it! I’ll help me because more porting will be done, and it’ll help you as it’s always good for applications to avoid relying on deprecated APIs. Also, in the hypothetic event a KDE5 would arise, not depending on deprecated API today will make your porting effort easier tomorrow.
Help Me! Help You! Build the KDE Platform with the Mobile Profile!
How to do that? It’s easy, just use “-DKDE_PLATFORM_PROFILE=Mobile” when invoking cmake. Interestingly, all the ported apps I tested so far seem to work just as usual (there’s a couple of integration features lost, but it’s hardly noticeable really), so for instance I can run plasma-desktop or dolphin just fine using the Mobile profile.