#
# qmake configuration for symbian-*
#

include(symbian.conf)

load(symbian/add_mmp_rules)

symbian-abld {
# Versions of abld prior to Symbian^3 have a bug where you cannot remove something from the command line without replacing it
# Rather than figure out which version of abld we're using, we'll replace the command with a macro *that should never be used*
    MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE"
} else {
    MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl // don't use --export_all_vtbl"
}
MMP_RULES += BYTEPAIRCOMPRESSTARGET
MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6

INCLUDEPATH = \
    $$[QT_INSTALL_DATA]/mkspecs/common/symbian/stl-off \
    $$[QT_INSTALL_DATA]/mkspecs/common/symbian \
    $${EPOCROOT}epoc32/include \
    $$OS_LAYER_LIBC_SYSTEMINCLUDE \
    $$INCLUDEPATH

# Ensure '.' directory is the first in include path.
# RVCT seems to do this automatically, but WINSCW compiler does not, so add it here.
MMP_RULES += "USERINCLUDE ."

# S60 3.1 devices don't support paging for non-ROM components, so no point in using the less efficient compression mechanism
contains(S60_VERSION, 3.1):MMP_RULES -= BYTEPAIRCOMPRESSTARGET

QMAKE_CXXFLAGS_FAST_VFP.ARMCC = --fpmode fast
# [TODO] QMAKE_CXXFLAGS_FAST_VFP.GCCE =

symbian {
    armfpu = $$find(MMP_RULES, "ARMFPU")
    !isEmpty(armfpu) {
        vfpv2 = $$find(MMP_RULES, "vfpv2")
        !isEmpty(vfpv2) {
            # we will respect fpu setting obtained from configure, but,
            # if vfpv2 or softvfp+vfpv2 used we want to force RunFast VFP mode
            QMAKE_CXXFLAGS.ARMCC += $${QMAKE_CXXFLAGS_FAST_VFP.ARMCC}
            # [TODO] QMAKE_CXXFLAGS.GCCE += $${QMAKE_CXXFLAGS_FAST_VFP.GCCE}
        }
    }
}

# Variables for replacing equivalent QMAKE_* variables in bld.inf for FLM execution of commands
symbian-sbsv2 {
    QMAKE_SBSV2_COPY           = $(GNUCP)
    QMAKE_SBSV2_COPY_DIR       = $(GNUCP) -r
    QMAKE_SBSV2_MOVE           = $(GNUMV)
    QMAKE_SBSV2_DEL_FILE       = $(GNURM) -f
    QMAKE_SBSV2_MKDIR          = $(GNUMKDIR)
    QMAKE_SBSV2_DEL_DIR        = $(GNURMDIR)
    QMAKE_SBSV2_DEL_TREE       = $(GNURM) -rf
}

# Mark all debug executables debuggable.
MMP_RULES += DEBUGGABLE_UDEBONLY
