summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@nokia.com>2010-10-26 13:40:04 (GMT)
committerLiang Qi <liang.qi@nokia.com>2010-10-26 13:40:04 (GMT)
commitdbf03a71487107999d58972a3e18244e9b8139c8 (patch)
treef6c39c5a638f2fffc79393e2ac392aa4e222af33
parent2d071521228a6bc9ef423cbdbbd8560d28208790 (diff)
parentf12bb81ff7dc88861b68fa5f218c1e5d0767257b (diff)
downloadQt-dbf03a71487107999d58972a3e18244e9b8139c8.zip
Qt-dbf03a71487107999d58972a3e18244e9b8139c8.tar.gz
Qt-dbf03a71487107999d58972a3e18244e9b8139c8.tar.bz2
Merge branch 'macMakefileBuildSupport' into master.
-rwxr-xr-xbin/elf2e32_qtwrapper148
-rw-r--r--bin/elf2e32_qtwrapper.bat3
-rw-r--r--bin/elf2e32_qtwrapper.pl145
-rwxr-xr-xconfigure160
-rw-r--r--doc/src/snippets/code/doc_src_installation.qdoc4
-rw-r--r--mkspecs/common/symbian/symbian-makefile.conf4
-rw-r--r--mkspecs/features/qt_functions.prf8
-rw-r--r--mkspecs/features/symbian/def_files.prf18
-rw-r--r--mkspecs/features/symbian/do_not_build_as_thumb.prf2
-rw-r--r--mkspecs/features/symbian/symbian_building.prf56
-rw-r--r--mkspecs/symbian-armcc/features/default_post.prf (renamed from mkspecs/symbian/linux-gcce/features/default_post.prf)0
-rw-r--r--mkspecs/symbian-armcc/qmake.conf (renamed from mkspecs/symbian/linux-armcc/qmake.conf)6
-rw-r--r--mkspecs/symbian-armcc/qplatformdefs.h (renamed from mkspecs/symbian/linux-armcc/qplatformdefs.h)2
-rw-r--r--mkspecs/symbian-gcce/features/default_post.prf (renamed from mkspecs/symbian/linux-armcc/features/default_post.prf)0
-rw-r--r--mkspecs/symbian-gcce/qmake.conf (renamed from mkspecs/symbian/linux-gcce/qmake.conf)7
-rw-r--r--mkspecs/symbian-gcce/qplatformdefs.h (renamed from mkspecs/symbian/linux-gcce/qplatformdefs.h)2
-rw-r--r--src/corelib/global/global.pri2
-rw-r--r--src/corelib/global/qglobal.h2
-rw-r--r--src/multimedia/audio/audio.pri4
-rw-r--r--src/plugins/phonon/mmf/mmf.pro8
-rw-r--r--src/plugins/sqldrivers/sqlite_symbian/sqlite_symbian.pri10
-rw-r--r--src/s60main/s60main.pro2
22 files changed, 316 insertions, 277 deletions
diff --git a/bin/elf2e32_qtwrapper b/bin/elf2e32_qtwrapper
index 694d54a..a3a4065 100755
--- a/bin/elf2e32_qtwrapper
+++ b/bin/elf2e32_qtwrapper
@@ -1,145 +1,3 @@
-#!/usr/bin/perl -w
-
-# A script to get around some shortcomings in elf2e32, namely:
-# - Returning 0 even when there are errors.
-# - Excluding symbols from the dso file even when they are present in the ELF file.
-# - Including symbols in the the dso file even when they are not present in the ELF file.
-# - Overwriting the old dso file even when there are no changes (increases build time).
-
-use File::Copy;
-
-my @args = ();
-my @definput;
-my @defoutput;
-my @dso;
-my @tmpdso;
-foreach (@ARGV) {
- if (/^--definput/o) {
- @definput = split('=', $_);
- } elsif (/^--defoutput/o) {
- @defoutput = split('=', $_);
- } elsif (/^--dso/o) {
- @dso = split('=', $_);
- } elsif (/^--tmpdso/o) {
- @tmpdso = split('=', $_);
- $tmpdso[0] = "--dso";
- } else {
- push(@args, $_);
- }
-}
-
-@definput = () if (!@definput || ! -e $definput[1]);
-
-if (@dso && !@tmpdso || !@dso && @tmpdso) {
- print("--dso and --tmpdso must be used together.\n");
- exit 1;
-}
-
-my $buildingLibrary = (@defoutput && @dso) ? 1 : 0;
-
-my $fixupFile = "";
-my $runCount = 0;
-my $returnCode = 0;
-
-while (1) {
- if (++$runCount > 2) {
- print("Internal error in $0, link succeeded, but exports may be wrong.\n");
- last;
- }
-
- my $elf2e32Pipe;
- my $elf2e32Cmd = "elf2e32 @args"
- . " " . join("=", @definput)
- . " " . join("=", @defoutput)
- . " " . join("=", @tmpdso);
- open($elf2e32Pipe, "$elf2e32Cmd 2>&1 |") or die ("Could not run elf2e32");
-
- my %fixupSymbols;
- my $foundBrokenSymbols = 0;
- my $errors = 0;
- while (<$elf2e32Pipe>) {
- print;
- if (/Error:/io) {
- $errors = 1;
- } elsif (/symbol ([a-z0-9_]+) absent in the DEF file, but present in the ELF file/io) {
- $fixupSymbols{$1} = 1;
- $foundBrokenSymbols = 1;
- } elsif (/[0-9]+ Frozen Export\(s\) missing from the ELF file/io) {
- $foundBrokenSymbols = 1;
- }
- }
- close($elf2e32Pipe);
-
- if ($errors) {
- $returnCode = 1;
- last;
- }
-
- if ($buildingLibrary) {
- my $tmpDefFile;
- my $defFile;
- open($defFile, "< $defoutput[1]") or die("Could not open $defoutput[1]");
- open($tmpDefFile, "> $defoutput[1].tmp") or die("Could not open $defoutput[1].tmp");
- $fixupFile = "$defoutput[1].tmp";
- while (<$defFile>) {
- s/\r//;
- s/\n//;
- next if (/; NEW:/);
- if (/([a-z0-9_]+) @/i) {
- if (exists($fixupSymbols{$1})) {
- s/ ABSENT//;
- } elsif (s/; MISSING://) {
- s/$/ ABSENT/;
- }
- }
- print($tmpDefFile "$_\n");
- }
- close($defFile);
- close($tmpDefFile);
-
- $definput[1] = "$defoutput[1].tmp";
-
- if (!$foundBrokenSymbols || $errors) {
- last;
- }
-
- print("Rerunning elf2e32 due to DEF file / ELF file mismatch\n");
- } else {
- last;
- }
-};
-
-if ($fixupFile) {
- unlink($defoutput[1]);
- move($fixupFile, $defoutput[1]);
-}
-
-exit $returnCode if ($returnCode != 0);
-
-if ($buildingLibrary) {
- my $differenceFound = 0;
-
- if (-e $dso[1]) {
- my $dsoFile;
- my $tmpdsoFile;
- my $dsoBuf;
- my $tmpdsoBuf;
- open($dsoFile, "< $dso[1]") or die("Could not open $dso[1]");
- open($tmpdsoFile, "< $tmpdso[1]") or die("Could not open $tmpdso[1]");
- binmode($dsoFile);
- binmode($tmpdsoFile);
- while(read($dsoFile, $dsoBuf, 4096) && read($tmpdsoFile, $tmpdsoBuf, 4096)) {
- if ($dsoBuf ne $tmpdsoBuf) {
- $differenceFound = 1;
- }
- }
- close($tmpdsoFile);
- close($dsoFile);
- } else {
- $differenceFound = 1;
- }
-
- if ($differenceFound) {
- copy($tmpdso[1], $dso[1]);
- }
-}
+#!/bin/sh
+scriptpath=`dirname $0`
+perl $scriptpath/elf2e32_qtwrapper.pl "$@"
diff --git a/bin/elf2e32_qtwrapper.bat b/bin/elf2e32_qtwrapper.bat
new file mode 100644
index 0000000..52910df
--- /dev/null
+++ b/bin/elf2e32_qtwrapper.bat
@@ -0,0 +1,3 @@
+@echo off
+set scriptpath=%~dp0
+perl %scriptpath%elf2e32_qtwrapper.pl %*
diff --git a/bin/elf2e32_qtwrapper.pl b/bin/elf2e32_qtwrapper.pl
new file mode 100644
index 0000000..694d54a
--- /dev/null
+++ b/bin/elf2e32_qtwrapper.pl
@@ -0,0 +1,145 @@
+#!/usr/bin/perl -w
+
+# A script to get around some shortcomings in elf2e32, namely:
+# - Returning 0 even when there are errors.
+# - Excluding symbols from the dso file even when they are present in the ELF file.
+# - Including symbols in the the dso file even when they are not present in the ELF file.
+# - Overwriting the old dso file even when there are no changes (increases build time).
+
+use File::Copy;
+
+my @args = ();
+my @definput;
+my @defoutput;
+my @dso;
+my @tmpdso;
+foreach (@ARGV) {
+ if (/^--definput/o) {
+ @definput = split('=', $_);
+ } elsif (/^--defoutput/o) {
+ @defoutput = split('=', $_);
+ } elsif (/^--dso/o) {
+ @dso = split('=', $_);
+ } elsif (/^--tmpdso/o) {
+ @tmpdso = split('=', $_);
+ $tmpdso[0] = "--dso";
+ } else {
+ push(@args, $_);
+ }
+}
+
+@definput = () if (!@definput || ! -e $definput[1]);
+
+if (@dso && !@tmpdso || !@dso && @tmpdso) {
+ print("--dso and --tmpdso must be used together.\n");
+ exit 1;
+}
+
+my $buildingLibrary = (@defoutput && @dso) ? 1 : 0;
+
+my $fixupFile = "";
+my $runCount = 0;
+my $returnCode = 0;
+
+while (1) {
+ if (++$runCount > 2) {
+ print("Internal error in $0, link succeeded, but exports may be wrong.\n");
+ last;
+ }
+
+ my $elf2e32Pipe;
+ my $elf2e32Cmd = "elf2e32 @args"
+ . " " . join("=", @definput)
+ . " " . join("=", @defoutput)
+ . " " . join("=", @tmpdso);
+ open($elf2e32Pipe, "$elf2e32Cmd 2>&1 |") or die ("Could not run elf2e32");
+
+ my %fixupSymbols;
+ my $foundBrokenSymbols = 0;
+ my $errors = 0;
+ while (<$elf2e32Pipe>) {
+ print;
+ if (/Error:/io) {
+ $errors = 1;
+ } elsif (/symbol ([a-z0-9_]+) absent in the DEF file, but present in the ELF file/io) {
+ $fixupSymbols{$1} = 1;
+ $foundBrokenSymbols = 1;
+ } elsif (/[0-9]+ Frozen Export\(s\) missing from the ELF file/io) {
+ $foundBrokenSymbols = 1;
+ }
+ }
+ close($elf2e32Pipe);
+
+ if ($errors) {
+ $returnCode = 1;
+ last;
+ }
+
+ if ($buildingLibrary) {
+ my $tmpDefFile;
+ my $defFile;
+ open($defFile, "< $defoutput[1]") or die("Could not open $defoutput[1]");
+ open($tmpDefFile, "> $defoutput[1].tmp") or die("Could not open $defoutput[1].tmp");
+ $fixupFile = "$defoutput[1].tmp";
+ while (<$defFile>) {
+ s/\r//;
+ s/\n//;
+ next if (/; NEW:/);
+ if (/([a-z0-9_]+) @/i) {
+ if (exists($fixupSymbols{$1})) {
+ s/ ABSENT//;
+ } elsif (s/; MISSING://) {
+ s/$/ ABSENT/;
+ }
+ }
+ print($tmpDefFile "$_\n");
+ }
+ close($defFile);
+ close($tmpDefFile);
+
+ $definput[1] = "$defoutput[1].tmp";
+
+ if (!$foundBrokenSymbols || $errors) {
+ last;
+ }
+
+ print("Rerunning elf2e32 due to DEF file / ELF file mismatch\n");
+ } else {
+ last;
+ }
+};
+
+if ($fixupFile) {
+ unlink($defoutput[1]);
+ move($fixupFile, $defoutput[1]);
+}
+
+exit $returnCode if ($returnCode != 0);
+
+if ($buildingLibrary) {
+ my $differenceFound = 0;
+
+ if (-e $dso[1]) {
+ my $dsoFile;
+ my $tmpdsoFile;
+ my $dsoBuf;
+ my $tmpdsoBuf;
+ open($dsoFile, "< $dso[1]") or die("Could not open $dso[1]");
+ open($tmpdsoFile, "< $tmpdso[1]") or die("Could not open $tmpdso[1]");
+ binmode($dsoFile);
+ binmode($tmpdsoFile);
+ while(read($dsoFile, $dsoBuf, 4096) && read($tmpdsoFile, $tmpdsoBuf, 4096)) {
+ if ($dsoBuf ne $tmpdsoBuf) {
+ $differenceFound = 1;
+ }
+ }
+ close($tmpdsoFile);
+ close($dsoFile);
+ } else {
+ $differenceFound = 1;
+ }
+
+ if ($differenceFound) {
+ copy($tmpdso[1], $dso[1]);
+ }
+}
diff --git a/configure b/configure
index bc53bae..0cd9642 100755
--- a/configure
+++ b/configure
@@ -784,8 +784,10 @@ L_FLAGS=
RPATH_FLAGS=
l_FLAGS=
QCONFIG_FLAGS=
-XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++" or "symbian/linux-gcce"
+XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++" or "symbian-gcce"
XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
+XPLATFORM_SYMBIAN=no # Whether target platform is SYMBIAN (*symbian*)
+XPLATFORM_SYMBIAN_SBSV2=no # Whether target platform is SYMBIAN_SBSV2 (symbian-sbsv2)
PLATFORM=$QMAKESPEC
QT_CROSS_COMPILE=no
OPT_CONFIRM_LICENSE=no
@@ -1478,6 +1480,8 @@ while [ "$#" -gt 0 ]; do
xplatform)
XPLATFORM="$VAL"
case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
+ case "$XPLATFORM" in *symbian*) XPLATFORM_SYMBIAN=yes;; esac
+ case "$XPLATFORM" in symbian-sbsv2) XPLATFORM_SYMBIAN_SBSV2=yes;; esac
;;
debug-and-release)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
@@ -2749,6 +2753,8 @@ fi
[ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
+case "$XPLATFORM" in *symbian*) XPLATFORM_SYMBIAN=yes;; esac
+case "$XPLATFORM" in symbian-sbsv2) XPLATFORM_SYMBIAN_SBSV2=yes;; esac
if [ -d "$PLATFORM" ]; then
QMAKESPEC="$PLATFORM"
@@ -3027,7 +3033,7 @@ if [ "$PLATFORM" != "$XPLATFORM" -a "$CFG_EMBEDDED" != "no" ]; then
esac
elif [ "$XPLATFORM_MINGW" = "yes" ]; then
[ -z "$CFG_ARCH" ] && CFG_ARCH="windows"
-elif echo "$XPLATFORM" | grep symbian > /dev/null; then
+elif [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
CFG_ARCH=symbian
elif [ "$PLATFORM_MAC" = "yes" ] || [ -z "$CFG_ARCH" ]; then
CFG_ARCH=$CFG_HOST_ARCH
@@ -3165,7 +3171,7 @@ QMAKE_CONF_COMPILER=`getQMakeConf "$XQMAKESPEC" | grep "\(^\| \)QMAKE_CXX[^_A-Z0
TEST_COMPILER="$CXX"
[ -z "$TEST_COMPILER" ] && TEST_COMPILER=$QMAKE_CONF_COMPILER
-if [ "$XPLATFORM" != "symbian-sbsv2" ]; then
+if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
#for Symbian we don't need this checking
if [ -z "$TEST_COMPILER" ]; then
echo "ERROR: Cannot set the compiler for the configuration tests"
@@ -3333,18 +3339,17 @@ if [ -z "$QT_INSTALL_PREFIX" ]; then
QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}"
fi
elif [ -d "$EPOCROOT" ]; then
- case "$XPLATFORM" in *symbian*)
+ if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
QT_INSTALL_PREFIX="$EPOCROOT/epoc32/"
QT_INSTALL_LIBS="$EPOCROOT/epoc32/release/armv5/lib/"
- ;;
- esac
+ fi
else
QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION
fi
fi
QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
-if echo $XPLATFORM | grep symbian > /dev/null; then
+if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
[ -z "$QT_HOST_PREFIX" ] && QT_HOST_PREFIX="$QT_INSTALL_PREFIX"
[ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS=
[ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS=
@@ -4201,7 +4206,7 @@ if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_X11" = "yes" ]; then
EOF
fi
-case "$XPLATFORM" in *symbian*)
+if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
cat << EOF
Qt for Symbian only:
@@ -4213,9 +4218,7 @@ Qt for Symbian only:
-no-usedeffiles .... Disable the usage of DEF files.
* -usedeffiles ....... Enable the usage of DEF files.
EOF
-;;
-esac
-
+fi
[ "x$ERROR" = "xyes" ] && exit 1
exit 0
fi # Help
@@ -4227,10 +4230,10 @@ fi # Help
if [ "$PLATFORM_QWS" = "yes" ]; then
Platform="Qt for Embedded Linux"
+elif [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
+ Platform="Qt for Symbian"
elif [ "$PLATFORM_MAC" = "yes" ]; then
Platform="Qt for Mac OS X"
-elif echo "$XPLATFORM" | grep "symbian" > /dev/null ; then
- Platform="Qt for Symbian"
elif [ "$XPLATFORM_MINGW" = "yes" ]; then
Platform="Qt for Windows"
elif [ '!' -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_LIBS_X11 | awk '{print $3;}'`" ]; then
@@ -4615,7 +4618,7 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
#mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
rm -rf mkspecs/default
- if echo "$XPLATFORM" | grep "symbian-sbsv2" > /dev/null ; then
+ if [ "$XPLATFORM_SYMBIAN_SBSV2" = "yes" ]; then
#Link is not supported for Symbian build system
cp -a mkspecs/`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
else
@@ -4867,33 +4870,12 @@ if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
fi
fi
-# detect zlib
-if [ "$CFG_ZLIB" = "no" ]; then
- # Note: Qt no longer support builds without zlib
- # So we force a "no" to be "auto" here.
- # If you REALLY really need no zlib support, you can still disable
- # it by doing the following:
- # add "no-zlib" to mkspecs/qconfig.pri
- # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
- #
- # There's no guarantee that Qt will build under those conditions
-
- CFG_ZLIB=auto
- ZLIB_FORCED=yes
-fi
-if [ "$CFG_ZLIB" = "auto" ]; then
- if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
- CFG_ZLIB=system
- else
- CFG_ZLIB=yes
- fi
-fi
-
[ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
-case "$XPLATFORM" in *symbian*)
+if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
QMakeVar set styles "windows s60" #overwrite previous default
CFG_LIBFREETYPE=no
+ CFG_ZLIB=yes
if [ "$CFG_LARGEFILE" = auto ]; then
CFG_LARGEFILE=no
@@ -4908,7 +4890,7 @@ case "$XPLATFORM" in *symbian*)
exit 1
fi
- if ! echo $XPLATFORM | grep symbian-sbsv2 > /dev/null; then
+ if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
# Raptor does not support configure tests.
# the main commands needed to compile;
@@ -4932,8 +4914,29 @@ case "$XPLATFORM" in *symbian*)
exit 1;
fi
fi
- ;;
-esac
+fi
+
+# detect zlib
+if [ "$CFG_ZLIB" = "no" ]; then
+ # Note: Qt no longer support builds without zlib
+ # So we force a "no" to be "auto" here.
+ # If you REALLY really need no zlib support, you can still disable
+ # it by doing the following:
+ # add "no-zlib" to mkspecs/qconfig.pri
+ # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
+ #
+ # There's no guarantee that Qt will build under those conditions
+
+ CFG_ZLIB=auto
+ ZLIB_FORCED=yes
+fi
+if [ "$CFG_ZLIB" = "auto" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
+ CFG_ZLIB=system
+ else
+ CFG_ZLIB=yes
+ fi
+fi
if [ "$CFG_LARGEFILE" = "auto" ]; then
#Large files should be enabled for all Linux systems
@@ -4942,7 +4945,7 @@ fi
if [ "$CFG_S60" = "auto" ]; then
- if echo "$XPLATFORM" | grep symbian > /dev/null; then
+ if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
CFG_S60=yes
else
CFG_S60=no
@@ -4950,7 +4953,7 @@ if [ "$CFG_S60" = "auto" ]; then
fi
if [ "$CFG_QS60STYLE" = "auto" ]; then
- if echo "$XPLATFORM" | grep symbian > /dev/null; then
+ if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
CFG_QS60STYLE=qt
else
CFG_QS60STYLE=no
@@ -4958,7 +4961,7 @@ if [ "$CFG_QS60STYLE" = "auto" ]; then
fi
if [ "$CFG_SYMBIAN_DEFFILES" = "auto" ]; then
- if echo "$XPLATFORM" | grep symbian > /dev/null && [ "$CFG_DEV" = "no" ]; then
+ if [ "$XPLATFORM_SYMBIAN" = "yes" ] && [ "$CFG_DEV" = "no" ]; then
CFG_SYMBIAN_DEFFILES=yes
else
CFG_SYMBIAN_DEFFILES=no
@@ -5037,14 +5040,12 @@ fi
# detect accessibility
if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
- case "$XPLATFORM" in
- symbian*)
+ if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
# accessibility is currently unsupported
CFG_ACCESSIBILITY=no
- ;;
- *)
+ else
CFG_ACCESSIBILITY=yes
- esac
+ fi
fi
# auto-detect SQL-modules support
@@ -5256,15 +5257,13 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
;;
sqlite)
if [ "$CFG_SQL_sqlite" = "auto" ]; then # the default
- case "$XPLATFORM" in
- symbian*)
+ if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
# sqlite on symbian is typically not build in Qt but deployed as a pre-existing sis file and should be marked as driver.
# Configuration parameters should be set
CFG_SQL_sqlite=qt
QT_LFLAGS_SQLITE=-lsqlite3
QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
- ;;
- esac
+ fi
fi
if [ "$CFG_SQL_sqlite" != "no" ]; then
SQLITE_AUTODETECT_FAILED="no"
@@ -6135,10 +6134,10 @@ fi
if [ "$CFG_ENDIAN" = "auto" ]; then
if [ "$XPLATFORM_MINGW" = "yes" ]; then
CFG_ENDIAN="Q_LITTLE_ENDIAN"
- elif [ "$PLATFORM_MAC" = "yes" ]; then
- true #leave as auto
- elif [ "$XPLATFORM" = "symbian-sbsv2" ]; then
+ elif [ "$XPLATFORM_SYMBIAN_SBSV2" = "yes" ]; then
CFG_ENDIAN="Q_LITTLE_ENDIAN"
+ elif [ "$PLATFORM_MAC" = "yes" ] && [ "$XPLATFORM_SYMBIAN" = "no" ]; then
+ true #leave as auto
else
"$unixtests/endian.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
F="$?"
@@ -6224,7 +6223,7 @@ if [ "$CFG_DOUBLEFORMAT" = "auto" ]; then
fi
HAVE_STL=no
-if echo "$XPLATFORM" | grep symbian > /dev/null || "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
+if [ "$XPLATFORM_SYMBIAN" = "yes" ] || "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
HAVE_STL=yes
fi
@@ -6251,7 +6250,7 @@ if [ "$CFG_IPV6" != "no" ]; then
# Therefore for 4.7.1 and following we disable it until OpenC either supports it or we have the native Qt
# symbian socket engine.
#
- if echo "$XPLATFORM" | grep symbian > /dev/null; then
+ if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
CFG_IPV6=no
elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6 "IPv6" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
CFG_IPV6=yes
@@ -6366,7 +6365,7 @@ if [ "$CFG_GETIFADDRS" != "no" ]; then
fi
# detect OpenSSL
-if [ "$CFG_OPENSSL" != "no" ] && [ "$XPLATFORM" != "symbian-sbsv2" ]; then
+if [ "$CFG_OPENSSL" != "no" ] && [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/openssl "OpenSSL" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
if [ "$CFG_OPENSSL" = "auto" ]; then
CFG_OPENSSL=yes
@@ -6383,14 +6382,14 @@ if [ "$CFG_OPENSSL" != "no" ] && [ "$XPLATFORM" != "symbian-sbsv2" ]; then
fi
fi
else
- if [ "$CFG_OPENSSL" = "auto" ] && [ "$XPLATFORM" = "symbian-sbsv2" ]; then
+ if [ "$CFG_OPENSSL" = "auto" ] && [ "$XPLATFORM_SYMBIAN_SBSV2" = "yes" ]; then
#OpenSSl should be enabled for Symbian release
CFG_OPENSSL=yes
fi
fi
# detect OpenVG support
-if [ "$CFG_OPENVG" != "no" ] && [ "$XPLATFORM" != "symbian-sbsv2" ]; then
+if [ "$CFG_OPENVG" != "no" ] && [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
if [ "$CFG_OPENVG" = "auto" ]; then
CFG_OPENVG=yes
@@ -6447,13 +6446,13 @@ if [ "$CFG_PTMALLOC" != "no" ]; then
QMakeVar add QMAKE_LFLAGS "$outpath/lib/libptmalloc3.a"
fi
-if [ "$CFG_ALSA" = "auto" ] && [ "$XPLATFORM" != "symbian-sbsv2" ]; then
+if [ "$CFG_ALSA" = "auto" ] && [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/alsa "alsa" $L_FLAGS $I_FLAGS $l_FLAGS; then
CFG_ALSA=yes
else
CFG_ALSA=no
fi
-elif [ "$XPLATFORM" = "symbian-sbsv2" ]; then
+elif [ "$XPLATFORM_SYMBIAN_SBSV2" = "yes" ]; then
# Disabled for Symbian release
CFG_ALSA=no
fi
@@ -6474,7 +6473,7 @@ elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
fi
if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
- if echo "$XPLATFORM" | grep symbian > /dev/null 2>&1; then
+ if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
if "$symbiantests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/symbian/audio "audio" $L_FLAGS $I_FLAGS $l_FLAGS ; then
CFG_AUDIO_BACKEND=yes
fi
@@ -6486,7 +6485,7 @@ fi
if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
echo "Warning: largefile support cannot be disabled for win32."
CFG_LARGEFILE="yes"
-elif [ "$CFG_LARGEFILE" != "no" ] && echo "$XPLATFORM" | grep "symbian" > /dev/null; then
+elif [ "$CFG_LARGEFILE" != "no" ] && [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
echo "Warning: largefile support cannot be enabled for symbian."
CFG_LARGEFILE="no"
fi
@@ -6593,8 +6592,9 @@ if [ "$PLATFORM_MAC" = "yes" ]; then
fi
fi
-# but disable Cocoa if cross-building for mingw
+# but disable Cocoa if cross-building for mingw and symbian
[ "$XPLATFORM_MINGW" = "yes" ] && CFG_MAC_COCOA="no"
+[ "$XPLATFORM_SYMBIAN" = "yes" ] && CFG_MAC_COCOA="no"
# set the global Mac deployment target. This is overridden on an arch-by-arch basis
# in some cases, see code further down
@@ -6672,11 +6672,9 @@ else
fi
# Disable OpenGL on Symbian.
-case "$XPLATFORM" in
- symbian*)
+if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
CFG_OPENGL="no"
- ;;
-esac
+fi
# enable opengl
if [ "$CFG_OPENGL" = "no" ]; then
@@ -6860,7 +6858,7 @@ else
fi
-if [ "x$PLATFORM_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
+if [ "x$PLATFORM_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && [ "$XPLATFORM_SYMBIAN" != "yes" ]; then
#On Mac we implicitly link against libz, so we
#never use the 3rdparty stuff.
[ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
@@ -7499,14 +7497,11 @@ rm -f .options
BUILD_OPTIONS="$BUILD_CONFIG $BUILD_OPTIONS"
# extract the operating system from the XPLATFORM
TARGET_OPERATING_SYSTEM=`echo $XPLATFORM | cut -f 2- -d/ | cut -f -1 -d-`
-case "$XPLATFORM" in
-symbian*)
+if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
QT_BUILD_KEY_SYSTEM_PART="Symbian"
- ;;
-*)
+else
QT_BUILD_KEY_SYSTEM_PART="$CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER"
- ;;
-esac
+fi
# when cross-compiling, don't include build-host information (build key is target specific)
QT_BUILD_KEY="$CFG_USER_BUILD_KEY $QT_BUILD_KEY_SYSTEM_PART $BUILD_OPTIONS"
@@ -7853,8 +7848,7 @@ fi
[ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
-if echo $XPLATFORM | grep symbian >/dev/null
-then
+if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
# Enable Symbian DLLs and export rules.
# We cannot use Linux's default export rules since they export everything.
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_DLL"
@@ -7934,7 +7928,7 @@ else
mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
chmod -w "$outpath/src/corelib/global/qconfig.h"
for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
- if echo "$XPLATFORM" | grep "symbian-sbsv2" > /dev/null 2>&1 ; then
+ if [ "$XPLATFORM_SYMBIAN_SBSV2" = "yes" ]; then
[ -e "$conf" ] && rm -rf "$conf"
cp -a "$outpath/src/corelib/global/qconfig.h" "$conf"
elif [ '!' -f "$conf" ]; then
@@ -8011,7 +8005,7 @@ if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
fi
-if echo "$XPLATFORM" | grep "symbian-sbsv2" > /dev/null 2>&1; then
+if [ "$XPLATFORM_SYMBIAN_SBSV2" = "yes" ]; then
echo "#Qt for symbian FPU settings" >> "$QTCONFIG.tmp"
echo "MMP_RULES += \"ARMFPU softvfp\"" >> "$QTCONFIG.tmp"
fi
@@ -8599,9 +8593,9 @@ for file in .projects .projects.3; do
*winmain/winmain.pro)
[ "$XPLATFORM_MINGW" = "yes" ] || continue
SPEC=$XQMAKESPEC ;;
- *s60main/s60main.pro) if [ -z "`echo "$XPLATFORM" | grep "symbian" >/dev/null`" ]; then
- continue
- fi;;
+ *s60main/s60main.pro)
+ [ "$XPLATFORM_SYMBIAN" = "yes" ] || continue
+ ;;
*examples/activeqt/*) continue ;;
*/qmake/qmake.pro) continue ;;
*tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*|*linguist/lrelease*) SPEC=$QMAKESPEC ;;
diff --git a/doc/src/snippets/code/doc_src_installation.qdoc b/doc/src/snippets/code/doc_src_installation.qdoc
index 0593567..432d08f 100644
--- a/doc/src/snippets/code/doc_src_installation.qdoc
+++ b/doc/src/snippets/code/doc_src_installation.qdoc
@@ -250,12 +250,12 @@ export PATH
//! [38]
cd /home/user/qt/%VERSION%
-./configure -platform linux-g++ -xplatform symbian/linux-armcc
+./configure -platform linux-g++ -xplatform symbian-armcc
//! [38]
//! [39]
cd /home/user/qt/%VERSION%
-./configure -platform linux-g++ -xplatform symbian/linux-gcce -no-webkit
+./configure -platform linux-g++ -xplatform symbian-gcce -no-webkit
//! [39]
//! [40]
diff --git a/mkspecs/common/symbian/symbian-makefile.conf b/mkspecs/common/symbian/symbian-makefile.conf
index 364e91b..9dc3674 100644
--- a/mkspecs/common/symbian/symbian-makefile.conf
+++ b/mkspecs/common/symbian/symbian-makefile.conf
@@ -30,9 +30,9 @@ QMAKE_EXTENSION_STATICLIB = lib
QMAKE_SYMBIAN_SHLIB = 1
is_using_gnupoc {
- DEFINES *= __PRODUCT_INCLUDE__=\\<$${EPOCROOT}epoc32/include/variant/symbian_os.hrh\\>
+ DEFINES *= __PRODUCT_INCLUDE__=\"<$${EPOCROOT}epoc32/include/variant/symbian_os.hrh>\"
} else {
- DEFINES *= __PRODUCT_INCLUDE__=\\<$${EPOCROOT}epoc32/include/variant/Symbian_OS.hrh\\>
+ DEFINES *= __PRODUCT_INCLUDE__=\"<$${EPOCROOT}epoc32/include/variant/Symbian_OS.hrh>\"
}
DEFINES *= \
__SYMBIAN32__ \
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index afc708a..e5ef5a1 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -87,6 +87,12 @@ defineTest(qtPrepareTool) {
else:$$1 = $$[QT_INSTALL_BINS]/$$2
}
$$1 ~= s,[/\\\\],$$QMAKE_DIR_SEP,
- contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.exe$):$$1 = $$eval($$1).exe
+ contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.(exe|bat)$) {
+ exists($$eval($$1).bat) {
+ $$1 = $$eval($$1).bat
+ } else {
+ $$1 = $$eval($$1).exe
+ }
+ }
export($$1)
}
diff --git a/mkspecs/features/symbian/def_files.prf b/mkspecs/features/symbian/def_files.prf
index f243878..1c11925 100644
--- a/mkspecs/features/symbian/def_files.prf
+++ b/mkspecs/features/symbian/def_files.prf
@@ -7,6 +7,18 @@ CONFIG -= def_files_disabled
equals(QMAKE_TARGET_PRODUCT, Qt4):clean_TARGET = $$replace(TARGET, "$${QT_LIBINFIX}$", "")
else:clean_TARGET = $$TARGET
+defineTest(qtTestIfDirExists) {
+ contains(QMAKE_HOST.os,Windows) {
+ dirToTest = $$1
+ $$dirToTest ~= s,/,\\,
+ # Windows trick. Test for existence of nul, which every directory has.
+ retValue = $$system("if exist $$dirToTest\\nul echo true")
+ contains(retValue, true):return(true)|return(false)
+ } else {
+ system("test -d $$1"):return(true)|return(false)
+ }
+}
+
symbian-abld|symbian-sbsv2 {
# 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
@@ -52,9 +64,11 @@ symbian-abld|symbian-sbsv2 {
} else {
defFile = .
}
- system("$$QMAKE_CHK_DIR_EXISTS $$_PRO_FILE_PWD_/$$defFile") {
+ qtTestIfDirExists($$_PRO_FILE_PWD_/$$defFile) {
!exists("$$_PRO_FILE_PWD_/$$defFile/eabi") {
- system("$$QMAKE_MKDIR $$_PRO_FILE_PWD_/$$defFile/eabi")
+ dirToCreate = $$_PRO_FILE_PWD_/$$defFile/eabi
+ contains(QMAKE_HOST.os,Windows):dirToCreate ~= s,/,\\,
+ system("$$QMAKE_MKDIR $$dirToCreate")
}
elf2e32FileToAdd = $$_PRO_FILE_PWD_/$$defFile/eabi/$$basename(clean_TARGET)u.def
} else {
diff --git a/mkspecs/features/symbian/do_not_build_as_thumb.prf b/mkspecs/features/symbian/do_not_build_as_thumb.prf
index 60d9382..0f1fd9f 100644
--- a/mkspecs/features/symbian/do_not_build_as_thumb.prf
+++ b/mkspecs/features/symbian/do_not_build_as_thumb.prf
@@ -1,6 +1,6 @@
symbian-abld|symbian-sbsv2 {
MMP_RULES += ALWAYS_BUILD_AS_ARM
-} else:linux-armcc {
+} else:symbian-armcc {
QMAKE_CFLAGS -= --thumb
QMAKE_CFLAGS += --arm
QMAKE_CXXFLAGS -= --thumb
diff --git a/mkspecs/features/symbian/symbian_building.prf b/mkspecs/features/symbian/symbian_building.prf
index 1a51cb2..a2791a1 100644
--- a/mkspecs/features/symbian/symbian_building.prf
+++ b/mkspecs/features/symbian/symbian_building.prf
@@ -1,7 +1,7 @@
-linux-armcc {
+symbian-armcc {
QMAKE_CFLAGS += $$QMAKE_CFLAGS.ARMCC
QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS.ARMCC
-} else:linux-gcce {
+} else:symbian-gcce {
QMAKE_CFLAGS += $$QMAKE_CFLAGS.GCCE
QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS.GCCE
}
@@ -16,7 +16,7 @@ else:clean_TARGET = $$TARGET
!contains(clean_TARGET, ".*[ -/].*"):eval(TMPVAR = \$\$QMAKE_$${clean_TARGET}_LFLAGS)
!isEmpty(TMPVAR) {
QMAKE_LFLAGS += $$TMPVAR
-} else :linux-gcce { # lets provide a simple default. Without elf2e32 complains
+} else :symbian-gcce { # lets provide a simple default. Without elf2e32 complains
QMAKE_LFLAGS += -Ttext 0x80000 -Tdata 0x400000
}
@@ -62,8 +62,8 @@ for(libToProcess, libsToProcess) {
} else {
qt_newLib = $$processSymbianLibrary($$qt_library)
contains(qt_newLib, ".*\\.dso$")|contains(qt_newLib, ".*\\.lib$"):PRE_TARGETDEPS += $$qt_newLib
- linux-gcce:qt_newLib = "-l:$$qt_newLib"
- eval($$libToProcess += \$\$qt_newLib)
+ symbian-gcce:qt_newLib = "-l:$$qt_newLib"
+ eval($$libToProcess *= \$\$qt_newLib)
}
}
}
@@ -89,12 +89,13 @@ count(splitVersion, 0) {
decVersion = "10.0"
} else {
count(splitVersion, 3) {
- hexVersion = $$system("sh -c 'printf %02x $$member(splitVersion, 0)'")
- hexPart2 = $$system("sh -c 'printf %02x $$member(splitVersion, 1)'")"
- hexPart2 = $$hexPart2$$system("sh -c 'printf %02x $$member(splitVersion, 2)'")"
- decVersion = $$system("sh -c 'printf %1d 0x$$hexVersion'").
+ hexVersion = $$system("perl -e \"printf (\\\"%02x\\\", $$member(splitVersion, 0))\"")
+ hexPart2 = $$system("perl -e \"printf (\\\"%02x\\\", $$member(splitVersion, 1))\"")"
+ hexPart2 = $$hexPart2$$system("perl -e \"printf (\\\"%02x\\\", $$member(splitVersion, 2))\"")"
+ decVersion = $$system("perl -e \"printf (\\\"%1d\\\", 0x$$hexVersion)\"").
hexVersion = $$hexVersion$$hexPart2
- decVersion = $$decVersion$$system("sh -c 'printf %d 0x$$hexPart2'")
+ decVersion = $$decVersion$$system("perl -e \"printf (\\\"%d\\\", 0x$$hexPart2)\"")
+
!contains(hexVersion, "[0-9a-f]{8}"):hexVersion = "00$${hexVersion}"
} else { # app code may have different numbering...
hexVersion = $$VERSION
@@ -117,7 +118,9 @@ contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
contains(CONFIG, plugin):QMAKE_ELF2E32_FLAGS += --definput=plugin_commonu.def
!isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
- QMAKE_POST_LINK = $$QMAKE_MOVE $$symbianDestdir/$${baseTarget}.dll $$symbianDestdir/$${baseTarget}.sym \
+ moveCmd = $$QMAKE_MOVE $$symbianDestdir/$${baseTarget}.dll $$symbianDestdir/$${baseTarget}.sym
+ contains(QMAKE_HOST.os,Windows):moveCmd = $$replace(moveCmd, /, \\)
+ QMAKE_POST_LINK = $$moveCmd \
&& $$QMAKE_ELF2E32_WRAPPER --version=$$decVersion \
--sid=$$TARGET.SID \
--uid1=0x10000079 \
@@ -129,7 +132,7 @@ contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
--tmpdso=$${symbianObjdir}/$${baseTarget}.dso \
--dso=$${symbianDestdir}/$${baseTarget}.dso \
--defoutput=$$symbianObjdir/$${baseTarget}.def \
- --linkas=$${baseTarget}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll \
+ --linkas=\"$${baseTarget}{$${hexVersion}}[$${intUid3}].dll\" \
--heap=$$epoc_heap_size \
--stack=$$TARGET.EPOCSTACKSIZE \
$$elf2e32_LIBPATH \
@@ -142,10 +145,15 @@ contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
QMAKE_CLEAN += $${symbianObjdir}/$${baseTarget}.dso
QMAKE_CLEAN += $${symbianObjdir}/$${baseTarget}.def
- linux-armcc: {
- LIBS += usrt2_2.lib dfpaeabi.dso dfprvct2_2.dso drtaeabi.dso scppnwdl.dso drtrvct2_2.dso h_t__uf.l\\(switch8.o\\)
- LIBS += -ledllstub.lib -ledll.lib\\(uc_dll_.o\\)
- } else :linux-gcce {
+ symbian-armcc: {
+ LIBS += usrt2_2.lib dfpaeabi.dso dfprvct2_2.dso drtaeabi.dso scppnwdl.dso drtrvct2_2.dso
+ # Quotation unfortunately is different on Windows and unix.
+ contains(QMAKE_HOST.os, Windows) {
+ LIBS += \"h_t__uf.l(switch8.o)\" edllstub.lib \"edll.lib(uc_dll_.o)\"
+ } else {
+ LIBS += h_t__uf.l\\(switch8.o\\) edllstub.lib edll.lib\\(uc_dll_.o\\)
+ }
+ } else :symbian-gcce {
LIBS += \
-l:edll.lib \
-l:usrt2_2.lib \
@@ -156,13 +164,15 @@ contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
-lgcc
}
- QMAKE_LFLAGS += --soname $${baseTarget}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll
+ QMAKE_LFLAGS += --soname \"$${baseTarget}{$${hexVersion}}[$${intUid3}].dll\"
DEFINES += __DLL__
}
contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@:.*") {
!isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
- QMAKE_POST_LINK = $$QMAKE_MOVE $$symbianDestdir/$${baseTarget} $$symbianDestdir/$${baseTarget}.sym \
+ moveCmd = $$QMAKE_MOVE $$symbianDestdir/$${baseTarget} $$symbianDestdir/$${baseTarget}.sym
+ contains(QMAKE_HOST.os,Windows):moveCmd = $$replace(moveCmd, /, \\)
+ QMAKE_POST_LINK = $$moveCmd \
&& $$QMAKE_ELF2E32_WRAPPER --version $$decVersion \
--sid=$$TARGET.SID \
--uid1=0x1000007a \
@@ -171,7 +181,7 @@ contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@:.*") {
--targettype=EXE \
--elfinput=$${symbianDestdir}/$${baseTarget}.sym \
--output=$${symbianDestdir}/$${baseTarget}.exe \
- --linkas=$${baseTarget}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe \
+ --linkas=\"$${baseTarget}{$${hexVersion}}[$${intUid3}].exe\" \
--heap=$$epoc_heap_size \
--stack=$$TARGET.EPOCSTACKSIZE \
$$elf2e32_LIBPATH \
@@ -184,7 +194,7 @@ contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@:.*") {
QMAKE_DISTCLEAN += $${symbianDestdir}/$${baseTarget}.exe
QMAKE_CLEAN += $${symbianDestdir}/$${baseTarget}
- linux-armcc: {
+ symbian-armcc: {
QMAKE_LIBS += usrt2_2.lib dfpaeabi.dso dfprvct2_2.dso drtaeabi.dso scppnwdl.dso drtrvct2_2.dso h_t__uf.l\\(switch8.o\\)
QMAKE_LIBS += -leexe.lib\\(uc_exe_.o\\)
contains(CONFIG, "qt"):contains(QT, "gui") { #if linking with QtCore
@@ -194,7 +204,7 @@ contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@:.*") {
QMAKE_LIBS -= -llibcrt0.lib
QMAKE_LIBS += -llibcrt0.lib
}
- } else :linux-gcce {
+ } else :symbian-gcce {
# notice that we can't merge these as ordering of arguments is important.
QMAKE_LIBS += \
-l:eexe.lib \
@@ -216,12 +226,12 @@ contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@:.*") {
QMAKE_LFLAGS += --shared
}
- QMAKE_LFLAGS += --soname $${baseTarget}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe
+ QMAKE_LFLAGS += --soname \"$${baseTarget}{$${hexVersion}}[$${intUid3}].exe\"
DEFINES += __EXE__
}
# Symbian resource files
-linux-armcc: {
+symbian-armcc: {
SYMBIAN_RVCT22INC=$$(RVCT22INC)
!isEmpty(SYMBIAN_RVCT22INC):symbian_resources_INCLUDES = -I$${SYMBIAN_RVCT22INC}
}
diff --git a/mkspecs/symbian/linux-gcce/features/default_post.prf b/mkspecs/symbian-armcc/features/default_post.prf
index 7aa1f4d..7aa1f4d 100644
--- a/mkspecs/symbian/linux-gcce/features/default_post.prf
+++ b/mkspecs/symbian-armcc/features/default_post.prf
diff --git a/mkspecs/symbian/linux-armcc/qmake.conf b/mkspecs/symbian-armcc/qmake.conf
index f058421..be6af39 100644
--- a/mkspecs/symbian/linux-armcc/qmake.conf
+++ b/mkspecs/symbian-armcc/qmake.conf
@@ -1,10 +1,10 @@
#
-# qmake configuration for symbian/linux-armcc
+# qmake configuration for symbian-armcc
#
-include(../../common/symbian/symbian-makefile.conf)
+include(../common/symbian/symbian-makefile.conf)
-include(../../common/armcc.conf)
+include(../common/armcc.conf)
QMAKE_RVCT_LINKSTYLE = 1
diff --git a/mkspecs/symbian/linux-armcc/qplatformdefs.h b/mkspecs/symbian-armcc/qplatformdefs.h
index 3b7d023..6f084d3 100644
--- a/mkspecs/symbian/linux-armcc/qplatformdefs.h
+++ b/mkspecs/symbian-armcc/qplatformdefs.h
@@ -39,4 +39,4 @@
**
****************************************************************************/
-#include "../../common/symbian/qplatformdefs.h"
+#include "../common/symbian/qplatformdefs.h"
diff --git a/mkspecs/symbian/linux-armcc/features/default_post.prf b/mkspecs/symbian-gcce/features/default_post.prf
index 7aa1f4d..7aa1f4d 100644
--- a/mkspecs/symbian/linux-armcc/features/default_post.prf
+++ b/mkspecs/symbian-gcce/features/default_post.prf
diff --git a/mkspecs/symbian/linux-gcce/qmake.conf b/mkspecs/symbian-gcce/qmake.conf
index 10d8ffd..f012217 100644
--- a/mkspecs/symbian/linux-gcce/qmake.conf
+++ b/mkspecs/symbian-gcce/qmake.conf
@@ -1,11 +1,10 @@
#
-# qmake configuration for symbian/linux-gcce
+# qmake configuration for symbian-gcce
#
-include(../../common/symbian/symbian-makefile.conf)
+include(../common/symbian/symbian-makefile.conf)
-include(../../common/gcc-base-unix.conf)
-include(../../common/g++-unix.conf)
+include(../common/g++.conf)
QMAKE_CC = arm-none-symbianelf-gcc
QMAKE_CXX = arm-none-symbianelf-g++
diff --git a/mkspecs/symbian/linux-gcce/qplatformdefs.h b/mkspecs/symbian-gcce/qplatformdefs.h
index fcbd9ea..8549347 100644
--- a/mkspecs/symbian/linux-gcce/qplatformdefs.h
+++ b/mkspecs/symbian-gcce/qplatformdefs.h
@@ -39,5 +39,5 @@
**
****************************************************************************/
-#include "../../common/symbian/qplatformdefs.h"
+#include "../common/symbian/qplatformdefs.h"
diff --git a/src/corelib/global/global.pri b/src/corelib/global/global.pri
index 4800716..ad386a8 100644
--- a/src/corelib/global/global.pri
+++ b/src/corelib/global/global.pri
@@ -19,7 +19,7 @@ INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global
# Only used on platforms with CONFIG += precompile_header
PRECOMPILED_HEADER = global/qt_pch.h
-linux*:!static:!linux-armcc:!linux-gcce {
+linux*:!static:!symbian-armcc:!symbian-gcce {
QMAKE_LFLAGS += -Wl,-e,qt_core_boilerplate
prog=$$quote(if (/program interpreter: (.*)]/) { print $1; })
DEFINES += ELF_INTERPRETER=\\\"$$system(readelf -l /bin/ls | perl -n -e \'$$prog\')\\\"
diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index b983132..547ad8d 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -284,7 +284,7 @@ namespace QT_NAMESPACE {}
# endif
#endif
-#if defined(Q_OS_MAC64) && !defined(QT_MAC_USE_COCOA) && !defined(QT_BUILD_QMAKE)
+#if defined(Q_OS_MAC64) && !defined(QT_MAC_USE_COCOA) && !defined(QT_BUILD_QMAKE) && !defined(QT_BOOTSTRAPPED)
#error "You are building a 64-bit application, but using a 32-bit version of Qt. Check your build configuration."
#endif
diff --git a/src/multimedia/audio/audio.pri b/src/multimedia/audio/audio.pri
index ae28a26..f03d0ac 100644
--- a/src/multimedia/audio/audio.pri
+++ b/src/multimedia/audio/audio.pri
@@ -42,8 +42,8 @@ mac {
wince*:LIBS += -lcoredll
} else:symbian {
- INCLUDEPATH += /epoc32/include/mmf/common
- INCLUDEPATH += /epoc32/include/mmf/server
+ INCLUDEPATH += $${EPOCROOT}/epoc32/include/mmf/common
+ INCLUDEPATH += $${EPOCROOT}/epoc32/include/mmf/server
HEADERS += $$PWD/qaudio_symbian_p.h \
$$PWD/qaudiodeviceinfo_symbian_p.h \
diff --git a/src/plugins/phonon/mmf/mmf.pro b/src/plugins/phonon/mmf/mmf.pro
index ac11188..ade9023 100644
--- a/src/plugins/phonon/mmf/mmf.pro
+++ b/src/plugins/phonon/mmf/mmf.pro
@@ -18,7 +18,7 @@ symbian {
# This is necessary because both epoc32/include and Phonon contain videoplayer.h.
# By making /epoc32/include the first SYSTEMINCLUDE, we ensure that
# '#include <videoplayer.h>' picks up the Symbian header, as intended.
- PREPEND_INCLUDEPATH = /epoc32/include
+ PREPEND_INCLUDEPATH = $$EPOCROOT/epoc32/include
PREPEND_INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty
@@ -125,7 +125,11 @@ symbian {
LIBS += -lmediaclientaudiostream # For CMdaAudioOutputStream
# These are for effects.
- LIBS += -lAudioEqualizerEffect -lBassBoostEffect -lDistanceAttenuationEffect -lDopplerBase -lEffectBase -lEnvironmentalReverbEffect -lListenerDopplerEffect -lListenerLocationEffect -lListenerOrientationEffect -lLocationBase -lLoudnessEffect -lOrientationBase -lSourceDopplerEffect -lSourceLocationEffect -lSourceOrientationEffect -lStereoWideningEffect
+ is_using_gnupoc {
+ LIBS += -laudioequalizereffect -lbassboosteffect -ldistanceattenuationeffect -ldopplerbase -leffectbase -lenvironmentalreverbeffect -llistenerdopplereffect -llistenerlocationeffect -llistenerorientationeffect -llocationbase -lloudnesseffect -lorientationbase -lsourcedopplereffect -lsourcelocationeffect -lsourceorientationeffect -lstereowideningeffect
+ } else {
+ LIBS += -lAudioEqualizerEffect -lBassBoostEffect -lDistanceAttenuationEffect -lDopplerBase -lEffectBase -lEnvironmentalReverbEffect -lListenerDopplerEffect -lListenerLocationEffect -lListenerOrientationEffect -lLocationBase -lLoudnessEffect -lOrientationBase -lSourceDopplerEffect -lSourceLocationEffect -lSourceOrientationEffect -lStereoWideningEffect
+ }
# This is needed for having the .qtplugin file properly created on Symbian.
QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/phonon_backend
diff --git a/src/plugins/sqldrivers/sqlite_symbian/sqlite_symbian.pri b/src/plugins/sqldrivers/sqlite_symbian/sqlite_symbian.pri
index 494c64c..ebeccc9 100644
--- a/src/plugins/sqldrivers/sqlite_symbian/sqlite_symbian.pri
+++ b/src/plugins/sqldrivers/sqlite_symbian/sqlite_symbian.pri
@@ -1,6 +1,12 @@
# We just want to include the sqlite3 binaries for Symbian for platforms that do not have them.
!symbian-abld:!symbian-sbsv2 {
!symbian_no_export_sqlite:!exists($${EPOCROOT}epoc32/release/armv5/lib/sqlite3.dso) {
+ contains(QMAKE_HOST.os,Windows) {
+ # Trick on Windows to do a touch on the file, since copy keeps the timestamp.
+ copyWithTouch = copy /y /b NUL+
+ } else {
+ copyWithTouch = "$$QMAKE_COPY "
+ }
symbian_sqlite3_zip_file = $$PWD/SQLite3_v9.2.zip
# The QMAKE_COPY section is to update timestamp on the file.
@@ -10,7 +16,7 @@
symbian_sqlite3_header.CONFIG = combine no_link
symbian_sqlite3_header.dependency_type = TYPE_C
symbian_sqlite3_header.commands = $$QMAKE_UNZIP -j ${QMAKE_FILE_NAME} epoc32/include/stdapis/${QMAKE_FILE_OUT_BASE}.h \
- && $$QMAKE_COPY ${QMAKE_FILE_OUT_BASE}.h ${QMAKE_FILE_OUT}.tmp \
+ && $${copyWithTouch}${QMAKE_FILE_OUT_BASE}.h ${QMAKE_FILE_OUT}.tmp \
&& $$QMAKE_DEL_FILE ${QMAKE_FILE_OUT_BASE}.h \
&& $$QMAKE_MOVE ${QMAKE_FILE_OUT}.tmp ${QMAKE_FILE_OUT}
silent:symbian_sqlite3_header.commands = @echo unzipping $@ && $$symbian_sqlite3_header.commands
@@ -22,7 +28,7 @@
!isEmpty(OBJECTS_DIR):symbian_sqlite3_dso.output = $$OBJECTS_DIR/$$symbian_sqlite3_dso.output
symbian_sqlite3_dso.CONFIG = combine no_link target_predeps
symbian_sqlite3_dso.commands = $$QMAKE_UNZIP -j ${QMAKE_FILE_NAME} epoc32/release/armv5/lib/${QMAKE_FILE_OUT_BASE}.dso \
- && $$QMAKE_COPY ${QMAKE_FILE_OUT_BASE}.dso ${QMAKE_FILE_OUT}.tmp \
+ && $${copyWithTouch}${QMAKE_FILE_OUT_BASE}.dso ${QMAKE_FILE_OUT}.tmp \
&& $$QMAKE_DEL_FILE ${QMAKE_FILE_OUT_BASE}.dso \
&& $$QMAKE_MOVE ${QMAKE_FILE_OUT}.tmp ${QMAKE_FILE_OUT}
silent:symbian_sqlite3_dso.commands = @echo unzipping $@ && $$symbian_sqlite3_dso.commands
diff --git a/src/s60main/s60main.pro b/src/s60main/s60main.pro
index 664f155..4c598e2 100644
--- a/src/s60main/s60main.pro
+++ b/src/s60main/s60main.pro
@@ -30,7 +30,7 @@ symbian {
# Having MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA will cause s60main.lib be unlinkable
# against GCCE apps, so remove it
MMP_RULES -= $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
- linux-armcc:QMAKE_CXXFLAGS *= --export_all_vtbl
+ symbian-armcc:QMAKE_CXXFLAGS *= --export_all_vtbl
} else {
error("$$_FILE_ is intended only for Symbian!")
}