diff options
author | Tobias Hunger <tobias.hunger@nokia.com> | 2011-10-28 15:52:55 +0000 |
---|---|---|
committer | Daniel Teske <daniel.teske@nokia.com> | 2011-11-03 17:43:27 +0100 |
commit | c20aadc082c5ed9b6ff9cca5a18764aff8eee8ec (patch) | |
tree | d68423dfc6349f52bc15361f44e153ffb3f315b9 /src | |
parent | e541bd822211564c0e35b93e075bc4afe1bf920a (diff) | |
download | qt-creator-c20aadc082c5ed9b6ff9cca5a18764aff8eee8ec.tar.gz |
Embedded Linux Qt version
Add embedded linux Qt version
Change-Id: I883692e30dd68b861478ba446ad0afafc473a594
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/madde/maddeuploadandinstallpackagesteps.cpp | 1 | ||||
-rw-r--r-- | src/plugins/remotelinux/embeddedlinuxqtversion.cpp | 91 | ||||
-rw-r--r-- | src/plugins/remotelinux/embeddedlinuxqtversion.h | 64 | ||||
-rw-r--r-- | src/plugins/remotelinux/embeddedlinuxqtversionfactory.cpp | 93 | ||||
-rw-r--r-- | src/plugins/remotelinux/embeddedlinuxqtversionfactory.h | 59 | ||||
-rw-r--r-- | src/plugins/remotelinux/remotelinux.pro | 4 | ||||
-rw-r--r-- | src/plugins/remotelinux/remotelinux_constants.h | 3 | ||||
-rw-r--r-- | src/plugins/remotelinux/remotelinuxplugin.cpp | 3 |
8 files changed, 318 insertions, 0 deletions
diff --git a/src/plugins/madde/maddeuploadandinstallpackagesteps.cpp b/src/plugins/madde/maddeuploadandinstallpackagesteps.cpp index f3f7d60589..bff66d6adc 100644 --- a/src/plugins/madde/maddeuploadandinstallpackagesteps.cpp +++ b/src/plugins/madde/maddeuploadandinstallpackagesteps.cpp @@ -29,6 +29,7 @@ ** Nokia at info@qt.nokia.com. ** **************************************************************************/ + #include "maddeuploadandinstallpackagesteps.h" #include "maemopackagecreationstep.h" diff --git a/src/plugins/remotelinux/embeddedlinuxqtversion.cpp b/src/plugins/remotelinux/embeddedlinuxqtversion.cpp new file mode 100644 index 0000000000..033da60b62 --- /dev/null +++ b/src/plugins/remotelinux/embeddedlinuxqtversion.cpp @@ -0,0 +1,91 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (info@qt.nokia.com) +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** If you have questions regarding the use of this file, please contact +** Nokia at info@qt.nokia.com. +** +**************************************************************************/ + +#include "embeddedlinuxqtversion.h" + +#include "remotelinux_constants.h" + +#include <QtCore/QCoreApplication> + +namespace RemoteLinux { +namespace Internal { + +EmbeddedLinuxQtVersion::EmbeddedLinuxQtVersion() + : BaseQtVersion() +{ } + +EmbeddedLinuxQtVersion::EmbeddedLinuxQtVersion(const QString &path, bool isAutodetected, const QString &autodetectionSource) + : BaseQtVersion(path, isAutodetected, autodetectionSource) +{ } + +EmbeddedLinuxQtVersion::~EmbeddedLinuxQtVersion() +{ } + +EmbeddedLinuxQtVersion *EmbeddedLinuxQtVersion::clone() const +{ + return new EmbeddedLinuxQtVersion(*this); +} + +QString EmbeddedLinuxQtVersion::type() const +{ + return RemoteLinux::Constants::EMBEDDED_LINUX_QT; +} + +QString EmbeddedLinuxQtVersion::warningReason() const +{ + if (qtAbis().count() == 1 && qtAbis().first().isNull()) + return QCoreApplication::translate("QtVersion", "ABI detection failed: Make sure to use a matching tool chain when building."); + return QString(); +} + +QList<ProjectExplorer::Abi> EmbeddedLinuxQtVersion::detectQtAbis() const +{ + return qtAbisFromLibrary(qtCorePath(versionInfo(), qtVersionString())); +} + +bool EmbeddedLinuxQtVersion::supportsTargetId(const QString &id) const +{ + return id == QLatin1String(Constants::EMBEDDED_LINUX_TARGET_ID); +} + +QSet<QString> EmbeddedLinuxQtVersion::supportedTargetIds() const +{ + return QSet<QString>() << QLatin1String(Constants::EMBEDDED_LINUX_TARGET_ID); +} + +QString EmbeddedLinuxQtVersion::description() const +{ + return QCoreApplication::translate("QtVersion", "Embedded Linux", "Qt Version is used for embedded Linux development"); +} + +} // namespace Internal +} // namespace RemoteLinux diff --git a/src/plugins/remotelinux/embeddedlinuxqtversion.h b/src/plugins/remotelinux/embeddedlinuxqtversion.h new file mode 100644 index 0000000000..1c883c0ddb --- /dev/null +++ b/src/plugins/remotelinux/embeddedlinuxqtversion.h @@ -0,0 +1,64 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (info@qt.nokia.com) +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** If you have questions regarding the use of this file, please contact +** Nokia at info@qt.nokia.com. +** +**************************************************************************/ + +#ifndef EMBEDDEDLINUXQTVERSION_H +#define EMBEDDEDLINUXQTVERSION_H + +#include <qtsupport/baseqtversion.h> + +namespace RemoteLinux { +namespace Internal { + +class EmbeddedLinuxQtVersion : public QtSupport::BaseQtVersion +{ +public: + EmbeddedLinuxQtVersion(); + EmbeddedLinuxQtVersion(const QString &path, bool isAutodetected = false, const QString &autodetectionSource = QString()); + ~EmbeddedLinuxQtVersion(); + EmbeddedLinuxQtVersion *clone() const; + + QString type() const; + + QString warningReason() const; + + QList<ProjectExplorer::Abi> detectQtAbis() const; + + bool supportsTargetId(const QString &id) const; + QSet<QString> supportedTargetIds() const; + + QString description() const; +}; + +} // namespace Internal +} // namespace RemoteLinux + +#endif // EMBEDDEDLINUXQTVERSION_H diff --git a/src/plugins/remotelinux/embeddedlinuxqtversionfactory.cpp b/src/plugins/remotelinux/embeddedlinuxqtversionfactory.cpp new file mode 100644 index 0000000000..d25172f8ac --- /dev/null +++ b/src/plugins/remotelinux/embeddedlinuxqtversionfactory.cpp @@ -0,0 +1,93 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (info@qt.nokia.com) +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** If you have questions regarding the use of this file, please contact +** Nokia at info@qt.nokia.com. +** +**************************************************************************/ + +#include "embeddedlinuxqtversionfactory.h" + +#include "embeddedlinuxqtversion.h" +#include "remotelinux_constants.h" + +#include <QtCore/QFileInfo> + +namespace RemoteLinux { +namespace Internal { + +EmbeddedLinuxQtVersionFactory::EmbeddedLinuxQtVersionFactory(QObject *parent) : QtSupport::QtVersionFactory(parent) +{ } + +EmbeddedLinuxQtVersionFactory::~EmbeddedLinuxQtVersionFactory() +{ } + +bool EmbeddedLinuxQtVersionFactory::canRestore(const QString &type) +{ + return type == QLatin1String(RemoteLinux::Constants::EMBEDDED_LINUX_QT); +} + +QtSupport::BaseQtVersion *EmbeddedLinuxQtVersionFactory::restore(const QString &type, const QVariantMap &data) +{ + if (!canRestore(type)) + return 0; + EmbeddedLinuxQtVersion *v = new EmbeddedLinuxQtVersion; + v->fromMap(data); + return v; +} + +int EmbeddedLinuxQtVersionFactory::priority() const +{ + return 10; +} + +QtSupport::BaseQtVersion *EmbeddedLinuxQtVersionFactory::create(const QString &qmakePath, + ProFileEvaluator *evaluator, + bool isAutoDetected, + const QString &autoDetectionSource) +{ + Q_UNUSED(evaluator); + + QFileInfo fi(qmakePath); + if (!fi.exists() || !fi.isExecutable() || !fi.isFile()) + return 0; + + EmbeddedLinuxQtVersion *version = new EmbeddedLinuxQtVersion(qmakePath, isAutoDetected, autoDetectionSource); + + QList<ProjectExplorer::Abi> abis = version->qtAbis(); + // Note: This fails for e.g. intel/meego cross builds on x86 linux machines. + if (abis.count() == 1 + && abis.at(0).os() == ProjectExplorer::Abi::LinuxOS + && !ProjectExplorer::Abi::hostAbi().isCompatibleWith(abis.at(0))) + return version; + + delete version; + return 0; +} + +} // namespace Internal +} // namespace RemoteLinux diff --git a/src/plugins/remotelinux/embeddedlinuxqtversionfactory.h b/src/plugins/remotelinux/embeddedlinuxqtversionfactory.h new file mode 100644 index 0000000000..1906b05af7 --- /dev/null +++ b/src/plugins/remotelinux/embeddedlinuxqtversionfactory.h @@ -0,0 +1,59 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (info@qt.nokia.com) +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** If you have questions regarding the use of this file, please contact +** Nokia at info@qt.nokia.com. +** +**************************************************************************/ + +#ifndef EMBEDDEDLINUXQTVERSIONFACTORY_H +#define EMBEDDEDLINUXQTVERSIONFACTORY_H + +#include <qtsupport/qtversionfactory.h> + +namespace RemoteLinux { +namespace Internal { + +class EmbeddedLinuxQtVersionFactory : public QtSupport::QtVersionFactory +{ +public: + explicit EmbeddedLinuxQtVersionFactory(QObject *parent = 0); + ~EmbeddedLinuxQtVersionFactory(); + + bool canRestore(const QString &type); + QtSupport::BaseQtVersion *restore(const QString &type, const QVariantMap &data); + + int priority() const; + QtSupport::BaseQtVersion *create(const QString &qmakePath, ProFileEvaluator *evaluator, + bool isAutoDetected = false, + const QString &autoDetectionSource = QString()); +}; + +} // Internal +} // RemoteLinux + +#endif // EMBEDDEDLINUXQTVERSIONFACTORY_H diff --git a/src/plugins/remotelinux/remotelinux.pro b/src/plugins/remotelinux/remotelinux.pro index 3d19049f7e..7614cfc6c7 100644 --- a/src/plugins/remotelinux/remotelinux.pro +++ b/src/plugins/remotelinux/remotelinux.pro @@ -5,6 +5,8 @@ include(../../qtcreatorplugin.pri) include(remotelinux_dependencies.pri) HEADERS += \ + embeddedlinuxqtversion.h \ + embeddedlinuxqtversionfactory.h \ remotelinuxplugin.h \ remotelinux_export.h \ linuxdeviceconfiguration.h \ @@ -60,6 +62,8 @@ HEADERS += \ remotelinuxcustomcommanddeploymentstep.h SOURCES += \ + embeddedlinuxqtversion.cpp \ + embeddedlinuxqtversionfactory.cpp \ remotelinuxplugin.cpp \ linuxdeviceconfiguration.cpp \ linuxdeviceconfigurations.cpp \ diff --git a/src/plugins/remotelinux/remotelinux_constants.h b/src/plugins/remotelinux/remotelinux_constants.h index 9ae1d3b84f..a325165896 100644 --- a/src/plugins/remotelinux/remotelinux_constants.h +++ b/src/plugins/remotelinux/remotelinux_constants.h @@ -43,6 +43,9 @@ const char GenericTestDeviceActionId[] = "RemoteLinux.GenericTestDeviceAction"; const char GenericDeployKeyToDeviceActionId[] = "RemoteLinux.GenericDeployKeyToDeviceAction"; const char GenericRemoteProcessesActionId[] = "RemoteLinux.GenericRemoteProcessesAction"; +const char EMBEDDED_LINUX_QT[] = "RemoteLinux.EmbeddedLinuxQt"; +const char EMBEDDED_LINUX_TARGET_ID[] = "RemoteLinux.EmbeddedLinuxTarget"; + } // Constants } // RemoteLinux diff --git a/src/plugins/remotelinux/remotelinuxplugin.cpp b/src/plugins/remotelinux/remotelinuxplugin.cpp index 17a46fe1ae..1fe931afe3 100644 --- a/src/plugins/remotelinux/remotelinuxplugin.cpp +++ b/src/plugins/remotelinux/remotelinuxplugin.cpp @@ -32,6 +32,7 @@ #include "remotelinuxplugin.h" +#include "embeddedlinuxqtversionfactory.h" #include "deployablefile.h" #include "genericlinuxdeviceconfigurationfactory.h" #include "genericremotelinuxdeploystepfactory.h" @@ -77,6 +78,8 @@ bool RemoteLinuxPlugin::initialize(const QStringList &arguments, addAutoReleasedObject(new RemoteLinuxDeployConfigurationFactory); addAutoReleasedObject(new GenericRemoteLinuxDeployStepFactory); + addAutoReleasedObject(new EmbeddedLinuxQtVersionFactory); + qRegisterMetaType<RemoteLinux::DeployableFile>("RemoteLinux::DeployableFile"); return true; |