diff options
Diffstat (limited to 'mkspecs/common/symbian')
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 |