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