From 6b79cbf5cadbaebef8be895a47ca314724afb1a1 Mon Sep 17 00:00:00 2001 From: Iain Date: Fri, 22 Jan 2010 18:18:06 +0100 Subject: 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 --- src/qbase.pri | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) (limited to 'src/qbase.pri') diff --git a/src/qbase.pri b/src/qbase.pri index d9832a13e9..3307ae36f3 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) -- cgit v1.2.3 From f98901601fee4947fd0248f113b3a39a142292d5 Mon Sep 17 00:00:00 2001 From: Iain Date: Mon, 25 Jan 2010 10:23:31 +0000 Subject: Updates to new Symbian DEF file system Fix bug in qbase.pri, where it tested QT_CONFIG instead of CONFIG to see if DEF files were enabled, when setting the DEF file path Fix bug in configure.exe implementation, where SYMBIAN_DEFFILES was defined when testing for its value, due to incorrect use of QMap::operator[] Tidy up configure.exe help for new def files option Task-number: QTBUG-6556 Reviewed-by: Jason Barron Reviewed-by: Janne Koskinen --- src/qbase.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/qbase.pri') diff --git a/src/qbase.pri b/src/qbase.pri index 3307ae36f3..710a2b6ef5 100644 --- a/src/qbase.pri +++ b/src/qbase.pri @@ -103,7 +103,7 @@ symbian { # 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) { + contains(CONFIG, def_files) { defFilePath=../s60installs } } -- cgit v1.2.3