forked from qt-creator/qt-creator
QmakeProjectManager: Hide QmakeKitAspectFactory implementation
Change-Id: I9847c82f023d6b1620fdbf66f34b0fd845cfe721 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -23,8 +23,7 @@
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
namespace QmakeProjectManager {
|
||||
namespace Internal {
|
||||
namespace QmakeProjectManager::Internal {
|
||||
|
||||
class QmakeKitAspectImpl final : public KitAspect
|
||||
{
|
||||
@@ -64,49 +63,6 @@ private:
|
||||
Guard m_ignoreChanges;
|
||||
};
|
||||
|
||||
|
||||
QmakeKitAspectFactory::QmakeKitAspectFactory()
|
||||
{
|
||||
setObjectName(QLatin1String("QmakeKitAspect"));
|
||||
setId(QmakeKitAspect::id());
|
||||
setDisplayName(Tr::tr("Qt mkspec"));
|
||||
setDescription(Tr::tr("The mkspec to use when building the project with qmake.<br>"
|
||||
"This setting is ignored when using other build systems."));
|
||||
setPriority(24000);
|
||||
}
|
||||
|
||||
Tasks QmakeKitAspectFactory::validate(const Kit *k) const
|
||||
{
|
||||
Tasks result;
|
||||
QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(k);
|
||||
|
||||
const QString mkspec = QmakeKitAspect::mkspec(k);
|
||||
if (!version && !mkspec.isEmpty())
|
||||
result << BuildSystemTask(Task::Warning, Tr::tr("No Qt version set, so mkspec is ignored."));
|
||||
if (version && !version->hasMkspec(mkspec))
|
||||
result << BuildSystemTask(Task::Error, Tr::tr("Mkspec not found for Qt version."));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
KitAspect *QmakeKitAspectFactory::createKitAspect(Kit *k) const
|
||||
{
|
||||
return new Internal::QmakeKitAspectImpl(k, this);
|
||||
}
|
||||
|
||||
KitAspectFactory::ItemList QmakeKitAspectFactory::toUserOutput(const Kit *k) const
|
||||
{
|
||||
return {{Tr::tr("mkspec"), QDir::toNativeSeparators(QmakeKitAspect::mkspec(k))}};
|
||||
}
|
||||
|
||||
void QmakeKitAspectFactory::addToMacroExpander(Kit *kit, MacroExpander *expander) const
|
||||
{
|
||||
expander->registerVariable("Qmake:mkspec", Tr::tr("Mkspec configured for qmake by the kit."),
|
||||
[kit]() -> QString {
|
||||
return QDir::toNativeSeparators(QmakeKitAspect::mkspec(kit));
|
||||
});
|
||||
}
|
||||
|
||||
Id QmakeKitAspect::id()
|
||||
{
|
||||
return Constants::KIT_INFORMATION_ID;
|
||||
@@ -145,5 +101,54 @@ QString QmakeKitAspect::defaultMkspec(const Kit *k)
|
||||
return version->mkspecFor(ToolChainKitAspect::cxxToolChain(k));
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace QmakeProjectManager
|
||||
// QmakeKitAspectFactory
|
||||
|
||||
class QmakeKitAspectFactory : public KitAspectFactory
|
||||
{
|
||||
public:
|
||||
QmakeKitAspectFactory()
|
||||
{
|
||||
setObjectName(QLatin1String("QmakeKitAspect"));
|
||||
setId(QmakeKitAspect::id());
|
||||
setDisplayName(Tr::tr("Qt mkspec"));
|
||||
setDescription(Tr::tr("The mkspec to use when building the project with qmake.<br>"
|
||||
"This setting is ignored when using other build systems."));
|
||||
setPriority(24000);
|
||||
}
|
||||
|
||||
Tasks validate(const Kit *k) const override
|
||||
{
|
||||
Tasks result;
|
||||
QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(k);
|
||||
|
||||
const QString mkspec = QmakeKitAspect::mkspec(k);
|
||||
if (!version && !mkspec.isEmpty())
|
||||
result << BuildSystemTask(Task::Warning, Tr::tr("No Qt version set, so mkspec is ignored."));
|
||||
if (version && !version->hasMkspec(mkspec))
|
||||
result << BuildSystemTask(Task::Error, Tr::tr("Mkspec not found for Qt version."));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
KitAspect *createKitAspect(Kit *k) const override
|
||||
{
|
||||
return new QmakeKitAspectImpl(k, this);
|
||||
}
|
||||
|
||||
ItemList toUserOutput(const Kit *k) const override
|
||||
{
|
||||
return {{Tr::tr("mkspec"), QDir::toNativeSeparators(QmakeKitAspect::mkspec(k))}};
|
||||
}
|
||||
|
||||
void addToMacroExpander(Kit *kit, Utils::MacroExpander *expander) const override
|
||||
{
|
||||
expander->registerVariable("Qmake:mkspec", Tr::tr("Mkspec configured for qmake by the kit."),
|
||||
[kit]() -> QString {
|
||||
return QDir::toNativeSeparators(QmakeKitAspect::mkspec(kit));
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const QmakeKitAspectFactory theQmakeKitAspectFactory;
|
||||
|
||||
} // QmakeProjectManager::Internal
|
||||
|
@@ -5,8 +5,7 @@
|
||||
|
||||
#include <projectexplorer/kitmanager.h>
|
||||
|
||||
namespace QmakeProjectManager {
|
||||
namespace Internal {
|
||||
namespace QmakeProjectManager::Internal {
|
||||
|
||||
class QmakeKitAspect
|
||||
{
|
||||
@@ -19,19 +18,4 @@ public:
|
||||
static QString defaultMkspec(const ProjectExplorer::Kit *k);
|
||||
};
|
||||
|
||||
class QmakeKitAspectFactory : public ProjectExplorer::KitAspectFactory
|
||||
{
|
||||
public:
|
||||
QmakeKitAspectFactory();
|
||||
|
||||
ProjectExplorer::Tasks validate(const ProjectExplorer::Kit *k) const override;
|
||||
|
||||
ProjectExplorer::KitAspect *createKitAspect(ProjectExplorer::Kit *k) const override;
|
||||
|
||||
ItemList toUserOutput(const ProjectExplorer::Kit *k) const override;
|
||||
|
||||
void addToMacroExpander(ProjectExplorer::Kit *kit, Utils::MacroExpander *expander) const override;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace QmakeProjectManager
|
||||
} // QmakeProjectManager::Internal
|
||||
|
@@ -7,7 +7,6 @@
|
||||
#include "customwidgetwizard/customwidgetwizard.h"
|
||||
#include "profileeditor.h"
|
||||
#include "qmakebuildconfiguration.h"
|
||||
#include "qmakekitinformation.h"
|
||||
#include "qmakemakestep.h"
|
||||
#include "qmakenodes.h"
|
||||
#include "qmakeproject.h"
|
||||
@@ -96,8 +95,6 @@ public:
|
||||
QAction *m_addLibraryAction = nullptr;
|
||||
QAction *m_addLibraryActionContextMenu = nullptr;
|
||||
|
||||
QmakeKitAspectFactory qmakeKitAspectFactory;
|
||||
|
||||
void addLibrary();
|
||||
void addLibraryContextMenu();
|
||||
void runQMake();
|
||||
|
Reference in New Issue
Block a user