summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIain <qt-info@nokia.com>2010-01-22 17:18:06 (GMT)
committerIain <qt-info@nokia.com>2010-01-22 17:21:55 (GMT)
commit6b79cbf5cadbaebef8be895a47ca314724afb1a1 (patch)
tree9040d8eec0dda130e5f81a185390d3ab1a5449dc /src
parent7b8b83d2ea788e73a4c0f7dee09ba3394787e6bb (diff)
downloadQt-6b79cbf5cadbaebef8be895a47ca314724afb1a1.zip
Qt-6b79cbf5cadbaebef8be895a47ca314724afb1a1.tar.gz
Qt-6b79cbf5cadbaebef8be895a47ca314724afb1a1.tar.bz2
Improve DEF file enable/disable mechanism on Symbian
Provide configure flag to enable/disable the use of DEF files on Symbian. A useful side-effect was that it cleaned up how we control DEF files from qbase.pri and in WebKit. -nokia-developer still disables DEF files, as it triggers the autotest exports, which are not frozen into the DEF files. Disabling DEF files means that there is no BC with previously released versions of Qt, so this should only be used for development purposes. .pro files can specify custom locations for DEF files by setting defFilePath. Task-number: QTBUG-6556 Reviewed-by: Jason Barron
Diffstat (limited to 'src')
-rw-r--r--src/qbase.pri36
1 files changed, 11 insertions, 25 deletions
diff --git a/src/qbase.pri b/src/qbase.pri
index d9832a1..3307ae3 100644
--- a/src/qbase.pri
+++ b/src/qbase.pri
@@ -94,31 +94,17 @@ symbian {
DEFINES+=QT_MAKEDLL
TARGET.CAPABILITY = All -Tcb
- defBlock = \
- "$${LITERAL_HASH}ifdef WINSCW" \
- "DEFFILE ../s60installs/bwins/$${TARGET}.def" \
- "$${LITERAL_HASH}elif defined EABI" \
- "DEFFILE ../s60installs/eabi/$${TARGET}.def" \
- "$${LITERAL_HASH}endif"
-
- contains(QT_CONFIG, private_tests) {
- #When building autotest configuration, there are extra exports from
- #the Qt DLLs, which we don't want in the frozen DEF files.
- MMP_RULES += EXPORTUNFROZEN
- } else {
- #When building without autotests, DEF files are used by default.
- #This is to maintain binary compatibility with previous releases.
-
- #with defBlock enabled, removed exported symbols are treated as errors
- #and there is binary compatibility between successive builds.
- #with defBlock disabled, binary compatibility is broken every time you build
- MMP_RULES += defBlock
-
- #with EXPORTUNFROZEN enabled, new exports are included in the dll without
- #needing to run abld freeze, however binary compatibility is only maintained
- #for symbols that are frozen (and only if defBlock is also enabled)
- #the downside of EXPORTUNFROZEN is that the linker gets run twice
- #MMP_RULES += EXPORTUNFROZEN
+ # When building without autotests, DEF files are used by default.
+ # This is to maintain binary compatibility with previous releases.
+ # To explicitly disable DEF files usage, eg. when lots of code churn is
+ # going on, and functions may be added and removed before shipping,
+ # configure with -no-usedeffiles
+ # WARNING - disabling DEF files *will* break BC with previous released versions
+ # of Qt, and the only compatibility will be between this build of Qt and anything
+ # built in this exact environment. *Never* use this when building a version
+ # for release.
+ contains(QT_CONFIG, def_files) {
+ defFilePath=../s60installs
}
}
load(armcc_warnings)