forked from qt-creator/qt-creator
Qmake: Move some non-configuration code from build config to build system
Change-Id: I6fdf20e740c2824cabb3659f36379f9325ab97bd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -50,8 +50,6 @@
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
#include <projectexplorer/projectmacroexpander.h>
|
||||
#include <projectexplorer/target.h>
|
||||
#include <projectexplorer/toolchain.h>
|
||||
#include <projectexplorer/toolchainmanager.h>
|
||||
|
||||
#include <qtsupport/qtkitinformation.h>
|
||||
#include <qtsupport/qtversionmanager.h>
|
||||
@@ -110,10 +108,6 @@ QmakeBuildConfiguration::QmakeBuildConfiguration(Target *target, Core::Id id)
|
||||
{
|
||||
m_buildSystem = new QmakeBuildSystem(this);
|
||||
|
||||
connect(this, &BuildConfiguration::buildDirectoryChanged,
|
||||
this, &QmakeBuildConfiguration::emitProFileEvaluateNeeded);
|
||||
connect(this, &BuildConfiguration::environmentChanged,
|
||||
this, &QmakeBuildConfiguration::emitProFileEvaluateNeeded);
|
||||
connect(target, &Target::kitChanged,
|
||||
this, &QmakeBuildConfiguration::kitChanged);
|
||||
MacroExpander *expander = macroExpander();
|
||||
@@ -123,10 +117,6 @@ QmakeBuildConfiguration::QmakeBuildConfiguration(Target *target, Core::Id id)
|
||||
return file;
|
||||
return QLatin1String("Makefile");
|
||||
});
|
||||
connect(ToolChainManager::instance(), &ToolChainManager::toolChainUpdated,
|
||||
this, &QmakeBuildConfiguration::toolChainUpdated);
|
||||
connect(QtVersionManager::instance(), &QtVersionManager::qtVersionsChanged,
|
||||
this, &QmakeBuildConfiguration::qtVersionsChanged);
|
||||
}
|
||||
|
||||
void QmakeBuildConfiguration::initialize()
|
||||
@@ -207,23 +197,11 @@ void QmakeBuildConfiguration::kitChanged()
|
||||
// This only checks if the ids have changed!
|
||||
// For that reason the QmakeBuildConfiguration is also connected
|
||||
// to the toolchain and qtversion managers
|
||||
emitProFileEvaluateNeeded();
|
||||
m_buildSystem->scheduleUpdateAllNowOrLater();
|
||||
m_lastKitState = newState;
|
||||
}
|
||||
}
|
||||
|
||||
void QmakeBuildConfiguration::toolChainUpdated(ToolChain *tc)
|
||||
{
|
||||
if (ToolChainKitAspect::toolChain(target()->kit(), ProjectExplorer::Constants::CXX_LANGUAGE_ID) == tc)
|
||||
emitProFileEvaluateNeeded();
|
||||
}
|
||||
|
||||
void QmakeBuildConfiguration::qtVersionsChanged(const QList<int> &,const QList<int> &, const QList<int> &changed)
|
||||
{
|
||||
if (changed.contains(QtKitAspect::qtVersionId(target()->kit())))
|
||||
emitProFileEvaluateNeeded();
|
||||
}
|
||||
|
||||
BuildSystem *QmakeBuildConfiguration::buildSystem() const
|
||||
{
|
||||
return m_buildSystem;
|
||||
@@ -280,13 +258,8 @@ void QmakeBuildConfiguration::setQMakeBuildConfiguration(BaseQtVersion::QmakeBui
|
||||
m_qmakeBuildConfiguration = config;
|
||||
|
||||
emit qmakeBuildConfigurationChanged();
|
||||
emitProFileEvaluateNeeded();
|
||||
emit buildTypeChanged();
|
||||
}
|
||||
|
||||
void QmakeBuildConfiguration::emitProFileEvaluateNeeded()
|
||||
{
|
||||
m_buildSystem->scheduleUpdateAllNowOrLater();
|
||||
emit buildTypeChanged();
|
||||
}
|
||||
|
||||
QString QmakeBuildConfiguration::unalignedBuildDirWarning()
|
||||
|
@@ -92,8 +92,6 @@ public:
|
||||
void addToEnvironment(Utils::Environment &env) const override;
|
||||
static void setupBuildEnvironment(ProjectExplorer::Kit *k, Utils::Environment &env);
|
||||
|
||||
void emitProFileEvaluateNeeded();
|
||||
|
||||
static QString unalignedBuildDirWarning();
|
||||
static bool isBuildDirAtSafeLocation(const QString &sourceDir, const QString &buildDir);
|
||||
bool isBuildDirAtSafeLocation() const;
|
||||
|
@@ -38,13 +38,11 @@
|
||||
#include <coreplugin/icontext.h>
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/progressmanager/progressmanager.h>
|
||||
|
||||
#include <cpptools/cppmodelmanager.h>
|
||||
#include <cpptools/cppprojectupdater.h>
|
||||
#include <cpptools/generatedcodemodelsupport.h>
|
||||
#include <cpptools/projectinfo.h>
|
||||
#include <projectexplorer/headerpath.h>
|
||||
#include <projectexplorer/rawprojectpart.h>
|
||||
#include <utils/algorithm.h>
|
||||
#include <qmljs/qmljsmodelmanagerinterface.h>
|
||||
|
||||
#include <projectexplorer/buildinfo.h>
|
||||
#include <projectexplorer/buildmanager.h>
|
||||
@@ -53,28 +51,31 @@
|
||||
#include <projectexplorer/headerpath.h>
|
||||
#include <projectexplorer/projectexplorer.h>
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
#include <projectexplorer/rawprojectpart.h>
|
||||
#include <projectexplorer/runconfiguration.h>
|
||||
#include <projectexplorer/target.h>
|
||||
#include <projectexplorer/taskhub.h>
|
||||
#include <projectexplorer/toolchain.h>
|
||||
#include <projectexplorer/toolchainmanager.h>
|
||||
|
||||
#include <proparser/qmakevfs.h>
|
||||
#include <proparser/qmakeglobals.h>
|
||||
|
||||
#include <qtsupport/profilereader.h>
|
||||
#include <qtsupport/qtcppkitinfo.h>
|
||||
#include <qtsupport/qtkitinformation.h>
|
||||
#include <qtsupport/qtversionmanager.h>
|
||||
#include <cpptools/generatedcodemodelsupport.h>
|
||||
#include <resourceeditor/resourcenode.h>
|
||||
#include <extensionsystem/pluginmanager.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <qmljs/qmljsmodelmanagerinterface.h>
|
||||
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
#include <QFileSystemWatcher>
|
||||
#include <QMessageBox>
|
||||
|
||||
using namespace QmakeProjectManager;
|
||||
using namespace QmakeProjectManager::Internal;
|
||||
using namespace ProjectExplorer;
|
||||
using namespace QtSupport;
|
||||
using namespace Utils;
|
||||
|
||||
namespace QmakeProjectManager {
|
||||
@@ -211,6 +212,23 @@ QmakeBuildSystem::QmakeBuildSystem(QmakeBuildConfiguration *bc)
|
||||
|
||||
connect(bc->project(), &Project::projectFileIsDirty,
|
||||
this, &QmakeBuildSystem::scheduleUpdateAllLater);
|
||||
|
||||
connect(bc, &BuildConfiguration::buildDirectoryChanged,
|
||||
this, &QmakeBuildSystem::scheduleUpdateAllNowOrLater);
|
||||
connect(bc, &BuildConfiguration::environmentChanged,
|
||||
this, &QmakeBuildSystem::scheduleUpdateAllNowOrLater);
|
||||
|
||||
connect(ToolChainManager::instance(), &ToolChainManager::toolChainUpdated,
|
||||
this, [this](ToolChain *tc) {
|
||||
if (ToolChainKitAspect::toolChain(kit(), ProjectExplorer::Constants::CXX_LANGUAGE_ID) == tc)
|
||||
scheduleUpdateAllNowOrLater();
|
||||
});
|
||||
|
||||
connect(QtVersionManager::instance(), &QtVersionManager::qtVersionsChanged,
|
||||
this, [this](const QList<int> &,const QList<int> &, const QList<int> &changed) {
|
||||
if (changed.contains(QtKitAspect::qtVersionId(kit())))
|
||||
scheduleUpdateAllNowOrLater();
|
||||
});
|
||||
}
|
||||
|
||||
QmakeBuildSystem::~QmakeBuildSystem()
|
||||
|
@@ -84,6 +84,11 @@ QmakeBuildConfiguration *QMakeStep::qmakeBuildConfiguration() const
|
||||
return qobject_cast<QmakeBuildConfiguration *>(buildConfiguration());
|
||||
}
|
||||
|
||||
QmakeBuildSystem *QMakeStep::qmakeBuildSystem() const
|
||||
{
|
||||
return qmakeBuildConfiguration()->qmakeBuildSystem();
|
||||
}
|
||||
|
||||
///
|
||||
/// Returns all arguments
|
||||
/// That is: possbile subpath
|
||||
@@ -359,7 +364,7 @@ void QMakeStep::setUserArguments(const QString &arguments)
|
||||
emit userArgumentsChanged();
|
||||
|
||||
emit qmakeBuildConfiguration()->qmakeBuildConfigurationChanged();
|
||||
qmakeBuildConfiguration()->emitProFileEvaluateNeeded();
|
||||
qmakeBuildSystem()->scheduleUpdateAllNowOrLater();
|
||||
}
|
||||
|
||||
QStringList QMakeStep::extraArguments() const
|
||||
@@ -373,7 +378,7 @@ void QMakeStep::setExtraArguments(const QStringList &args)
|
||||
m_extraArgs = args;
|
||||
emit extraArgumentsChanged();
|
||||
emit qmakeBuildConfiguration()->qmakeBuildConfigurationChanged();
|
||||
qmakeBuildConfiguration()->emitProFileEvaluateNeeded();
|
||||
qmakeBuildSystem()->scheduleUpdateAllNowOrLater();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -402,7 +407,7 @@ void QMakeStep::setLinkQmlDebuggingLibrary(bool enable)
|
||||
emit linkQmlDebuggingLibraryChanged();
|
||||
|
||||
emit qmakeBuildConfiguration()->qmakeBuildConfigurationChanged();
|
||||
qmakeBuildConfiguration()->emitProFileEvaluateNeeded();
|
||||
qmakeBuildSystem()->scheduleUpdateAllNowOrLater();
|
||||
}
|
||||
|
||||
bool QMakeStep::useQtQuickCompiler() const
|
||||
@@ -420,7 +425,7 @@ void QMakeStep::setUseQtQuickCompiler(bool enable)
|
||||
emit useQtQuickCompilerChanged();
|
||||
|
||||
emit qmakeBuildConfiguration()->qmakeBuildConfigurationChanged();
|
||||
qmakeBuildConfiguration()->emitProFileEvaluateNeeded();
|
||||
qmakeBuildSystem()->scheduleUpdateAllNowOrLater();
|
||||
}
|
||||
|
||||
bool QMakeStep::separateDebugInfo() const
|
||||
@@ -437,7 +442,7 @@ void QMakeStep::setSeparateDebugInfo(bool enable)
|
||||
emit separateDebugInfoChanged();
|
||||
|
||||
emit qmakeBuildConfiguration()->qmakeBuildConfigurationChanged();
|
||||
qmakeBuildConfiguration()->emitProFileEvaluateNeeded();
|
||||
qmakeBuildSystem()->scheduleUpdateAllNowOrLater();
|
||||
}
|
||||
|
||||
FilePath QMakeStep::makeCommand() const
|
||||
|
@@ -35,15 +35,13 @@
|
||||
|
||||
namespace ProjectExplorer {
|
||||
class Abi;
|
||||
class BuildStep;
|
||||
class BuildStepFactory;
|
||||
class Project;
|
||||
} // namespace ProjectExplorer
|
||||
|
||||
namespace QtSupport { class BaseQtVersion; }
|
||||
|
||||
namespace QmakeProjectManager {
|
||||
class QmakeBuildConfiguration;
|
||||
class QmakeBuildSystem;
|
||||
|
||||
namespace Internal {
|
||||
|
||||
@@ -113,6 +111,7 @@ public:
|
||||
explicit QMakeStep(ProjectExplorer::BuildStepList *parent);
|
||||
|
||||
QmakeBuildConfiguration *qmakeBuildConfiguration() const;
|
||||
QmakeBuildSystem *qmakeBuildSystem() const;
|
||||
bool init() override;
|
||||
void doRun() override;
|
||||
ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override;
|
||||
|
Reference in New Issue
Block a user