Commit 7c995122 authored by Daniel Teske's avatar Daniel Teske Committed by hjk

Introduce QmakeAndroidSupport plugin

Holds androd + qmake related classes

Change-Id: Ib6bbc9c77a2b5f014573a1aa343dff5741abdb26
Reviewed-by: default avatarBogDan Vatra <bogdan@kde.org>
Reviewed-by: default avatarEike Ziller <eike.ziller@digia.com>
Reviewed-by: default avatarhjk <hjk121@nokiamail.com>
parent d153da9a
......@@ -48,7 +48,8 @@ SUBDIRS = \
clearcase \
baremetal \
ios \
beautifier
beautifier \
qmakeandroidsupport
minQtVersion(5, 0, 0) {
SUBDIRS += winrt
......
<plugin name=\"QmakeAndroidSupport\" version=\"$$QTCREATOR_VERSION\" compatVersion=\"$$QTCREATOR_COMPAT_VERSION\">
<vendor>Digia Plc</vendor>
<copyright>(C) 2014 Digia Plc</copyright>
<license>
Commercial Usage
Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and Digia.
GNU Lesser General Public License Usage
Alternatively, this plugin may be used under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation. 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.
</license>
<category>Build Systems</category>
<description>Android support for qmake project manager</description>
<url>http://www.qt-project.org</url>
$$dependencyList
</plugin>
......@@ -33,7 +33,7 @@
#include <qmakeprojectmanager/qmakenodes.h>
#include <proparser/prowriter.h>
using namespace QmakeProjectManager;
using namespace QmakeAndroidSupport;
using namespace Internal;
AndroidExtraLibraryListModel::AndroidExtraLibraryListModel(QmakeProjectManager::QmakeProject *project,
......
......@@ -37,6 +37,9 @@
namespace QmakeProjectManager {
class QmakeProject;
class QmakeProFileNode;
}
namespace QmakeAndroidSupport {
namespace Internal {
class AndroidExtraLibraryListModel : public QAbstractItemModel
......@@ -70,6 +73,6 @@ private:
};
} // namespace Internal
} // namespace QmakeProjectManager
} // namespace QmakeAndroidSupport
#endif // ANDROIDEXTRALIBRARYLISTMODEL_H
......@@ -39,7 +39,7 @@
using namespace ProjectExplorer;
namespace QmakeProjectManager {
namespace QmakeAndroidSupport {
namespace Internal {
AndroidPackageInstallationFactory::AndroidPackageInstallationFactory(QObject *parent)
......
......@@ -32,7 +32,7 @@
#include <projectexplorer/buildstep.h>
namespace QmakeProjectManager {
namespace QmakeAndroidSupport {
namespace Internal {
class AndroidPackageInstallationFactory: public ProjectExplorer::IBuildStepFactory
......@@ -58,6 +58,6 @@ public:
};
} // namespace Internal
} // namespace Android
} // namespace QmakeAndroidSupport
#endif // ANDROIDPACKAGEINSTALLATIONFACTORY_H
......@@ -41,8 +41,8 @@
#include <QDir>
using namespace Android;
using namespace QmakeProjectManager::Internal;
using namespace QmakeAndroidSupport;
using namespace QmakeAndroidSupport::Internal;
const Core::Id AndroidPackageInstallationStep::Id = Core::Id("Qt4ProjectManager.AndroidPackageInstallationStep");
namespace {
......@@ -64,7 +64,7 @@ AndroidPackageInstallationStep::AndroidPackageInstallationStep(ProjectExplorer::
bool AndroidPackageInstallationStep::init()
{
ProjectExplorer::BuildConfiguration *bc = buildConfiguration();
QString dirPath = bc->buildDirectory().appendPath(QLatin1String(Constants::ANDROID_BUILDDIRECTORY)).toString();
QString dirPath = bc->buildDirectory().appendPath(QLatin1String(Android::Constants::ANDROID_BUILDDIRECTORY)).toString();
if (Utils::HostOsInfo::isWindowsHost())
if (bc->environment().searchInPath(QLatin1String("sh.exe")).isEmpty())
dirPath = QDir::toNativeSeparators(dirPath);
......
......@@ -33,7 +33,7 @@
#include <projectexplorer/buildstep.h>
#include <projectexplorer/abstractprocessstep.h>
namespace QmakeProjectManager {
namespace QmakeAndroidSupport {
namespace Internal {
class AndroidPackageInstallationStep : public ProjectExplorer::AbstractProcessStep
......@@ -70,6 +70,6 @@ private:
};
} // namespace Internal
} // namespace Android
} // namespace QmakeAndroidSupport
#endif // ANDROIDPACKAGEINSTALLATIONSTEP_H
......@@ -35,9 +35,9 @@
#include <projectexplorer/buildsteplist.h>
#include <projectexplorer/projectexplorerconstants.h>
using namespace QmakeProjectManager;
using namespace QmakeProjectManager::Internal;
using namespace QmakeAndroidSupport;
using namespace QmakeAndroidSupport::Internal;
using QmakeProjectManager::QmakeBuildConfiguration;
int AndroidQmakeBuildConfigurationFactory::priority(const ProjectExplorer::Kit *k, const QString &projectPath) const
{
......
......@@ -30,13 +30,12 @@
#ifndef ANDROIDQMAKEBUILDCONFIGURATIONFACTORY_H
#define ANDROIDQMAKEBUILDCONFIGURATIONFACTORY_H
#include "qmakebuildconfiguration.h"
#include <qmakeprojectmanager/qmakebuildconfiguration.h>
namespace QmakeProjectManager {
namespace QmakeAndroidSupport {
namespace Internal {
class AndroidQmakeBuildConfigurationFactory : public QmakeBuildConfigurationFactory
class AndroidQmakeBuildConfigurationFactory : public QmakeProjectManager::QmakeBuildConfigurationFactory
{
public:
explicit AndroidQmakeBuildConfigurationFactory(QObject *parent = 0)
......
......@@ -51,8 +51,8 @@
#include <QVBoxLayout>
using namespace Android;
using namespace QmakeProjectManager;
using namespace QmakeProjectManager::Internal;
using namespace QmakeAndroidSupport;
using namespace QmakeAndroidSupport::Internal;
using QmakeProjectManager::QmakeProject;
using QmakeProjectManager::QmakeProFileNode;
......
......@@ -40,7 +40,7 @@ QT_END_NAMESPACE
namespace ProjectExplorer { class Target; }
namespace QmakeProjectManager { class QmakeProFileNode; }
namespace QmakeProjectManager {
namespace QmakeAndroidSupport {
namespace Internal {
class CreateAndroidManifestWizard;
......@@ -105,7 +105,7 @@ private:
QString m_directory;
};
} //namespace QmakeProjectManager
} //namespace QmakeAndroidSupport
} //namespace Internal
#endif // CREATEANDROIDMANIFESTWIZARD_H
......@@ -30,8 +30,6 @@
#include "qmakeandroidbuildapkstep.h"
#include "qmakeandroidbuildapkwidget.h"
#include "qmakenodes.h"
#include "qmakeproject.h"
#include <android/androidconfigurations.h>
#include <android/androidconstants.h>
......@@ -43,16 +41,19 @@
#include <projectexplorer/project.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/target.h>
#include <qtsupport/qtkitinformation.h>
#include <qmakeprojectmanager/qmakenodes.h>
#include <qmakeprojectmanager/qmakeproject.h>
#include <utils/qtcprocess.h>
#include <QHBoxLayout>
using namespace Android;
using QmakeProjectManager::QmakeProject;
using QmakeProjectManager::QmakeProFileNode;
namespace QmakeProjectManager {
namespace QmakeAndroidSupport {
namespace Internal {
const Core::Id ANDROID_BUILD_APK_ID("QmakeProjectManager.AndroidBuildApkStep");
......
......@@ -33,10 +33,9 @@
#include <android/androidbuildapkstep.h>
namespace QmakeProjectManager {
namespace QmakeAndroidSupport {
namespace Internal {
class QmakeAndroidBuildApkStepFactory : public ProjectExplorer::IBuildStepFactory
{
Q_OBJECT
......@@ -95,6 +94,6 @@ private:
};
} // namespace Internal
} // namespace QmakeProjectManager
} // namespace QmakeAndroidSupport
#endif // QMAKEANDROIDBUILDAPKSTEP_H
......@@ -30,16 +30,19 @@
#include "createandroidmanifestwizard.h"
#include "qmakeandroidbuildapkstep.h"
#include "qmakeandroidbuildapkwidget.h"
#include "qmakenodes.h"
#include "qmakeproject.h"
#include "ui_qmakeandroidbuildapkwidget.h"
#include <android/androidbuildapkwidget.h>
#include <android/androidmanager.h>
#include <qmakeprojectmanager/qmakenodes.h>
#include <qmakeprojectmanager/qmakeproject.h>
#include <QFileDialog>
namespace QmakeProjectManager {
using QmakeProjectManager::QmakeProject;
using QmakeProjectManager::QmakeProFileNode;
namespace QmakeAndroidSupport {
namespace Internal {
QmakeAndroidBuildApkWidget::QmakeAndroidBuildApkWidget(QmakeAndroidBuildApkStep *step) :
......
......@@ -40,9 +40,9 @@ QT_BEGIN_NAMESPACE
class QLabel;
QT_END_NAMESPACE
namespace QmakeProjectManager {
class QmakeBuildConfiguration;
namespace QmakeProjectManager { class QmakeBuildConfiguration; }
namespace QmakeAndroidSupport {
namespace Internal {
namespace Ui {
......@@ -80,6 +80,6 @@ public:
};
} // namespace Internal
} // namespace QmakeProjectManager
} // namespace QmakeAndroidSupport
#endif // QMAKEANDROIDBUILDAPKWIDGET_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QmakeProjectManager::Internal::QmakeAndroidBuildApkWidget</class>
<widget class="QWidget" name="QmakeProjectManager::Internal::QmakeAndroidBuildApkWidget">
<class>QmakeAndroidSupport::Internal::QmakeAndroidBuildApkWidget</class>
<widget class="QWidget" name="QmakeAndroidSupport::Internal::QmakeAndroidBuildApkWidget">
<property name="geometry">
<rect>
<x>0</x>
......
......@@ -45,7 +45,7 @@ namespace {
using namespace ProjectExplorer;
using QmakeProjectManager::QmakeProject;
namespace QmakeProjectManager {
namespace QmakeAndroidSupport {
namespace Internal {
QmakeAndroidRunConfiguration::QmakeAndroidRunConfiguration(Target *parent, Core::Id id, const QString &path)
......
......@@ -32,9 +32,9 @@
#include <android/androidrunconfiguration.h>
namespace QmakeProjectManager {
class QmakeProFileNode;
namespace QmakeProjectManager { class QmakeProFileNode; }
namespace QmakeAndroidSupport {
namespace Internal {
class QmakeAndroidRunConfiguration : public Android::AndroidRunConfiguration
......@@ -68,6 +68,6 @@ private:
};
} // namespace Internal
} // namespace Android
} // namespace QmakeAndroidSupport
#endif // QMAKE_ANDROIDRUNCONFIGURATION_H
......@@ -42,11 +42,11 @@
#include <qtsupport/qtkitinformation.h>
#include <qtsupport/qtsupportconstants.h>
using namespace Android;
using namespace ProjectExplorer;
using namespace QmakeProjectManager;
namespace QmakeProjectManager {
namespace QmakeAndroidSupport {
namespace Internal {
static const char ANDROID_RC_ID_PREFIX[] = "Qt4ProjectManager.AndroidRunConfiguration:";
......
......@@ -41,7 +41,7 @@ class Target;
class Node;
} // namespace ProjectExplorer
namespace QmakeProjectManager {
namespace QmakeAndroidSupport {
namespace Internal {
class QmakeAndroidRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFactory
......@@ -73,6 +73,6 @@ private:
};
} // namespace Internal
} // namespace Android
} // namespace QmakeAndroidSupport
#endif // ANDROIDRUNFACTORIES_H
......@@ -29,10 +29,6 @@
#include "androidpackageinstallationstep.h"
#include "qmakeandroidsupport.h"
#include "qmakebuildconfiguration.h"
#include "qmakenodes.h"
#include "qmakeproject.h"
#include "qmakestep.h"
#include <android/androidconstants.h>
#include <projectexplorer/buildmanager.h>
......@@ -42,8 +38,14 @@
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/target.h>
#include <qtsupport/qtkitinformation.h>
#include <qmakeprojectmanager/qmakebuildconfiguration.h>
#include <qmakeprojectmanager/qmakenodes.h>
#include <qmakeprojectmanager/qmakeproject.h>
#include <qmakeprojectmanager/qmakestep.h>
namespace QmakeProjectManager {
using namespace QmakeProjectManager;
namespace QmakeAndroidSupport {
namespace Internal {
bool QmakeAndroidSupport::canHandle(const ProjectExplorer::Target *target) const
......
......@@ -32,7 +32,7 @@
#include <android/androidqtsupport.h>
namespace QmakeProjectManager {
namespace QmakeAndroidSupport {
namespace Internal {
class QmakeAndroidSupport : public Android::AndroidQtSupport
......
QT += network
include(../../qtcreatorplugin.pri)
DEFINES += \
QMAKEANDROID_LIBRARY
HEADERS += \
androidextralibrarylistmodel.h \
androidpackageinstallationfactory.h \
androidpackageinstallationstep.h \
createandroidmanifestwizard.h \
qmakeandroidsupport.h \
qmakeandroidrunconfiguration.h \
qmakeandroidrunfactories.h \
qmakeandroidbuildapkstep.h \
qmakeandroidbuildapkwidget.h \
androidqmakebuildconfigurationfactory.h \
qmakeandroidsupportplugin.h
SOURCES += \
androidextralibrarylistmodel.cpp \
androidpackageinstallationfactory.cpp \
androidpackageinstallationstep.cpp \
createandroidmanifestwizard.cpp \
qmakeandroidsupport.cpp \
qmakeandroidrunconfiguration.cpp \
qmakeandroidrunfactories.cpp \
qmakeandroidbuildapkstep.cpp \
qmakeandroidbuildapkwidget.cpp \
androidqmakebuildconfigurationfactory.cpp \
qmakeandroidsupportplugin.cpp
FORMS += qmakeandroidbuildapkwidget.ui
RESOURCES +=
QTC_PLUGIN_NAME = QmakeAndroidSupport
QTC_LIB_DEPENDS += \
aggregation \
extensionsystem \
qmljs \
utils
QTC_PLUGIN_DEPENDS += \
coreplugin \
projectexplorer \
qtsupport \
texteditor \
cpptools \
qmljstools \
resourceeditor \
android \
qmakeprojectmanager
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, 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, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
#ifndef QMAKEANDROID_GLOBAL_H
#define QMAKEANDROID_GLOBAL_H
#include <qglobal.h>
#if defined(QMAKEANDROID_LIBRARY)
# define QMAKEANDROIDSUPPORT_EXPORT Q_DECL_EXPORT
#else
# define QMAKEANDROIDSUPPORT_EXPORT Q_DECL_IMPORT
#endif
#endif // QMAKEANDROID_GLOBAL_H
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, 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, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
#include "qmakeandroidsupportplugin.h"
#include "androidpackageinstallationfactory.h"
#include "androidqmakebuildconfigurationfactory.h"
#include "qmakeandroidbuildapkstep.h"
#include "qmakeandroidrunfactories.h"
#include "qmakeandroidsupport.h"
#include <coreplugin/icore.h>
#include <QtPlugin>
using namespace QmakeAndroidSupport::Internal;
using namespace QmakeAndroidSupport;
QmakeAndroidSupportPlugin::QmakeAndroidSupportPlugin()
{
}
QmakeAndroidSupportPlugin::~QmakeAndroidSupportPlugin()
{
}
bool QmakeAndroidSupportPlugin::initialize(const QStringList &arguments, QString *errorMessage)
{
Q_UNUSED(arguments)
Q_UNUSED(errorMessage)
addAutoReleasedObject(new AndroidQmakeBuildConfigurationFactory);
addAutoReleasedObject(new AndroidPackageInstallationFactory);
addAutoReleasedObject(new QmakeAndroidBuildApkStepFactory);
addAutoReleasedObject(new QmakeAndroidRunConfigurationFactory);
addAutoReleasedObject(new QmakeAndroidSupport);
return true;
}
void QmakeAndroidSupportPlugin::extensionsInitialized()
{ }
Q_EXPORT_PLUGIN(QmakeAndroidSupportPlugin)
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, 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, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
#ifndef QMAKEANDROIDSUPPORTPLUGIN_H
#define QMAKEANDROIDSUPPORTPLUGIN_H
#include <extensionsystem/iplugin.h>
namespace QmakeAndroidSupport {
namespace Internal {
class QmakeAndroidSupportPlugin : public ExtensionSystem::IPlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QmakeAndroidSupport.json")
public:
QmakeAndroidSupportPlugin();
~QmakeAndroidSupportPlugin();
bool initialize(const QStringList &arguments, QString *errorMessage);
void extensionsInitialized();
};
} // namespace Internal
} // namespace QmakeAndroidSupport
#endif // QMAKEANDROIDSUPPORTPLUGIN_H
......@@ -5,10 +5,6 @@ DEFINES += \
QMAKEPROJECTMANAGER_LIBRARY
HEADERS += \
androidextralibrarylistmodel.h \
androidpackageinstallationfactory.h \
androidpackageinstallationstep.h \
createandroidmanifestwizard.h \
qmakebuildinfo.h \
qmakekitinformation.h \
qmakekitconfigwidget.h \
......@@ -58,19 +54,9 @@ HEADERS += \
findqmakeprofiles.h \
qmakeprojectmanager_global.h \