On quarta-feira, 10 de abril de 2013 21.54.29, Michael Jackson wrote:
> So we have to move include files around during the build because command
> line lengths are too long? I have never understood why the header for
> QString isn't QString.h. Why is it qstring.h?

The header is qstring.h because it has always been qstring.h. That works in Qt 
1, 2, 3, 4 and 5, provided you have the right -I flags.

The novelty came from Qt 4, because you can include the class name without 
caring for which header it comes from. QString is not a good example, so I ask 
you: what header provides these?

        QMetaMethod
        QProcessEnvironment
        QGraphicsObject
        QGraphicsPixmapItem
        QEvent

Another thing came from Mac support: frameworks. Because in Qt 4 the one big 
Qt library was split into multiple libraries and each one is a framework, you 
need a two-level include to make it work with simple buildsystems:

        #include <QtCore/qstring.h>
not
        #include <qstring.h>

The latter only works if you add an -I to the Headers directory inside the 
QtCore.framework bundle. (Granted, recently the Mac OS X framework development 
philosophy changed, so headers-inside-frameworks is no longer recommended)

We don't want to manually maintain those headers. They change a lot during 
development. And we might accidentally forget an update before a release, only 
to see it reported as a bug with an angry "You don't do QA!" comment. So we 
wrote a simple script to do it for us.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to