Paul Olav Tvete

Lighthouse is integrated!

Published Friday October 29th, 2010
15 Comments on Lighthouse is integrated!
Posted in Lighthouse, Qt

Breaking news: The lighthouse branch just passed the quality gate of the continuous integration system, and is now integrated into Qt’s master branch. This means that Lighthouse is now part of the code base that is going to be released as Qt 4.8. Just to be clear: this does not necessarily mean that Lighthouse will be an officially supported platform for 4.8; that is a separate decision not made by the Lighthouse project team.

(For those who haven’t followed the whole saga in detail: Lighthouse is the project name for the Qt Platform Abstraction – making it much easier to port Qt to new platforms.)

In other news, we have decided to move Lighthouse development over to the master branch. We will no longer update the 4.7 branch of the lighthouse repository. The very latest lighthouse changes will continue to be available at The public Lighthouse repository. We are planning to integrate changes into Qt master about once a week, provided they pass the QA gate of the CI system.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Lighthouse, Qt


Ismail Donmez says:

Great news! Congratulations to you all.

I was looking at the source code, and I have to ask: Is there a way for us to change the event loop? It seems that, at present, this defers to the select/poll based Unix one, which is obviously suboptimal for non-Posixy platforms.

(In particular, I’m currently working with a platform where, while there is a POSIX emulation layer, its certainly not as capable as – or anywhere near as performant as – the native API)

mgoetz says:

@Owen Shepherd, I’m curious, which platform is that?

Jørgen Lind says:

@Owen Yes and no. Project Lighthouse concentrates on making QtGui portable. This means that we tend not to do changes in QtCore. The QUnixEventDispatcher (thats where ie. the select is) lives in QtCore. There are also some EventDispatcher subclasses in QtGui. This is because the EventDispatchers needed some window system integration. We saw that this was something we also needed in Lighthouse, but we needed a simpler API and we also needed it to be pluggable. So a while ago we added a EventLoopIntegration interface to the QPlatformIntegration class. I just recently changed it, and I believe the api is slightly more flexible now. That means you can get WindowSystem events etc in the main thread, but still use select to get notifications for file descriptors. Also it requires you to drive timers in the WindowSystem. Please see the cocoa plugin for how to use it. I haven’t had time to update the openKODE plugin yet.

Martin Ribelotta says:

Have plans make Lighouse as functional as QWS over linux framebuffer or it is deprecated platform?. (I need a window system for my non-accelerated linux devices?)

PD: I have run the framebuffer integration example and I like the idea, but the lack of a multi-process display access leaves us at the level of GTK+framebuffer with an only monoprocess access to screen.

PD2: I’ve seen the dev-day example… but can’t port it to framebuffer (still)

@mgoetz: Its an internal (not presently public) platform that we are working on for some embedded devices.

@Jørgen: The main issue for us is the required dependency on select(). Our native API is very different to POSIX, and particularly around I/O the emulation gets complex and expensive, and has issues interworking with the native API (e.g. the POSIX subsystem must take total control of the handles in order to implement POSIX semantics, and once this is done they become unusable via the native API).

However, it may be that a full platform port of Qt would be better for us. I am certainly investigating that.

Ian (from Africa) says:

Congratulations! Have Qt (and Qt Quick) running on iOS (iPod 4G) thanks to this project. Love it! 🙂

Ian (from Africa) says:

Here’s a video (if anyone’s interested). Still need to put a filter on the touch events…

Lighthouse seems to be very promising. Hopefully Qt will be available for Android in the near future, because I would like to release software on Android as well.

@Ian: I am impressed, I had no idea that it is even possible to port Qt on iOS.

Ian (from Africa) says:

@Sami: Thanks! There is currently a Lighthouse port to Android in progress. As Lighthouse currently falls under a “technology preview” license, it won’t be possible to release any software that uses Lighthouse until Qt 4.8 is officially released (no-one knows when that will be, as Qt 4.7.0 was just released)… The (really) good news is that with this announcement, we now at least know that it will be possible at some stage (in the not too distant future)… 🙂

MNaydenov says:

Interesting stuff indeed, I hope politics will not get in the way of Qt being ported to other platforms (other then Nokia endorsed ones).

@Owen: It is possible to replace the event dispatcher without making a full port of Qt: you can still use Lighthouse for the GUI. The cleanest way would be to define a new OS, with a Q_OS_MYSECRET #define, and keep Q_WS_QPA. On the Mac we run Lighthouse with Q_OS_MAC and Q_WS_QPA. Lighthouse does not solve this part, unfortunately. Making QtCore pluggable is outside the scope of the project.

@Ian: That looks very impressive. I am speechless. 🙂

Ian (from Africa) says:

@MNaydenov: I doubt there will ever be Nokia sponsored ports of Qt to competitors’ platforms (which is of course very different to them not allowing them). One of the points of Lighthouse is that it makes it possible for Qt customers to port Qt easily without official support (which wasn’t really feasible before). In any case, Qt ports to other platforms can only help Nokia (as long as they make sure the ports to their own platforms are good!)…

@Paul: Thanks! Wouldn’t have been possible without Lighthouse… 🙂

Although it is very unlikely that Nokia would release Qt for Android, I am quite sure that it is going to happen sooner or later. It would make sense to have common development tools for Android, Symbian, and MeeGo and I am pretty sure that current Android developers could be ready to use Qt instead of Android SDK.

Ian (from Africa) says:

@Sami: It will happen the day that Qt 4.8 is (officially) released. It’s not possible to release (software based on) ports of Lighthouse before that. That is what this announcement is about: Lighthouse is part of Qt 4.8.

Commenting closed.

Get started today with Qt Download now