summaryrefslogtreecommitdiffstats
path: root/mkspecs/common/symbian
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/common/symbian')
-rw-r--r--mkspecs/common/symbian/appCaptionForTranslation.cpp46
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknDoc.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknFontAccess.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknLayoutFont.h2
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknPopupFader.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknServerApp.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknUtils.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknsBasicBackgroundControlContext.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknsConstants.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknsDrawUtils.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknsItemID.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknsSkinInstance.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/AknsUtils.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/ApDataHandler.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/ApUtils.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/CDirectoryLocalizer.h1
-rw-r--r--mkspecs/common/symbian/header-wrappers/DocumentHandler.h1
-rw-r--r--mkspecs/common/symbian/packageNameForTranslation.cpp47
-rw-r--r--mkspecs/common/symbian/qplatformdefs.h108
-rw-r--r--mkspecs/common/symbian/stl-off/new5
-rw-r--r--mkspecs/common/symbian/symbian-makefile.conf72
-rw-r--r--mkspecs/common/symbian/symbian-mmp.conf60
-rw-r--r--mkspecs/common/symbian/symbian.conf297
-rw-r--r--mkspecs/common/symbian/symbianincludes.h58
27 files changed, 713 insertions, 0 deletions
diff --git a/mkspecs/common/symbian/appCaptionForTranslation.cpp b/mkspecs/common/symbian/appCaptionForTranslation.cpp
new file mode 100644
index 0000000000..cbab586884
--- /dev/null
+++ b/mkspecs/common/symbian/appCaptionForTranslation.cpp
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//: Application short caption, currently only relevant for application projects in Symbian.
+QT_TRANSLATE_NOOP("QtApplicationCaptions", "Application short caption")
+
+//: Application long caption, currently only relevant for application projects in Symbian.
+QT_TRANSLATE_NOOP("QtApplicationCaptions", "Application long caption")
diff --git a/mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h b/mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h
new file mode 100644
index 0000000000..d53605e56e
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h
@@ -0,0 +1 @@
+#include <aknbitmapanimation.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknDoc.h b/mkspecs/common/symbian/header-wrappers/AknDoc.h
new file mode 100644
index 0000000000..d4dbd7d373
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknDoc.h
@@ -0,0 +1 @@
+#include <akndoc.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknFontAccess.h b/mkspecs/common/symbian/header-wrappers/AknFontAccess.h
new file mode 100644
index 0000000000..e33baafc9c
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknFontAccess.h
@@ -0,0 +1 @@
+#include <aknfontaccess.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h b/mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h
new file mode 100644
index 0000000000..5f993d7ecd
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h
@@ -0,0 +1 @@
+#include <akninputlanguageinfo.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknLayoutFont.h b/mkspecs/common/symbian/header-wrappers/AknLayoutFont.h
new file mode 100644
index 0000000000..b5954e175b
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknLayoutFont.h
@@ -0,0 +1,2 @@
+#include <aknlayoutfont.h>
+
diff --git a/mkspecs/common/symbian/header-wrappers/AknPopupFader.h b/mkspecs/common/symbian/header-wrappers/AknPopupFader.h
new file mode 100644
index 0000000000..60a007a3f2
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknPopupFader.h
@@ -0,0 +1 @@
+#include <aknpopupfader.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknServerApp.h b/mkspecs/common/symbian/header-wrappers/AknServerApp.h
new file mode 100644
index 0000000000..b4dc69f019
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknServerApp.h
@@ -0,0 +1 @@
+#include <aknserverapp.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknUtils.h b/mkspecs/common/symbian/header-wrappers/AknUtils.h
new file mode 100644
index 0000000000..66a3784979
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknUtils.h
@@ -0,0 +1 @@
+#include <aknutils.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknsBasicBackgroundControlContext.h b/mkspecs/common/symbian/header-wrappers/AknsBasicBackgroundControlContext.h
new file mode 100644
index 0000000000..d12112287c
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknsBasicBackgroundControlContext.h
@@ -0,0 +1 @@
+#include <aknsbasicbackgroundcontrolcontext.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknsConstants.h b/mkspecs/common/symbian/header-wrappers/AknsConstants.h
new file mode 100644
index 0000000000..c262866525
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknsConstants.h
@@ -0,0 +1 @@
+#include <aknsconstants.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknsDrawUtils.h b/mkspecs/common/symbian/header-wrappers/AknsDrawUtils.h
new file mode 100644
index 0000000000..7d71624537
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknsDrawUtils.h
@@ -0,0 +1 @@
+#include <aknsdrawutils.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknsItemID.h b/mkspecs/common/symbian/header-wrappers/AknsItemID.h
new file mode 100644
index 0000000000..fe3b80eac2
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknsItemID.h
@@ -0,0 +1 @@
+#include <aknsitemid.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknsSkinInstance.h b/mkspecs/common/symbian/header-wrappers/AknsSkinInstance.h
new file mode 100644
index 0000000000..4a9dcd882e
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknsSkinInstance.h
@@ -0,0 +1 @@
+#include <aknsskininstance.h>
diff --git a/mkspecs/common/symbian/header-wrappers/AknsUtils.h b/mkspecs/common/symbian/header-wrappers/AknsUtils.h
new file mode 100644
index 0000000000..1b9bece55a
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/AknsUtils.h
@@ -0,0 +1 @@
+#include <aknsutils.h>
diff --git a/mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h b/mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h
new file mode 100644
index 0000000000..75b6c693cd
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h
@@ -0,0 +1 @@
+#include <apaccesspointitem.h>
diff --git a/mkspecs/common/symbian/header-wrappers/ApDataHandler.h b/mkspecs/common/symbian/header-wrappers/ApDataHandler.h
new file mode 100644
index 0000000000..b7b972dab7
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/ApDataHandler.h
@@ -0,0 +1 @@
+#include <apdatahandler.h>
diff --git a/mkspecs/common/symbian/header-wrappers/ApUtils.h b/mkspecs/common/symbian/header-wrappers/ApUtils.h
new file mode 100644
index 0000000000..09cedce751
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/ApUtils.h
@@ -0,0 +1 @@
+#include <aputils.h>
diff --git a/mkspecs/common/symbian/header-wrappers/CDirectoryLocalizer.h b/mkspecs/common/symbian/header-wrappers/CDirectoryLocalizer.h
new file mode 100644
index 0000000000..f251302bcf
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/CDirectoryLocalizer.h
@@ -0,0 +1 @@
+#include <cdirectorylocalizer.h>
diff --git a/mkspecs/common/symbian/header-wrappers/DocumentHandler.h b/mkspecs/common/symbian/header-wrappers/DocumentHandler.h
new file mode 100644
index 0000000000..8981af6cef
--- /dev/null
+++ b/mkspecs/common/symbian/header-wrappers/DocumentHandler.h
@@ -0,0 +1 @@
+#include <documenthandler.h>
diff --git a/mkspecs/common/symbian/packageNameForTranslation.cpp b/mkspecs/common/symbian/packageNameForTranslation.cpp
new file mode 100644
index 0000000000..dece534895
--- /dev/null
+++ b/mkspecs/common/symbian/packageNameForTranslation.cpp
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//: Installation package name, currently only relevant for Symbian projects that deploy something.
+QT_TRANSLATE_NOOP("QtPackageNames", "Package name")
+
+//: Smart installer installation package name, currently only relevant for Symbian projects that
+//: deploy something.
+QT_TRANSLATE_NOOP("QtPackageNames", "Smart installer package name")
diff --git a/mkspecs/common/symbian/qplatformdefs.h b/mkspecs/common/symbian/qplatformdefs.h
new file mode 100644
index 0000000000..31d34eff97
--- /dev/null
+++ b/mkspecs/common/symbian/qplatformdefs.h
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QPLATFORMDEFS_H
+#define QPLATFORMDEFS_H
+
+// Get Qt defines/settings
+
+#include "qglobal.h"
+
+// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
+
+// 1) need to reset default environment if _BSD_SOURCE is defined
+// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0
+// 3) it seems older glibc need this to include the X/Open stuff
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+#endif
+
+#include <unistd.h>
+
+
+// We are hot - unistd.h should have turned on the specific APIs we requested
+
+//#include <features.h>
+#include <pthread.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <grp.h>
+#include <pwd.h>
+//#include <signal.h>
+#include <dlfcn.h>
+#include <sys/select.h>
+
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/ipc.h>
+#include <sys/time.h>
+#include <sys/shm.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <netinet/in.h>
+#ifndef QT_NO_IPV6IFNAME
+#include <net/if.h>
+#endif
+#include <arpa/inet.h>
+
+#define QT_USE_XOPEN_LFS_EXTENSIONS
+// unset large file as symbian doesn't support it
+#undef QT_LARGEFILE_SUPPORT
+#include "../posix/qplatformdefs.h"
+
+#undef QT_OPEN_LARGEFILE
+#undef QT_SOCKLEN_T
+
+#define QT_OPEN_LARGEFILE 0
+
+#if (defined(__GLIBC__) && (__GLIBC__ >= 2)) || defined(Q_OS_SYMBIAN)
+#define QT_SOCKLEN_T socklen_t
+#else
+#define QT_SOCKLEN_T int
+#endif
+
+#if defined(__ISO_C_VISIBLE) && (__ISO_C_VISIBLE >= 1999)
+#define QT_SNPRINTF ::snprintf
+#define QT_VSNPRINTF ::vsnprintf
+#endif
+
+#endif // QPLATFORMDEFS_H
diff --git a/mkspecs/common/symbian/stl-off/new b/mkspecs/common/symbian/stl-off/new
new file mode 100644
index 0000000000..8584ba36b4
--- /dev/null
+++ b/mkspecs/common/symbian/stl-off/new
@@ -0,0 +1,5 @@
+// 'new' implemented in symbian libs, so do nothing here; just keep Qt happy
+#ifndef __NEW_SYMB_ADDON
+#define __NEW_SYMB_ADDON
+#include <e32base.h>
+#endif //__NEW_SYMB_ADDON
diff --git a/mkspecs/common/symbian/symbian-makefile.conf b/mkspecs/common/symbian/symbian-makefile.conf
new file mode 100644
index 0000000000..a725df3553
--- /dev/null
+++ b/mkspecs/common/symbian/symbian-makefile.conf
@@ -0,0 +1,72 @@
+#
+# qmake configuration for makefile based symbian
+#
+
+contains(QMAKE_HOST.os,Windows) {
+ MAKEFILE_GENERATOR = SYMBIAN_MINGW
+} else {
+ MAKEFILE_GENERATOR = SYMBIAN_UNIX
+}
+
+include(symbian.conf)
+
+QMAKE_INCDIR_OPENGL = $${EPOCROOT}epoc32/include
+QMAKE_LIBDIR_OPENGL = $${EPOCROOT}epoc32/release/armv5/lib
+QMAKE_INCDIR_OPENGL_ES1 = $${EPOCROOT}epoc32/include/GLES
+QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL
+QMAKE_INCDIR_OPENGL_ES2 = $${EPOCROOT}epoc32/include/GLES2
+QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
+QMAKE_INCDIR_EGL = $${EPOCROOT}epoc32/include/EGL
+QMAKE_LIBDIR_EGL = $$QMAKE_LIBDIR_OPENGL
+QMAKE_INCDIR_OPENVG = $${EPOCROOT}epoc32/include/VG
+QMAKE_LIBDIR_OPENVG = $$QMAKE_LIBDIR_OPENGL
+
+QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
+
+QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
+QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
+QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
+QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+QMAKE_ELF2E32_FLAGS = --dlldata \
+ --fpu=softvfp \
+ --unfrozen \
+ --compressionmethod bytepair \
+ --unpaged
+
+QMAKE_PREFIX_SHLIB =
+CONFIG *= no_plugin_name_prefix
+QMAKE_PREFIX_STATICLIB =
+QMAKE_SYMBIAN_SHLIB = 1
+
+QMAKE_LINK_OBJECT_SCRIPT = objects
+
+is_using_gnupoc {
+ DEFINES *= __QT_PRODUCT_INCLUDE_IS_LOWERCASE__
+}
+QMAKE_SYMBIAN_INCLUDES = $$IN_PWD/symbianincludes.h
+symbian-armcc {
+ QMAKE_CFLAGS += --preinclude $$QMAKE_SYMBIAN_INCLUDES
+ QMAKE_CXXFLAGS += --preinclude $$QMAKE_SYMBIAN_INCLUDES
+} else:symbian-gcce {
+ QMAKE_CFLAGS += -include $$QMAKE_SYMBIAN_INCLUDES
+ QMAKE_CXXFLAGS += -include $$QMAKE_SYMBIAN_INCLUDES
+}
+DEFINES *= \
+ __SYMBIAN32__ \
+ __MARM_INTERWORK__ \
+ _UNICODE \
+ __S60_50__ \
+ __S60_3X__ \
+ __SERIES60_3X__ \
+ __EPOC32__ \
+ __MARM__ \
+ __EABI__ \
+ __MARM_ARMV5__ \
+ __SUPPORT_CPP_EXCEPTIONS__
+
+QMAKE_CFLAGS_DEBUG += -g
+QMAKE_CXXFLAGS_DEBUG += -g
+QMAKE_CFLAGS_RELEASE += -O2 -Otime
+QMAKE_CXXFLAGS_RELEASE += -O2 -Otime
+
diff --git a/mkspecs/common/symbian/symbian-mmp.conf b/mkspecs/common/symbian/symbian-mmp.conf
new file mode 100644
index 0000000000..8ed326ae3f
--- /dev/null
+++ b/mkspecs/common/symbian/symbian-mmp.conf
@@ -0,0 +1,60 @@
+#
+# 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
+}
+
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
new file mode 100644
index 0000000000..5bf8728baa
--- /dev/null
+++ b/mkspecs/common/symbian/symbian.conf
@@ -0,0 +1,297 @@
+#
+# qmake configuration for all symbian mkspecs
+#
+
+TEMPLATE = app
+CONFIG += prepend_includepath qt warn_on release incremental link_prl sis_targets run_on_phone
+QT += core gui
+QMAKE_INCREMENTAL_STYLE = sublib
+
+DEFINES += UNICODE QT_KEYPAD_NAVIGATION QT_SOFTKEYS_ENABLED QT_USE_MATH_H_FLOATS
+
+QMAKE_COMPILER_DEFINES += SYMBIAN
+
+QMAKE_EXT_OBJ = .o
+QMAKE_EXT_RES = _res.o
+QMAKE_EXTENSION_SHLIB = dll
+QMAKE_EXTENSION_PLUGIN = dll
+QMAKE_EXTENSION_STATICLIB = lib
+
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = byacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS =
+QMAKE_CFLAGS_DEPS =
+QMAKE_CFLAGS_WARN_ON =
+QMAKE_CFLAGS_WARN_OFF =
+QMAKE_CFLAGS_RELEASE =
+QMAKE_CFLAGS_DEBUG =
+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+
+MMP_OPTION_KEYWORDS = CW ARMCC GCCE
+VERSION_FLAGS.ARMCC = ARMCC_4
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+# Symbian build system applies -cwd source on the MWCC command line.
+# this causes problems with include paths, -cwd include uses the same
+# rules for include paths as ARMCC
+# This should really be fixed in raptor, as using CXXFLAGS means we pass
+# both on the command line and rely on the compiler using the last specified
+QMAKE_CXXFLAGS.CW = -cwd include
+QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden
+QMAKE_CXXFLAGS.ARMCC_4 = --import_all_vtbl
+QMAKE_CXXFLAGS.GCCE = -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
+QMAKE_CXXFLAGS_RTTI_ON =
+QMAKE_CXXFLAGS_RTTI_OFF =
+QMAKE_CXXFLAGS_EXCEPTIONS_ON =
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
+
+QMAKE_INCDIR =
+QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
+
+QMAKE_LFLAGS =
+QMAKE_LFLAGS.ARMCC =
+QMAKE_LFLAGS.GCCE =
+QMAKE_LFLAGS_EXCEPTIONS_ON =
+QMAKE_LFLAGS_EXCEPTIONS_OFF =
+QMAKE_LFLAGS_RELEASE =
+QMAKE_LFLAGS_DEBUG =
+QMAKE_LFLAGS_CONSOLE =
+QMAKE_LFLAGS_WINDOWS =
+QMAKE_LFLAGS_DLL =
+QMAKE_LINK_OBJECT_MAX =
+QMAKE_LINK_OBJECT_SCRIPT=
+
+QMAKE_LIBS = -llibc -llibm -leuser -llibdl
+QMAKE_LIBS_CORE = $$QMAKE_LIBS -lefsrv -lhal -lbafl -lapparc
+QMAKE_LIBS_CFBSBITMAP = -lfbscli -lbitgdi -lgdi
+QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE $$QMAKE_LIBS_CFBSBITMAP -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -lcentralrepository
+QMAKE_LIBS_NETWORK =
+QMAKE_LIBS_EGL = -llibEGL
+QMAKE_LIBS_OPENGL = -llibGLESv2
+QMAKE_LIBS_OPENGL_ES1 = -llibGLESv1_CM
+QMAKE_LIBS_OPENGL_ES2 = -llibGLESv2
+QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL $$QMAKE_LIBS_CFBSBITMAP -lcone -lws32
+QMAKE_LIBS_OPENGL_ES1_QT = $$QMAKE_LIBS_OPENGL_ES1 $$QMAKE_LIBS_CFBSBITMAP -lcone -lws32
+QMAKE_LIBS_OPENGL_ES2_QT = $$QMAKE_LIBS_OPENGL_ES2 $$QMAKE_LIBS_CFBSBITMAP -lcone -lws32
+QMAKE_LIBS_OPENVG = $$QMAKE_LIBS_CFBSBITMAP -llibOpenVG
+QMAKE_LIBS_THREAD = -llibpthread
+QMAKE_LIBS_COMPAT =
+QMAKE_LIBS_S60 = -lavkon -leikcoctl -lgfxtrans
+
+exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) {
+ QMAKE_LIBS_OPENVG += -lsgresource
+}
+
+contains(QMAKE_HOST.os,Windows) {
+ QMAKE_COPY = copy /y
+ QMAKE_COPY_DIR = xcopy /s /q /y /i
+ QMAKE_MOVE = move
+ QMAKE_DEL_FILE = del /q 2> NUL
+ QMAKE_MKDIR = mkdir
+ QMAKE_DEL_DIR = rmdir
+ QMAKE_DEL_TREE = rmdir /s /q
+ QMAKE_CHK_DIR_EXISTS = if not exist
+
+ QMAKE_MOC = $$[QT_INSTALL_BINS]\\moc.exe
+ QMAKE_UIC = $$[QT_INSTALL_BINS]\\uic.exe
+ QMAKE_IDC = $$[QT_INSTALL_BINS]\\idc.exe
+} else {
+ QMAKE_COPY = cp
+ QMAKE_COPY_DIR = cp -r
+ QMAKE_MOVE = mv
+ QMAKE_DEL_FILE = rm -f
+ QMAKE_MKDIR = mkdir -p
+ QMAKE_DEL_DIR = rmdir
+ QMAKE_DEL_TREE = rm -rf
+ QMAKE_CHK_DIR_EXISTS = test -d
+
+ QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
+ QMAKE_UIC = $$[QT_INSTALL_BINS]/uic
+ QMAKE_IDC = $$[QT_INSTALL_BINS]/idc
+}
+
+QMAKE_IDL = midl
+QMAKE_ZIP = zip -r -9
+QMAKE_UNZIP = unzip -o
+
+QMAKE_WRITE_DEFAULT_RC = 1
+
+QMAKE_TAR = tar -cf
+QMAKE_GZIP = gzip -9f
+
+QT_ARCH = symbian
+
+load(qt_config)
+
+QMAKE_LIBS_QT_ENTRY = -lqtmain$${QT_LIBINFIX}.lib
+QMAKE_LIBS_NO_QT_ENTRY = -llibcrt0.lib
+QMAKE_LIBS_NO_QT_ENTRY_GCCE = -llibcrt0_gcce.lib
+
+# List of languages that have a Symbian language code mapping provided in localize_deployment.prf
+SYMBIAN_SUPPORTED_LANGUAGES = \
+ af sq am ar hy bn bg my be ca \
+ hr cs da nl en et fi fr gd ka \
+ de el gu he hi hu is id ga it \
+ ja kn kk ko lo lv lt mk ms ml \
+ mr mo mn nb pl pt pa ro ru sr \
+ si sk sl so es sw sv tl ta te \
+ th bo ti tr tk uk ur vi cy zu \
+ nn eu zh gl fa st en_US fr_BE \
+ pt_BR en_CA fr_CA el_CY tr_CY \
+ en_TW en_HK en_CN en_JP en_TH \
+ sv_FI zh_HK es_419 en_ZA fr_CH \
+ de_CH it_CH zh_TW
+
+# These directories must match what configure uses for QT_INSTALL_PLUGINS and QT_INSTALL_IMPORTS
+QT_PLUGINS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/plugins
+QT_IMPORTS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/imports
+
+load(symbian/platform_paths)
+
+# If environment.prf is provided by platform, load that.
+# It is used for platform specific variable settings, such as SYMBIAN_VERSION.
+exists($${EPOCROOT}epoc32/tools/qt/mkspecs/features/environment.prf) {
+ load($${EPOCROOT}epoc32/tools/qt/mkspecs/features/environment.prf)
+}
+
+# Try to detect SDK version if it wasn't set by environment.prf
+isEmpty(SYMBIAN_VERSION)|isEmpty(S60_VERSION) {
+ exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.4.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.4.sis) {
+ isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = 5.4
+ isEmpty(S60_VERSION): S60_VERSION = 5.4
+ } else {
+ exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.3.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.3.sis) {
+ isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = 5.3
+ isEmpty(S60_VERSION): S60_VERSION = 5.3
+ } else {
+ # The Symbian^3 PDK does not necessarily contain the required sis files.
+ # However, libstdcppv5 first appeared in Symbian^3 (S60 5.2), so check for that too.
+ exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.2.sis)|exists($${EPOCROOT}epoc32/release/armv5/lib/libstdcppv5.dso) {
+ isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = Symbian3
+ isEmpty(S60_VERSION): S60_VERSION = 5.2
+ } else {
+ exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.1.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.1.sis) {
+ isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = Symbian2
+ isEmpty(S60_VERSION): S60_VERSION = 5.1
+ } else {
+ exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.0.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.0.sis) {
+ isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = 9.4
+ isEmpty(S60_VERSION): S60_VERSION = 5.0
+ } else {
+ exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.2.sis) {
+ isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = 9.3
+ isEmpty(S60_VERSION): S60_VERSION = 3.2
+ } else {
+ exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.1.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.1.sis) {
+ isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = 9.2
+ isEmpty(S60_VERSION): S60_VERSION = 3.1
+ } else {
+ isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = Unknown
+ isEmpty(S60_VERSION): S60_VERSION = Unknown
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+# pkg_depends_webkit, pkg_depends_core, and pkg_platform_dependencies can be removed by developer
+# if multiple languages need to be supported by pkg file. In that case the developer should declare
+# multiple language compatible dependency statements him/herself.
+
+default_deployment.pkg_prerules += pkg_depends_webkit pkg_depends_qt pkg_platform_dependencies
+DEPLOYMENT += default_deployment default_bin_deployment default_resource_deployment default_reg_deployment
+
+defineReplace(symbianRemoveSpecialCharacters) {
+ # Produce identical string to what SymbianCommonGenerator::removeSpecialCharacters
+
+ fixedStr = $$1
+
+ fixedStr = $$replace(fixedStr, /,_)
+ fixedStr = $$replace(fixedStr, \\\\,_)
+ fixedStr = $$replace(fixedStr, " ",_)
+ fixedStr = $$replace(fixedStr, :,_)
+
+ return ($$fixedStr)
+}
+
+# Determines translations that are Symbian supported
+defineTest(matchSymbianLanguages) {
+ # Qt language codes for which we need to parse .ts file
+ SYMBIAN_MATCHED_LANGUAGES =
+ # List of translation files for matched languages
+ SYMBIAN_MATCHED_TRANSLATIONS =
+ # List of Qt language codes for which we have no mapped Symbian code but we have a fallback code
+ # and therefore need to generate a mapping for in localize_deployment.prf.
+ # The fallback code means plain language code for languages that have both language and country codes.
+ # E.g. the fallback code for language "zh_CN" would be "zh".
+ SYMBIAN_UNMAPPED_LANGUAGES =
+ # List of handled Qt language codes to avoid duplicate Symbian language codes in case both
+ # unmapped language+country combination and its fallback code, or multiple unmapped language+country
+ # combinations that have same fallback code are included.
+ HANDLED_LANGUAGES =
+
+ # Cannot parse .ts file for language here, so detect it from filename.
+ # Allow two and three character language and country codes.
+ for(translation, TRANSLATIONS) {
+ language = $$replace(translation, "^(.*/)?[^/]+_(([^_]{2,3}_)?[^_]{2,3})\\.ts$", \\2)
+ !contains(HANDLED_LANGUAGES, $$language) {
+ HANDLED_LANGUAGES += $$language
+ # Make sure translation path is absolute or shadow builds will not work
+ !contains(translation, "(^/|^\\\\|^.:).*"): translation = $$_PRO_FILE_PWD_/$$translation
+
+ contains(SYMBIAN_SUPPORTED_LANGUAGES, $$language) {
+ SYMBIAN_MATCHED_LANGUAGES += $$language
+ SYMBIAN_MATCHED_TRANSLATIONS += $$translation
+ } else {
+ # No direct mapping for specified language found. Check if a fallback language code can be used.
+ strippedLanguage = $$replace(language, "_.*$",)
+ contains(SYMBIAN_SUPPORTED_LANGUAGES, $$strippedLanguage):!contains(HANDLED_LANGUAGES, $$strippedLanguage) {
+ HANDLED_LANGUAGES += $$strippedLanguage
+ SYMBIAN_UNMAPPED_LANGUAGES += $$language
+ SYMBIAN_MATCHED_LANGUAGES += $$language
+ SYMBIAN_MATCHED_TRANSLATIONS += $$translation
+ SYMBIAN_LANGUAGE_FALLBACK.$$language = $$strippedLanguage
+ export(SYMBIAN_LANGUAGE_FALLBACK.$$language)
+ }
+ }
+ }
+ }
+
+ isEmpty(SYMBIAN_MATCHED_LANGUAGES): SYMBIAN_MATCHED_LANGUAGES = en
+
+ export(SYMBIAN_MATCHED_LANGUAGES)
+ export(SYMBIAN_MATCHED_TRANSLATIONS)
+ export(SYMBIAN_UNMAPPED_LANGUAGES)
+}
+
+# Symbian pkg files that define multiple languages require a language specific string to be
+# defined for various items, even though the string often needs to be same for all languages.
+# This replacement method will generate correct string for such cases based on TRANSLATIONS
+# variable.
+defineReplace(addLanguageDependentPkgItem) {
+ localize_deployment:!isEmpty(TRANSLATIONS):isEmpty(SYMBIAN_MATCHED_LANGUAGES) {
+ matchSymbianLanguages()
+ }
+
+ pkgItem = $$eval($$1)
+ pkgLanguageList =
+
+ for(dummyItem, SYMBIAN_MATCHED_LANGUAGES) {
+ pkgLanguageList += "\"$$pkgItem\""
+ }
+
+ isEmpty(pkgLanguageList): pkgLanguageList = "\"$$pkgItem\""
+
+ return($$join(pkgLanguageList,",",,))
+}
diff --git a/mkspecs/common/symbian/symbianincludes.h b/mkspecs/common/symbian/symbianincludes.h
new file mode 100644
index 0000000000..5d7f488fdb
--- /dev/null
+++ b/mkspecs/common/symbian/symbianincludes.h
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the mkspecs of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef __PRODUCT_INCLUDE__
+# ifdef __QT_PRODUCT_INCLUDE_IS_LOWERCASE__
+# define __PRODUCT_INCLUDE__ <variant/symbian_os.hrh>
+# else
+# define __PRODUCT_INCLUDE__ <variant/Symbian_OS.hrh>
+# endif
+#endif
+
+#ifndef __QT_SYMBIAN_RESOURCE__
+# if defined(__ARMCC__) || defined(__CC_ARM)
+# ifdef __QT_RVCT_HEADER_IS_2_2__
+# include <rvct2_2.h>
+# else
+# include <rvct.h>
+# endif
+# endif
+#endif