summaryrefslogtreecommitdiffstats
path: root/qmake/project.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qmake/project.cpp')
-rw-r--r--qmake/project.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/qmake/project.cpp b/qmake/project.cpp
index e49441b..f56180b 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -512,6 +512,7 @@ enum isForSymbian_enum {
isForSymbian_FALSE = 0,
isForSymbian_ABLD = 1,
isForSymbian_SBSV2 = 2,
+ isForSymbian_MAKEFILE = 3,
};
static isForSymbian_enum isForSymbian_value = isForSymbian_NOT_SET;
@@ -524,11 +525,16 @@ static void init_symbian(const QMap<QString, QStringList>& vars)
if (isForSymbian_value != isForSymbian_NOT_SET)
return;
- QString spec = QFileInfo(Option::mkfile::qmakespec).fileName();
- if (spec.startsWith("symbian-abld", Qt::CaseInsensitive)) {
+ QString spec = QDir::fromNativeSeparators(QFileInfo(Option::mkfile::qmakespec).canonicalFilePath());
+ int pos = spec.lastIndexOf('/');
+ pos = spec.lastIndexOf('/', pos - 1);
+ spec = spec.mid(pos + 1);
+ if (spec.endsWith("symbian-abld", Qt::CaseInsensitive)) {
isForSymbian_value = isForSymbian_ABLD;
- } else if (spec.startsWith("symbian-sbsv2", Qt::CaseInsensitive)) {
+ } else if (spec.endsWith("symbian-sbsv2", Qt::CaseInsensitive)) {
isForSymbian_value = isForSymbian_SBSV2;
+ } else if (spec.startsWith("symbian/", Qt::CaseInsensitive)) {
+ isForSymbian_value = isForSymbian_MAKEFILE;
} else {
QStringList generatorList = vars["MAKEFILE_GENERATOR"];
@@ -545,8 +551,9 @@ static void init_symbian(const QMap<QString, QStringList>& vars)
}
}
- // Force recursive on Symbian, as non-recursive is not really a viable option there
- if (isForSymbian_value != isForSymbian_FALSE)
+ // Force recursive on Symbian native build system, as non-recursive is not really
+ // a viable option there
+ if (isForSymbian_value != isForSymbian_FALSE && isForSymbian_value != isForSymbian_MAKEFILE)
Option::recursive = true;
}
@@ -557,7 +564,7 @@ bool isForSymbian()
if (isForSymbian_value == isForSymbian_NOT_SET)
init_symbian(QMap<QString, QStringList>());
- return (isForSymbian_value != isForSymbian_FALSE);
+ return (isForSymbian_value != isForSymbian_NOT_SET && isForSymbian_value != isForSymbian_FALSE);
}
bool isForSymbianSbsv2()