mkspecs/features/symbian/def_files.prf
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 27 May 2010 13:40:48 +0300
changeset 23 89e065397ea6
parent 19 fcece45ef507
child 29 b72c6db6890b
permissions -rw-r--r--
Revision: 201019 Kit: 2010121

# 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"
            
            MMP_RULES += defBlock
        }
        
    }
}