Add workaround for projects using 'QT += declarative'

The code previously exported by the declarative library has been
migrated to the qml and quick libraries, and the symbol names have been
changed accordingly.  To allow existing projects to continue to build,
the declarative module now contains a set of definitions redefining the
deprecated class names to their replacement names.

To make this work, a dependency on the declarative module now
automatically adds a dependency on the qml module in order to make the
new library available for linking.

This is a temporary change to prevent breaking existing projects
that depend on the declarative module. After clients have had an
opportunity to update their code to the use the new interfaces,
it can be removed.

Task-number: QTBUG-23737
Change-Id: Idee6ac627858856802bb1be29e9a4a079da73688
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
This commit is contained in:
Matthew Vogt 2012-02-23 11:31:05 +10:00 committed by Qt by Nokia
parent 5bb1408927
commit 6225e3ba01

View File

@ -1,5 +1,32 @@
CONFIG *= moc thread
# Temporary fixes to avoid QDeclarative -> QQml breakage:
# Projects depending on declarative will now get the full set of
# -DOldSymbol=NewSymbol definitions added to their configuration
# so that the old symbol names still compile. All code previously
# in the declarative library is now in the qml library.
contains(QT, qmldevtools):!contains(QT, declarative) {
QT += declarative
}
contains(QT, qmldevtools-private):!contains(QT, declarative-private) {
QT += declarative-private
}
contains(QT, quick):!contains(QT, declarative) {
QT += declarative
}
contains(QT, quick-private):!contains(QT, declarative-private) {
QT += declarative-private
}
contains(QT, declarative):!contains(QT, qml) {
QT += qml
}
contains(QT, declarative-private):!contains(QT, qml-private) {
QT += qml-private
}
#handle defines
win32 {
qt_static:DEFINES += QT_NODLL