Crouching Leopard, Solid Dragon

Posted by Harald Fernengel on March 9, 2009 · 7 comments

Solid Dragon

It’s time to present the little hack that I’ve been working on for a while now: A Mac OS X backend (source code) for Solid, KDE’s hardware introspection library. To make a good screen shot, and to show how easy it is to use Solid, here’s also a small hardware browser:

Mini Solid-based Hardware Browser

The backend is still in progress, and not all Solid hardware interfaces are implemented yet. Still, the generic interface can be used to introspect any device and read out its properties. You can even introspect the famous Dont_Steal_Mac_OS_X device :)

One of the nice things about Solid is that it can be used from non-KDE applications as well – it just requires Qt (*)

64-bit Leopard

Next to playing with Solid, the release of Qt 4.5 was a good excuse to play with 64-bit KDE on 10.5 (Leopard).

First, we need the magic CMake switch to build 64-bit Mac OS X applications: -DCMAKE_OSX_ARCHITECTURES="x86_64" (**)

Unfortunately, some of kdelib’s files rely on deprecated API which doesn’t exist in the 64-bit versions of OS X’s libraries. So after some fixing and some more commenting out of non-compiling stuff, I finally got my first KDE 64-bit application:

minibrowser.app/Contents/MacOS/minibrowser: Mach-O 64-bit executable x86_64

Screen shot: see above ;)

 

(*) Well, there’s also a D-Bus dependency

(**) You can produce universal binaries by separating the desired architectures with a semicolon, e.g. -DCMAKE_OSX_ARCHITECTURES="x86_64;i386;ppc;ppc64" to get all four currently supported architectures. Unfortunately, I have no clue how to create universal binaries for the third party libs that KDE depends on (e.g. D-Bus) – any automake expert, please leave a comment (or convince the projects to switch to a more humane build system).

QShare(this)

No related posts.


7 comments

1 Anon March 9, 2009 at 10:03 pm
 

“One of the nice things about Solid is that it can be used from non-KDE applications as well – it just requires Qt (*)”

Any plans for Qt Software to “adopt” Solid and make it part of the Qt stack, as they did with Phonon? It just seems like an absolutely perfect fit to me (especially with things like GPS, bluetooth etc becoming more prevalent in various platforms), and I’ve been semi-expecting it since Trolltech’s Phonon and Solid API Review sprint.

2 Alejandro Wainzinger March 9, 2009 at 10:10 pm
 

This is exciting stuff! It means for Amarok that Ipod/MTP support is soon a possibility for OS X, keep up the good work!

3 Patrick Spendrin March 9, 2009 at 10:35 pm
 

I have heard that kde-windows project uses a cmake build system for dbus…. ;-)
And there will is a cmakeports project currently underway which will provide some patches for that.

4 Leo S March 10, 2009 at 5:40 am
 

Cool.. Maybe solid will be the next KDE technology to be integrated into Qt? Would be very nice! Kdelibs provide some nice stuff, but it’s not nearly as nicely set up for devs (at least on windows) as qt is.

5 stephenju March 12, 2009 at 1:23 pm
 

How do you do this with QtCreator? Actually, how do you do anything with QtCreator? I can’t build a 32-bit universal binary app and can’t find any documentation on how to achieve that with QtCreator. All I can find is some command-line examples. Same thing on how to build a static app or bundled framework app.

I must be very bad on finding information around here since I can’t even figure out how to deploy an app created in QtCreator. Does it create a installer that install Qt runtime? Or do my users need to install Qt SDK manually first?

Question, question, and question… :)

QtCreatorlooks so promising but so far it’s like a hobbyist toy. More guide and documentation specific to it will greatly help.

6 Leo S March 12, 2009 at 7:07 pm
 

stephenju, you might consider reading the documentation that you claim doesn’t exist.

http://doc.trolltech.com/4.4/deployment-windows.html

Which is helpfully bundled with QtCreator and accessible in, you guessed it, the help tab.

7 stephenju March 13, 2009 at 7:57 pm
 

Yes, I am aware of the doc. But as I mentioned, it DOES NOT apply to Creator. Specifically, there’s no mention anywhere how to achieve that with the SDK download. And there’s not mention on how to use Creator with the source code download. Not to mention the doc you link is for Windows and this post and my question about Universal Binaries is for Mac.

http://doc.trolltech.com/4.5/deployment-mac.html

The macdeploy tool mentioned is actually named macdeployqt and it’s not even included in SDK download. You have to download the source and build the whole thing then figure out how to use it with Creator. :(

I like the promise of the new tools. I want it to be better. Actually I filed 3 bugs in the first 2 days I used this. But a little help from QtSoftware will be much easier for everybody.

BTW. OT but what is with the security code and then long wait for the moderation? This doesn’t smell open to me at all.

Comments on this entry are closed.

Previous post:

Next post: