diff options
Diffstat (limited to 'qmake/project.cpp')
-rw-r--r-- | qmake/project.cpp | 19 |
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() |