[Interest] Apologies on the "bloat" thread (a.k.a yes Windows is still important)
Thiago Macieira
thiago.macieira at intel.com
Thu Apr 11 02:37:02 CEST 2013
On quarta-feira, 10 de abril de 2013 23.03.53, Scott Aron Bloom wrote:
> Do you have a specification for what the perl script is required to do?
"Use the source, Luke!" ? :-)
Basically, it needs to scan all the *.h files in a given directory and
partially interpret the C++ class declarations in there. It should then output
one file per class or typedef declared in that file, #include'ing the original
file.
That's why we have:
$ cat include/QtCore/{QObject,QString,Q_PID}
#include "qobject.h"
#include "qstring.h"
#include "qprocess.h"
It also creates temporary forwarding headers for the build process:
$ cat include/QtCore/{qobject,qstring,qprocess}.h
#include "../../../../../../src/qt/qt5/qtbase/src/corelib/kernel/qobject.h"
#include "../../../../../../src/qt/qt5/qtbase/src/corelib/tools/qstring.h"
#include "../../../../../../src/qt/qt5/qtbase/src/corelib/io/qprocess.h"
Finally, it outputs one qmake .pri file that contains the listing of what it
found and what it produced:
$ awk '{ print substr($0, 1, 72); }' include/QtCore/headers.pri
SYNCQT.HEADER_FILES = animation/qabstractanimation.h animation/qanimatio
SYNCQT.HEADER_CLASSES = ../../../../../../obj/qt/qt5/qtbase/include/QtCo
SYNCQT.PRIVATE_HEADER_FILES = animation/qabstractanimation_p.h animation
SYNCQT.QPA_HEADER_FILES =
SYNCQT.CLEAN_HEADER_FILES = animation/qabstractanimation.h animation/qan
This file is used to generate the "make install" rules.
> Is there a way for a non Qt developer, ie not one of you guys, one of us :),
> to setup their qt environment into the bootstrap world.
>
> Ie, build the tool so it could be built the same time qmake is built.. With
> "qt" but not "full qt" Please please please don't say I have to write it
> without any Qt
Yes, there's a way. To tell you the truth, I was wondering if it could be done
in C++ with only the Standard Library. I've recently done that (qtchooser) and
it wasn't very pleasant. And especially there's one snag for Windows: listing
directories. Somehow, after all these years this is not a standard API in the
C or C++ standard libraries, so you'd have to write the POSIX code and the
Win32 code for it.
The alternative is to put this code inside qmake itself, so no new binary is
created. This has the advantage that several Qt classes are already
bootstrapped, including the filesystem engine.
The disadvantage is that, personally, I'd rather see qmake replaced by a
newer, more modern tool, instead of adding new code and new features to it.
My recommendation is therefore to follow the qmake route. Start with making a
regular, QtCore-only application. After that, we can merge it into qmake.
PS: qmake can use QRegExp, but not QRegularExpression.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20130410/ca2e8fff/attachment.sig>
More information about the Interest
mailing list