diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp index 0bd8147496070a9ac15cdff4e6d7a55e9fd82df6..e33a30b2a179df32b9d73cbb42124e8712bbd4bf 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp @@ -105,30 +105,39 @@ bool MaemoPackageCreationStep::createPackage() if (!packagingNeeded()) return true; - const QString projectDir = QFileInfo(executable()).absolutePath(); - QFile configFile(targetRoot() % QLatin1String("/config.sh")); if (!configFile.open(QIODevice::ReadOnly)) { qDebug("Cannot open config file '%s'", qPrintable(configFile.fileName())); return false; } + QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); - const QLatin1String pathKey("PATH"); - env.insert(pathKey, maddeRoot() % QLatin1String("/madbin:") - % env.value(pathKey)); - env.insert(QLatin1String("PERL5LIB"), - maddeRoot() % QLatin1String("/madlib/perl5")); - const QRegExp envPattern(QLatin1String("([^=]+)=[\"']?([^;\"']+)[\"']? ;.*")); + const QString &path = QDir::toNativeSeparators(maddeRoot() + QLatin1Char('/')); + + const QLatin1String key("PATH"); +#ifdef Q_OS_WIN + const QLatin1String colon(";"); + env.insert(key, path % QLatin1String("bin") % colon % env.value(key)); +#elif defined(Q_OS_UNIX) + const QLatin1String colon(":"); +#endif + env.insert(key, path % QLatin1String("madbin") % colon % env.value(key)); + env.insert(QLatin1String("PERL5LIB"), path % QLatin1String("madlib/perl5")); + + const QString projectDir = QFileInfo(executable()).absolutePath(); env.insert(QLatin1String("PWD"), projectDir); + + const QRegExp envPattern(QLatin1String("([^=]+)=[\"']?([^;\"']+)[\"']? ;.*")); QByteArray line; do { line = configFile.readLine(200); if (envPattern.exactMatch(line)) env.insert(envPattern.cap(1), envPattern.cap(2)); } while (!line.isEmpty()); - qDebug("Process environment: %s", - qPrintable(env.toStringList().join(QLatin1String(":")))); + + qDebug("Process environment: %s", qPrintable(env.toStringList().join(colon))); qDebug("sysroot: '%s'", qPrintable(env.value(QLatin1String("SYSROOT_DIR")))); + QProcess buildProc; buildProc.setProcessEnvironment(env); buildProc.setWorkingDirectory(projectDir);