qt5base-lts/qmake/qmake.pri
João Abecasis 7bbe79fe5f Drop file-engine abstraction from public API
This abstraction imposed serious performance penalties and is being
dropped from the public API.

In particular, by allowing file names to be arbitrarily hijacked by
different file engines, and requiring engines to be instantiated in
order to decide, it imposed unnecessary overhead on all file operations.

Another flaw in the design with direct impact on performance is how
engines have no way to provide (or retain) additional information
obtained when querying the filesystem. In many places this has meant
repeated operations on the file system, where useful information is
immediately discarded to be queried again subsequently.

For Qt 4.8 a major refactoring of the code base took place to allow
bypassing the file-engine abstraction in select places, with
considerable performance gains observed. In Qt 5 it is expected we'll be
able to take this further, reaping even more benefits, but the
abstraction has to go.

[Dropping this now does not preclude that virtual file systems make an
appearance in Qt at a later point in Qt 5's lifecycle. Hopefully with a
new and improved abstraction.]

Forward declarations for QFileExtension(Result) were dropped, as the
classes were never used or defined.

Tests using "internalized" classes will only fully run on developer
builds. QFSFileEngine was removed altogether from exception safety test,
as it isn't its intent to test internal API.

Change-Id: Ie910e6c2628be202ea9e05366b091d6d529b246b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-02-22 00:07:31 +01:00

153 lines
4.4 KiB
Plaintext

CONFIG += depend_includepath
QMAKE_INCREMENTAL =
SKIP_DEPENDS += qconfig.h qmodules.h
DEFINES += QT_NO_TEXTCODEC QT_NO_LIBRARY QT_NO_STL QT_NO_COMPRESS QT_NO_UNICODETABLES \
QT_NO_GEOM_VARIANT QT_NO_DATASTREAM
#qmake code
SOURCES += project.cpp property.cpp main.cpp generators/makefile.cpp \
generators/unix/unixmake2.cpp generators/unix/unixmake.cpp meta.cpp \
option.cpp generators/win32/winmakefile.cpp generators/win32/mingw_make.cpp \
generators/makefiledeps.cpp generators/metamakefile.cpp generators/mac/pbuilder_pbx.cpp \
generators/xmloutput.cpp generators/win32/borland_bmake.cpp \
generators/win32/msvc_nmake.cpp generators/projectgenerator.cpp \
generators/win32/msvc_vcproj.cpp \
generators/win32/msvc_vcxproj.cpp \
generators/win32/msvc_objectmodel.cpp generators/win32/msbuild_objectmodel.cpp \
generators/integrity/gbuild.cpp
HEADERS += project.h property.h generators/makefile.h \
generators/unix/unixmake.h meta.h option.h cachekeys.h \
generators/win32/winmakefile.h generators/win32/mingw_make.h generators/projectgenerator.h \
generators/makefiledeps.h generators/metamakefile.h generators/mac/pbuilder_pbx.h \
generators/xmloutput.h generators/win32/borland_bmake.h generators/win32/msvc_nmake.h \
generators/win32/msvc_vcproj.h \
generators/win32/msvc_vcxproj.h \
generators/win32/msvc_objectmodel.h generators/win32/msbuild_objectmodel.h \
generators/integrity/gbuild.h
contains(QT_EDITION, OpenSource) {
DEFINES += QMAKE_OPENSOURCE_EDITION
}
bootstrap { #Qt code
DEFINES+=QT_NODLL QT_NO_THREAD
SOURCES+= \
qbitarray.cpp \
qbuffer.cpp \
qbytearray.cpp \
qbytearraymatcher.cpp \
qcryptographichash.cpp \
qdatetime.cpp \
qdir.cpp \
qdiriterator.cpp \
qfile.cpp \
qabstractfileengine.cpp \
qfileinfo.cpp \
qfilesystementry.cpp \
qfilesystemengine.cpp \
qfsfileengine.cpp \
qfsfileengine_iterator.cpp \
qglobal.cpp \
qnumeric.cpp \
qhash.cpp \
qiodevice.cpp \
qlist.cpp \
qlinkedlist.cpp \
qlocale.cpp \
qlocale_tools.cpp \
qmalloc.cpp \
qmap.cpp \
qmetatype.cpp \
qregexp.cpp \
qtextcodec.cpp \
qutfcodec.cpp \
qstring.cpp \
qstringlist.cpp \
qtemporaryfile.cpp \
qtextstream.cpp \
qurl.cpp \
quuid.cpp \
qsettings.cpp \
qlibraryinfo.cpp \
qsystemerror.cpp \
qvariant.cpp \
qvector.cpp \
qvsnprintf.cpp \
qxmlstream.cpp \
qxmlutils.cpp \
qlogging.cpp
HEADERS+= \
qbitarray.h \
qbuffer.h \
qbytearray.h \
qbytearraymatcher.h \
qchar.h \
qcryptographichash.h \
qdatetime.h \
qdatetime_p.h \
qdir.h \
qdir_p.h \
qdiriterator.h \
qfile.h \
qabstractfileengine_p.h \
qfileinfo.h \
qglobal.h \
qnumeric.h \
qhash.h \
qiodevice.h \
qlist.h \
qlinkedlist.h \
qlocale.h \
qlocale_tools_p.h \
qmalloc.h \
qmap.h \
qmetatype.h \
qregexp.h \
qtextcodec.h \
qutfcodec.h \
qstring.h \
qstringlist.h \
qstringmatcher.h \
qsystemerror_p.h \
qtemporaryfile.h \
qtextstream.h \
qurl.h \
quuid.h \
qvector.h \
qxmlstream.h \
qxmlutils.h
unix {
SOURCES += qfilesystemengine_unix.cpp qfilesystemiterator_unix.cpp qfsfileengine_unix.cpp
mac {
SOURCES += qfilesystemengine_mac.cpp
SOURCES += qcore_mac.cpp qsettings_mac.cpp
LIBS += -framework ApplicationServices
}
} else:win32 {
SOURCES += qfilesystemengine_win.cpp qfsfileengine_win.cpp qfilesystemiterator_win.cpp qsettings_win.cpp \
qsystemlibrary.cpp
win32-msvc*:LIBS += ole32.lib advapi32.lib
win32-g++*:LIBS += -lole32 -luuid -ladvapi32 -lkernel32
}
qnx {
CFLAGS += -fhonor-std
LFLAGS += -lcpp
}
DEFINES *= QT_NO_QOBJECT
} else {
CONFIG += qt
QT = core
}
*-g++:profiling {
QMAKE_CFLAGS = -pg
QMAKE_CXXFLAGS = -pg
QMAKE_LFLAGS = -pg
}
PRECOMPILED_HEADER = qmake_pch.h