diff --git a/src/plugins/remotelinux/maemoinstalltosysrootstep.cpp b/src/plugins/remotelinux/maemoinstalltosysrootstep.cpp index 3041729c487..88e83c7928e 100644 --- a/src/plugins/remotelinux/maemoinstalltosysrootstep.cpp +++ b/src/plugins/remotelinux/maemoinstalltosysrootstep.cpp @@ -35,7 +35,7 @@ #include "maemodeployables.h" #include "maemoglobal.h" #include "maemopackagecreationstep.h" -#include "maemotoolchain.h" +#include "maemoqtversion.h" #include "qt4maemodeployconfiguration.h" #include @@ -298,24 +298,23 @@ void MaemoCopyToSysrootStep::run(QFutureInterface &fi) return; } - const MaemoToolChain * const tc - = dynamic_cast(bc->toolChain()); - if (!tc) { - addOutput(tr("Can't copy to sysroot without toolchain."), + const MaemoQtVersion * const qtVersion = dynamic_cast(bc->qtVersion()); + if (!qtVersion) { + addOutput(tr("Can't copy to sysroot without valid Qt version."), ErrorMessageOutput); fi.reportResult(false); return; } emit addOutput(tr("Copying files to sysroot ..."), MessageOutput); - QDir sysrootDir(tc->sysroot()); + QDir sysrootDir(qtVersion->systemRoot()); const QSharedPointer deployables = qobject_cast(deployConfiguration())->deployables(); const QChar sep = QLatin1Char('/'); for (int i = 0; i < deployables->deployableCount(); ++i) { const MaemoDeployable &deployable = deployables->deployableAt(i); const QFileInfo localFileInfo(deployable.localFilePath); - const QString targetFilePath = tc->sysroot() + sep + const QString targetFilePath = qtVersion->systemRoot() + sep + deployable.remoteDir + sep + localFileInfo.fileName(); sysrootDir.mkpath(deployable.remoteDir.mid(1)); QString errorMsg; diff --git a/src/plugins/remotelinux/maemoqtversion.cpp b/src/plugins/remotelinux/maemoqtversion.cpp index c45a5711c44..9c971742b94 100644 --- a/src/plugins/remotelinux/maemoqtversion.cpp +++ b/src/plugins/remotelinux/maemoqtversion.cpp @@ -170,5 +170,23 @@ QString MaemoQtVersion::osType() const return m_osType; } +void MaemoQtVersion::addToEnvironment(Utils::Environment &env) const +{ + const QString maddeRoot = MaemoGlobal::maddeRoot(qmakeCommand()); + + // Needed to make pkg-config stuff work. + env.prependOrSet(QLatin1String("SYSROOT_DIR"), QDir::toNativeSeparators(systemRoot())); + env.prependOrSetPath(QDir::toNativeSeparators(QString("%1/madbin") + .arg(maddeRoot))); + env.prependOrSetPath(QDir::toNativeSeparators(QString("%1/madlib") + .arg(maddeRoot))); + env.prependOrSet(QLatin1String("PERL5LIB"), + QDir::toNativeSeparators(QString("%1/madlib/perl5").arg(maddeRoot))); + + env.prependOrSetPath(QDir::toNativeSeparators(QString("%1/bin").arg(maddeRoot))); + env.prependOrSetPath(QDir::toNativeSeparators(QString("%1/bin") + .arg(MaemoGlobal::targetRoot(qmakeCommand())))); +} + } // namespace Internal } // namespace RemoteLinux diff --git a/src/plugins/remotelinux/maemoqtversion.h b/src/plugins/remotelinux/maemoqtversion.h index 366e446646b..b1d2c4b0ffd 100644 --- a/src/plugins/remotelinux/maemoqtversion.h +++ b/src/plugins/remotelinux/maemoqtversion.h @@ -52,6 +52,7 @@ public: virtual QString systemRoot() const; virtual QList qtAbis() const; + void addToEnvironment(Utils::Environment &env) const; virtual bool supportsTargetId(const QString &id) const; virtual QSet supportedTargetIds() const; diff --git a/src/plugins/remotelinux/maemotoolchain.cpp b/src/plugins/remotelinux/maemotoolchain.cpp index f32bbf13f44..0049f0c8fc4 100644 --- a/src/plugins/remotelinux/maemotoolchain.cpp +++ b/src/plugins/remotelinux/maemotoolchain.cpp @@ -100,24 +100,6 @@ bool MaemoToolChain::canClone() const void MaemoToolChain::addToEnvironment(Utils::Environment &env) const { - QtSupport::BaseQtVersion *v = QtSupport::QtVersionManager::instance()->version(m_qtVersionId); - if (!v) - return; - const QString maddeRoot = MaemoGlobal::maddeRoot(v->qmakeCommand()); - - // put this into environment to make pkg-config stuff work - env.prependOrSet(QLatin1String("SYSROOT_DIR"), QDir::toNativeSeparators(sysroot())); - env.prependOrSetPath(QDir::toNativeSeparators(QString("%1/madbin") - .arg(maddeRoot))); - env.prependOrSetPath(QDir::toNativeSeparators(QString("%1/madlib") - .arg(maddeRoot))); - env.prependOrSet(QLatin1String("PERL5LIB"), - QDir::toNativeSeparators(QString("%1/madlib/perl5").arg(maddeRoot))); - - env.prependOrSetPath(QDir::toNativeSeparators(QString("%1/bin").arg(maddeRoot))); - env.prependOrSetPath(QDir::toNativeSeparators(QString("%1/bin") - .arg(MaemoGlobal::targetRoot(v->qmakeCommand())))); - const QString manglePathsKey = QLatin1String("GCCWRAPPER_PATHMANGLE"); if (!env.hasKey(manglePathsKey)) { const QStringList pathsToMangle = QStringList() << QLatin1String("/lib") @@ -128,27 +110,6 @@ void MaemoToolChain::addToEnvironment(Utils::Environment &env) const } } -QString MaemoToolChain::sysroot() const -{ - QtSupport::BaseQtVersion *v = QtSupport::QtVersionManager::instance()->version(m_qtVersionId); - if (!v) - return QString(); - - if (m_sysroot.isEmpty()) { - QFile file(QDir::cleanPath(MaemoGlobal::targetRoot(v->qmakeCommand())) + QLatin1String("/information")); - if (file.exists() && file.open(QIODevice::ReadOnly | QIODevice::Text)) { - QTextStream stream(&file); - while (!stream.atEnd()) { - const QString &line = stream.readLine().trimmed(); - const QStringList &list = line.split(QLatin1Char(' ')); - if (list.count() > 1 && list.at(0) == QLatin1String("sysroot")) - m_sysroot = MaemoGlobal::maddeRoot(v->qmakeCommand()) + QLatin1String("/sysroots/") + list.at(1); - } - } - } - return m_sysroot; -} - bool MaemoToolChain::operator ==(const ProjectExplorer::ToolChain &tc) const { if (!ToolChain::operator ==(tc)) diff --git a/src/plugins/remotelinux/maemotoolchain.h b/src/plugins/remotelinux/maemotoolchain.h index a2624b1a68b..9e3128014b6 100644 --- a/src/plugins/remotelinux/maemotoolchain.h +++ b/src/plugins/remotelinux/maemotoolchain.h @@ -57,13 +57,11 @@ public: bool canClone() const; void addToEnvironment(Utils::Environment &env) const; - QString sysroot() const; bool operator ==(const ProjectExplorer::ToolChain &) const; ProjectExplorer::ToolChainConfigWidget *configurationWidget(); - QVariantMap toMap() const; bool fromMap(const QVariantMap &data);