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:
hjk
2019-11-20 15:51:44 +01:00
parent e63444b45d
commit 5bac811432
5 changed files with 41 additions and 48 deletions

View File

@@ -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()

View File

@@ -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;

View File

@@ -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()

View File

@@ -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

View File

@@ -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;