diff -r 3b1da2848fc7 -r d3bac044e0f0 mkspecs/features/symbian/def_files.prf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mkspecs/features/symbian/def_files.prf Fri Mar 12 15:46:37 2010 +0200 @@ -0,0 +1,34 @@ +# With DEF files enabled, removed exported symbols are treated as errors +# and there is binary compatibility between successive builds. + +CONFIG -= def_files_disabled + +# Firstly, if the MMP_RULES already contain a defBlock variable, don't generate another one +# (this bit is slightly magic, because it depends upon everyone creating their DEFFILE statements +# in a defBlock variable; but otherwise we have to expand MMP_RULES then scan for the DEFFILE keyword) +!contains(MMP_RULES, defBlock) { + # Apps are executables on Symbian, so don't have exports, and therefore don't have DEF files + # Plugins use standard DEF files, which qmake generates, so shouldn't be using these DEFFILE + # statements - they use the qmake generated statements instead + # Static libraries obviously don't have DEF files, as they don't take part in dynamic linkage + !contains(TEMPLATE, app):!contains(CONFIG, plugin):!contains(CONFIG, staticlib): { + !isEmpty(defFilePath) { + defBlock = \ + "$${LITERAL_HASH}ifdef WINSCW" \ + "DEFFILE $$defFilePath/bwins/$${TARGET}.def" \ + "$${LITERAL_HASH}elif defined EABI" \ + "DEFFILE $$defFilePath/eabi/$${TARGET}.def" \ + "$${LITERAL_HASH}endif" + } else { + # If defFilePath is not defined, then put the folders containing the DEF files at the + # same level as the .pro (and generated MMP) file(s) + defBlock = \ + "$${LITERAL_HASH}ifdef WINSCW" \ + "DEFFILE ./bwins/$${TARGET}.def" \ + "$${LITERAL_HASH}elif defined EABI" \ + "DEFFILE ./eabi/$${TARGET}.def" \ + "$${LITERAL_HASH}endif" + } + MMP_RULES += defBlock + } +}