Commit 562265d5 authored by Friedemann Kleint's avatar Friedemann Kleint
Browse files

Toolchains: Header cleanup.

parent e6d10c86
......@@ -43,6 +43,7 @@
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/headerpath.h>
#include <projectexplorer/buildenvironmentwidget.h>
#include <projectexplorer/buildsteplist.h>
#include <projectexplorer/buildmanager.h>
......
......@@ -41,8 +41,13 @@
#include <coreplugin/coreconstants.h>
#include <coreplugin/helpmanager.h>
#include <projectexplorer/debugginghelper.h>
#include <projectexplorer/environmentwidget.h>
#include <utils/pathchooser.h>
#include <utils/detailswidget.h>
#include <utils/qtcassert.h>
#include <utils/debuggerlanguagechooser.h>
#include <QtGui/QFormLayout>
#include <QtGui/QLineEdit>
#include <QtGui/QGroupBox>
......
......@@ -35,12 +35,7 @@
#define CMAKERUNCONFIGURATION_H
#include <projectexplorer/applicationrunconfiguration.h>
#include <projectexplorer/persistentsettings.h>
#include <projectexplorer/environmentwidget.h>
#include <projectexplorer/toolchain.h>
#include <utils/environment.h>
#include <utils/pathchooser.h>
#include <utils/detailswidget.h>
QT_BEGIN_NAMESPACE
class QComboBox;
......@@ -48,6 +43,12 @@ QT_END_NAMESPACE
namespace Utils {
class DebuggerLanguageChooser;
class PathChooser;
class DetailsWidget;
}
namespace ProjectExplorer {
class EnvironmentWidget;
}
namespace CMakeProjectManager {
......
......@@ -36,10 +36,10 @@
#include <coreplugin/core_global.h>
#include <QtGui/QIcon>
#include <QtCore/QObject>
QT_BEGIN_NAMESPACE
class QIcon;
class QWidget;
QT_END_NAMESPACE
......
......@@ -44,6 +44,7 @@
#include <QtGui/QFormLayout>
#include <QtGui/QVBoxLayout>
#include <QtGui/QLabel>
#include <QtGui/QIcon>
#include <QtCore/QDebug>
#include <QtCore/QVariant>
......
......@@ -58,7 +58,7 @@
#include <coreplugin/icore.h>
#include <texteditor/itexteditor.h>
#include <projectexplorer/toolchain.h>
#include <projectexplorer/abi.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <utils/synchronousprocess.h>
......
......@@ -38,10 +38,8 @@
#include "ui_dumperoptionpage.h"
#include <coreplugin/dialogs/ioptionspage.h>
#include <projectexplorer/toolchain.h>
#include <utils/savedaction.h>
namespace Debugger {
namespace Internal {
......
......@@ -75,7 +75,7 @@
#include <coreplugin/icore.h>
#include <coreplugin/ifile.h>
#include <projectexplorer/toolchain.h>
#include <projectexplorer/abi.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <texteditor/itexteditor.h>
#include <utils/qtcassert.h>
......
......@@ -37,7 +37,9 @@
#include <extensionsystem/pluginmanager.h>
#include "qt_private/abstractoptionspage_p.h"
#include <QtCore/QCoreApplication>
#include <QtGui/QIcon>
using namespace Designer::Internal;
......
......@@ -38,6 +38,7 @@
#include "generictarget.h"
#include <projectexplorer/buildenvironmentwidget.h>
#include <projectexplorer/headerpath.h>
#include <projectexplorer/customexecutablerunconfiguration.h>
#include <projectexplorer/toolchainmanager.h>
#include <projectexplorer/projectexplorerconstants.h>
......
......@@ -32,13 +32,16 @@
**************************************************************************/
#include "gcctoolchain.h"
#include "gcctoolchainfactories.h"
#include "gccparser.h"
#include "linuxiccparser.h"
#include "headerpath.h"
#include "projectexplorerconstants.h"
#include <utils/environment.h>
#include <utils/synchronousprocess.h>
#include <utils/qtcassert.h>
#include <utils/pathchooser.h>
#include <QtCore/QBuffer>
#include <QtCore/QCoreApplication>
......
......@@ -37,14 +37,7 @@
#include "projectexplorer_export.h"
#include "toolchain.h"
#include "toolchainconfigwidget.h"
#include <utils/pathchooser.h>
QT_BEGIN_NAMESPACE
class QCheckBox;
QT_END_NAMESPACE
#include "abi.h"
namespace ProjectExplorer {
......@@ -116,69 +109,6 @@ private:
friend class ToolChainFactory;
};
// --------------------------------------------------------------------------
// GccToolChainFactory
// --------------------------------------------------------------------------
namespace Internal {
class GccToolChainFactory : public ToolChainFactory
{
Q_OBJECT
public:
// Name used to display the name of the toolchain that will be created.
QString displayName() const;
QString id() const;
QList<ToolChain *> autoDetect();
bool canCreate();
ToolChain *create();
// Used by the ToolChainManager to restore user-generated ToolChains
bool canRestore(const QVariantMap &data);
ToolChain *restore(const QVariantMap &data);
protected:
virtual GccToolChain *createToolChain(bool autoDetect);
QList<ToolChain *> autoDetectToolchains(const QString &compiler,
const QStringList &debuggers,
const Abi &);
};
} // namespace Internal
// --------------------------------------------------------------------------
// GccToolChainConfigWidget
// --------------------------------------------------------------------------
namespace Internal {
class GccToolChainConfigWidget : public ToolChainConfigWidget
{
Q_OBJECT
public:
GccToolChainConfigWidget(GccToolChain *);
void apply();
void discard() { setFromToolchain(); }
bool isDirty() const;
private slots:
void handlePathChange();
void handle32BitChange();
private:
void setFromToolchain();
Utils::PathChooser *m_compilerPath;
QCheckBox *m_force32BitCheckBox;
};
} // namespace Internal
// --------------------------------------------------------------------------
// MingwToolChain
// --------------------------------------------------------------------------
......@@ -198,36 +128,6 @@ private:
friend class ToolChainFactory;
};
// --------------------------------------------------------------------------
// MingwToolChainFactory
// --------------------------------------------------------------------------
namespace Internal {
class MingwToolChainFactory : public GccToolChainFactory
{
Q_OBJECT
public:
// Name used to display the name of the toolchain that will be created.
QString displayName() const;
QString id() const;
QList<ToolChain *> autoDetect();
bool canCreate();
ToolChain *create();
// Used by the ToolChainManager to restore user-generated ToolChains
bool canRestore(const QVariantMap &data);
ToolChain *restore(const QVariantMap &data);
protected:
GccToolChain *createToolChain(bool autoDetect);
};
} // namespace Internal
// --------------------------------------------------------------------------
// LinuxIccToolChain
// --------------------------------------------------------------------------
......@@ -249,34 +149,6 @@ private:
friend class ToolChainFactory;
};
// --------------------------------------------------------------------------
// LinuxIccToolChainFactory
// --------------------------------------------------------------------------
namespace Internal {
class LinuxIccToolChainFactory : public GccToolChainFactory
{
Q_OBJECT
public:
// Name used to display the name of the toolchain that will be created.
QString displayName() const;
QString id() const;
QList<ToolChain *> autoDetect();
ToolChain *create();
// Used by the ToolChainManager to restore user-generated ToolChains
bool canRestore(const QVariantMap &data);
ToolChain *restore(const QVariantMap &data);
protected:
GccToolChain *createToolChain(bool autoDetect);
};
} // namespace Internal
} // namespace ProjectExplorer
#endif // GCCTOOLCHAIN_H
/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** No Commercial Usage
**
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** 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, 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.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
**************************************************************************/
#ifndef GCCTOOLCHAINFACTORIES_H
#define GCCTOOLCHAINFACTORIES_H
#include "toolchain.h"
#include "toolchainconfigwidget.h"
QT_BEGIN_NAMESPACE
class QCheckBox;
QT_END_NAMESPACE
namespace Utils {
class PathChooser;
}
namespace ProjectExplorer {
class GccToolChain;
namespace Internal {
class GccToolChainFactory : public ToolChainFactory
{
Q_OBJECT
public:
// Name used to display the name of the toolchain that will be created.
QString displayName() const;
QString id() const;
QList<ToolChain *> autoDetect();
bool canCreate();
ToolChain *create();
// Used by the ToolChainManager to restore user-generated ToolChains
bool canRestore(const QVariantMap &data);
ToolChain *restore(const QVariantMap &data);
protected:
virtual GccToolChain *createToolChain(bool autoDetect);
QList<ToolChain *> autoDetectToolchains(const QString &compiler,
const QStringList &debuggers,
const Abi &);
};
// --------------------------------------------------------------------------
// GccToolChainConfigWidget
// --------------------------------------------------------------------------
class GccToolChainConfigWidget : public ToolChainConfigWidget
{
Q_OBJECT
public:
GccToolChainConfigWidget(GccToolChain *);
void apply();
void discard() { setFromToolchain(); }
bool isDirty() const;
private slots:
void handlePathChange();
void handle32BitChange();
private:
void setFromToolchain();
Utils::PathChooser *m_compilerPath;
QCheckBox *m_force32BitCheckBox;
};
// --------------------------------------------------------------------------
// MingwToolChainFactory
// --------------------------------------------------------------------------
class MingwToolChainFactory : public GccToolChainFactory
{
Q_OBJECT
public:
// Name used to display the name of the toolchain that will be created.
QString displayName() const;
QString id() const;
QList<ToolChain *> autoDetect();
bool canCreate();
ToolChain *create();
// Used by the ToolChainManager to restore user-generated ToolChains
bool canRestore(const QVariantMap &data);
ToolChain *restore(const QVariantMap &data);
protected:
GccToolChain *createToolChain(bool autoDetect);
};
// --------------------------------------------------------------------------
// LinuxIccToolChainFactory
// --------------------------------------------------------------------------
class LinuxIccToolChainFactory : public GccToolChainFactory
{
Q_OBJECT
public:
// Name used to display the name of the toolchain that will be created.
QString displayName() const;
QString id() const;
QList<ToolChain *> autoDetect();
ToolChain *create();
// Used by the ToolChainManager to restore user-generated ToolChains
bool canRestore(const QVariantMap &data);
ToolChain *restore(const QVariantMap &data);
protected:
GccToolChain *createToolChain(bool autoDetect);
};
} // namespace Internal
} // namespace ProjectExplorer
#endif // GCCTOOLCHAINFACTORIES_H
/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** No Commercial Usage
**
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** 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, 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.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
**************************************************************************/
#ifndef HEADERPATH_H
#define HEADERPATH_H
#include "projectexplorer_export.h"
namespace ProjectExplorer {
class PROJECTEXPLORER_EXPORT HeaderPath
{
public:
enum Kind {
GlobalHeaderPath,
UserHeaderPath,
FrameworkHeaderPath
};
HeaderPath()
: m_kind(GlobalHeaderPath)
{ }
HeaderPath(const QString &path, Kind kind)
: m_path(path), m_kind(kind)
{ }
QString path() const { return m_path; }
Kind kind() const { return m_kind; }
private:
QString m_path;
Kind m_kind;
};
} // namespace ProjectExplorer
#endif // HEADERPATH_H
......@@ -34,6 +34,7 @@
#include "msvctoolchain.h"
#include "msvcparser.h"
#include "projectexplorerconstants.h"
#include "headerpath.h"
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectexplorersettings.h>
......
......@@ -35,6 +35,7 @@
#define MSVCTOOLCHAIN_H
#include "toolchain.h"
#include "abi.h"
#include "toolchainconfigwidget.h"
#include <utils/environment.h>
......
......@@ -35,7 +35,7 @@
#include "buildsteplist.h"
#include "deployconfiguration.h"
#include "gcctoolchain.h"
#include "gcctoolchainfactories.h"
#include "msvctoolchain.h"
#include "project.h"
#include "projectexplorersettings.h"
......
......@@ -105,7 +105,9 @@ HEADERS += projectexplorer.h \
sessionnodeimpl.h \
metatypedeclarations.h \
publishing/publishingwizardselectiondialog.h \
publishing/ipublishingwizardfactory.h
publishing/ipublishingwizardfactory.h \
headerpath.h \
gcctoolchainfactories.h
SOURCES += projectexplorer.cpp \
abi.cpp \
......
......@@ -36,12 +36,8 @@
#include "projectexplorer_export.h"
#include "abi.h"
#include <QtCore/QObject>
#include <QtCore/QString>
#include <QtCore/QPair>
#include <QtCore/QMetaType>
#include <QtCore/QVariantMap>
namespace Utils {
......@@ -54,38 +50,11 @@ namespace Internal {
class ToolChainPrivate;
}
class Abi;
class IOutputParser;
class ToolChainConfigWidget;
class ToolChainFactory;
// --------------------------------------------------------------------------
// HeaderPath
// --------------------------------------------------------------------------
class PROJECTEXPLORER_EXPORT HeaderPath
{
public:
enum Kind {
GlobalHeaderPath,
UserHeaderPath,
FrameworkHeaderPath
};
HeaderPath()
: m_kind(GlobalHeaderPath)
{ }
HeaderPath(const QString &path, Kind kind)
: m_path(path), m_kind(kind)
{ }
QString path() const { return m_path; }
Kind kind() const { return m_kind; }