woboq / moc-ng

A reimplementation of Qt's moc using libclang. Contains both a drop-in remplacement, and a plugin for the clang compiler.
https://woboq.com/blog/moc-with-clang.html
GNU General Public License v3.0
204 stars 24 forks source link

Support for Qt 4 (4.8) #5

Closed nanoant closed 6 years ago

nanoant commented 11 years ago

This plugin is simply awesome! It would be even greater if it could also replace Qt 4.8 moc.

Since Qt 5 is really major change which relies on OpenGL comparing to Qt 4.8. Many apps & developers tend to stay with Qt 4.x.

It is there any reason moc-ng couldn't work for Qt 4.x?

ogoffart commented 11 years ago

As far as I am concerned, Qt 4.8 is out of scope. Mostly because I've moved on to Qt5 in that respect.

There was lots of difference in the moc output. Especially in the format of the strings and the signatures. http://blog.qt.digia.com/blog/2012/06/22/changes-to-the-meta-object-system-in-qt-5/ There could be a flag to switch generate 4.8 output. (or perhaps better, automatically detect using the QT_VERSION macro)

Another difference is that in Qt 4.8, moc did not expand the macro.

(NB, Qt5 is not a so big change, and the OpenGL requirements only concerns QtQuick2, there is still QtQuick1. If someone wants to stay with Qt 4.x will also want to keep its moc.)

nanoant commented 11 years ago

For me (GUI app developer) it is big change since all app widgets are now rendered via OpenGL rather than platforms 2D functions. This brings some extra dependencies, not so many, but still.

Anyway thanks for the info about Qt5 changes, maybe I'll manage to add Qt4.8 support to moc-ng following that blog entry.

sierdzio commented 11 years ago

AFAIK, the base of your argument is wrong, widgets are still painted using QPainter.

ogoffart commented 6 years ago

Qt4 is no longer supported for a long time.