diff options
Diffstat (limited to 'qmake')
-rw-r--r-- | qmake/generators/makefile.cpp | 4 | ||||
-rw-r--r-- | qmake/option.cpp | 1 | ||||
-rw-r--r-- | qmake/project.cpp | 14 |
3 files changed, 13 insertions, 6 deletions
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 388e64f..2bf9e7b 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -1795,7 +1795,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t) tmp_clean = tmp_out; if(tmp_clean.indexOf("${QMAKE_") == -1) { t << "\n\t" << "-$(DEL_FILE) " << tmp_clean; - if (isForSymbian()) + if (Option::shellPath.isEmpty()) t << " 2> NUL"; // Eliminate unnecessary warnings wrote_clean = true; } @@ -1825,7 +1825,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t) } } if(!cleans.isEmpty()) - if (isForSymbian()) + if (Option::shellPath.isEmpty()) t << valGlue(cleans, "\n\t" + del_statement, " 2> NUL\n\t" + del_statement, " 2> NUL"); else t << valGlue(cleans, "\n\t" + del_statement, "\n\t" + del_statement, ""); diff --git a/qmake/option.cpp b/qmake/option.cpp index c503b08..646086f 100644 --- a/qmake/option.cpp +++ b/qmake/option.cpp @@ -389,6 +389,7 @@ Option::init(int argc, char **argv) Option::shellPath = detectShellPath(); #else Option::dirlist_sep = ":"; + Option::shellPath = QStringList("sh"); #endif Option::sysenv_mod = "QMAKE_ENV_"; Option::field_sep = ' '; diff --git a/qmake/project.cpp b/qmake/project.cpp index e49441b..035362d 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"]; @@ -557,7 +563,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() |