From 7b997d150c35ece3164d7e2b08701c962e6af1ed Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 10 Nov 2009 14:28:43 +0100 Subject: Switch on DEF files DEF files containing the frozen DLL exports are in use for Symbian OS builds, except developer builds (configured with -developer-build) The reason for this exception is that developer builds export additional private interfaces to allow autotests to inject or monitor the internal data of a class. These autotest exports are not part of the API or the binary interface, so they are excluded from DEF files. Task-number: QTBUG-4436 Reviewed-by: Jason Barron --- src/qbase.pri | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/qbase.pri b/src/qbase.pri index 4639ca1..6428130 100644 --- a/src/qbase.pri +++ b/src/qbase.pri @@ -101,16 +101,25 @@ symbian { "DEFFILE ../s60installs/eabi/$${TARGET}.def" \ "$${LITERAL_HASH}endif" - #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 + 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 + } } load(armcc_warnings) } -- cgit v0.12