The path separator depends on the OS.

This commit is contained in:
kh1
2010-04-09 17:13:33 +02:00
parent 362ec5152c
commit be3c59e96e

View File

@@ -105,30 +105,39 @@ bool MaemoPackageCreationStep::createPackage()
if (!packagingNeeded()) if (!packagingNeeded())
return true; return true;
const QString projectDir = QFileInfo(executable()).absolutePath();
QFile configFile(targetRoot() % QLatin1String("/config.sh")); QFile configFile(targetRoot() % QLatin1String("/config.sh"));
if (!configFile.open(QIODevice::ReadOnly)) { if (!configFile.open(QIODevice::ReadOnly)) {
qDebug("Cannot open config file '%s'", qPrintable(configFile.fileName())); qDebug("Cannot open config file '%s'", qPrintable(configFile.fileName()));
return false; return false;
} }
QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
const QLatin1String pathKey("PATH"); const QString &path = QDir::toNativeSeparators(maddeRoot() + QLatin1Char('/'));
env.insert(pathKey, maddeRoot() % QLatin1String("/madbin:")
% env.value(pathKey)); const QLatin1String key("PATH");
env.insert(QLatin1String("PERL5LIB"), #ifdef Q_OS_WIN
maddeRoot() % QLatin1String("/madlib/perl5")); const QLatin1String colon(";");
const QRegExp envPattern(QLatin1String("([^=]+)=[\"']?([^;\"']+)[\"']? ;.*")); 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); env.insert(QLatin1String("PWD"), projectDir);
const QRegExp envPattern(QLatin1String("([^=]+)=[\"']?([^;\"']+)[\"']? ;.*"));
QByteArray line; QByteArray line;
do { do {
line = configFile.readLine(200); line = configFile.readLine(200);
if (envPattern.exactMatch(line)) if (envPattern.exactMatch(line))
env.insert(envPattern.cap(1), envPattern.cap(2)); env.insert(envPattern.cap(1), envPattern.cap(2));
} while (!line.isEmpty()); } 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")))); qDebug("sysroot: '%s'", qPrintable(env.value(QLatin1String("SYSROOT_DIR"))));
QProcess buildProc; QProcess buildProc;
buildProc.setProcessEnvironment(env); buildProc.setProcessEnvironment(env);
buildProc.setWorkingDirectory(projectDir); buildProc.setWorkingDirectory(projectDir);