From 84ce2e5b706f82df4070c197f0a13a86c1f74f05 Mon Sep 17 00:00:00 2001 From: dt <qtc-committer@nokia.com> Date: Mon, 16 Mar 2009 18:13:45 +0100 Subject: [PATCH] Fixes: Add a makeCommand() virtual function to ToolChain Details: Move that code from qt4project to a common class. --- src/plugins/projectexplorer/toolchain.cpp | 15 +++++++++++++++ src/plugins/projectexplorer/toolchain.h | 5 +++++ .../qt4projectmanager/gdbmacrosbuildstep.cpp | 4 ++-- src/plugins/qt4projectmanager/makestep.cpp | 5 ++--- src/plugins/qt4projectmanager/qt4project.cpp | 7 ++++++- src/plugins/qt4projectmanager/qt4project.h | 2 ++ .../qt4projectmanager/qtversionmanager.cpp | 15 --------------- src/plugins/qt4projectmanager/qtversionmanager.h | 1 - 8 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp index 0d3a2d850d9..7c080aad8e2 100644 --- a/src/plugins/projectexplorer/toolchain.cpp +++ b/src/plugins/projectexplorer/toolchain.cpp @@ -154,6 +154,11 @@ void GccToolChain::addToEnvironment(ProjectExplorer::Environment &env) Q_UNUSED(env) } +QString GccToolChain::makeCommand() const +{ + return "make"; +} + bool GccToolChain::equals(ToolChain *other) const { return (m_gcc == static_cast<GccToolChain *>(other)->m_gcc); @@ -186,6 +191,11 @@ void MinGWToolChain::addToEnvironment(ProjectExplorer::Environment &env) // qDebug()<<"Adding "<<binDir<<" to the PATH"; } +QString MinGWToolChain::makeCommand() const +{ + return "mingw32-make.exe"; +} + MSVCToolChain::MSVCToolChain(const QString &name) : m_name(name), m_valuesSet(false) @@ -293,6 +303,11 @@ void MSVCToolChain::addToEnvironment(ProjectExplorer::Environment &env) } +QString MSVCToolChain::makeCommand() const +{ + return "nmake.exe"; +} + WinCEToolChain::WinCEToolChain(const QString &name, const QString &platform) : MSVCToolChain(name), m_platform(platform) { diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h index aeaa45fe7df..a977c125bf3 100644 --- a/src/plugins/projectexplorer/toolchain.h +++ b/src/plugins/projectexplorer/toolchain.h @@ -52,11 +52,13 @@ public: virtual QList<HeaderPath> systemHeaderPaths() = 0; virtual void addToEnvironment(ProjectExplorer::Environment &env) = 0; virtual ToolChainType type() const = 0; + virtual QString makeCommand() const = 0; ToolChain(); virtual ~ToolChain(); static bool equals(ToolChain *, ToolChain *); + // Factory methods static ToolChain *createGccToolChain(const QString &gcc); static ToolChain *createMinGWToolChain(const QString &gcc, const QString &mingwPath); static ToolChain *createMSVCToolChain(const QString &name); @@ -77,6 +79,7 @@ public: virtual QList<HeaderPath> systemHeaderPaths(); virtual void addToEnvironment(ProjectExplorer::Environment &env); virtual ToolChainType type() const; + virtual QString makeCommand() const; protected: virtual bool equals(ToolChain *other) const; @@ -93,6 +96,7 @@ public: MinGWToolChain(const QString &gcc, const QString &mingwPath); virtual void addToEnvironment(ProjectExplorer::Environment &env); virtual ToolChainType type() const; + virtual QString makeCommand() const; protected: virtual bool equals(ToolChain *other) const; private: @@ -108,6 +112,7 @@ public: virtual QList<HeaderPath> systemHeaderPaths(); virtual void addToEnvironment(ProjectExplorer::Environment &env); virtual ToolChainType type() const; + virtual QString makeCommand() const; protected: virtual bool equals(ToolChain *other) const; QString m_name; diff --git a/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp b/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp index 1b9fcb29e77..4fe0dc00045 100644 --- a/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp +++ b/src/plugins/qt4projectmanager/gdbmacrosbuildstep.cpp @@ -127,7 +127,7 @@ void GdbMacrosBuildStep::run(QFutureInterface<bool> & fi) qmake.start(m_qmake, QStringList()<<"-spec"<<mkspec<<configarguments<<"gdbmacros.pro"); qmake.waitForFinished(); - QString makeCmd = qt4Project->qtVersion(m_buildConfiguration)->makeCommand(); + QString makeCmd = qt4Project->makeCommand(m_buildConfiguration); if (!value(m_buildConfiguration, "makeCmd").toString().isEmpty()) makeCmd = value(m_buildConfiguration, "makeCmd").toString(); if (!QFileInfo(makeCmd).isAbsolute()) { @@ -147,7 +147,7 @@ void GdbMacrosBuildStep::run(QFutureInterface<bool> & fi) QProcess make; make.setEnvironment(qt4Project->environment(m_buildConfiguration).toStringList()); make.setWorkingDirectory(destDir); - make.start(qt4Project->qtVersion(m_buildConfiguration)->makeCommand(), QStringList()<<"distclean"); + make.start(qt4Project->makeCommand(m_buildConfiguration), QStringList()<<"distclean"); make.waitForFinished(); QStringList directories; diff --git a/src/plugins/qt4projectmanager/makestep.cpp b/src/plugins/qt4projectmanager/makestep.cpp index 399fd5f6ed4..f7d9d3a1514 100644 --- a/src/plugins/qt4projectmanager/makestep.cpp +++ b/src/plugins/qt4projectmanager/makestep.cpp @@ -95,8 +95,7 @@ bool MakeStep::init(const QString &name) workingDirectory = QFileInfo(project()->file()->fileName()).absolutePath(); setWorkingDirectory(name, workingDirectory); - //NBS only dependency on Qt4Project, we probably simply need a MakeProject from which Qt4Project derives - QString makeCmd = qobject_cast<Qt4Project *>(project())->qtVersion(name)->makeCommand(); + QString makeCmd = qobject_cast<Qt4Project *>(project())->makeCommand(name); if (!value(name, "makeCmd").toString().isEmpty()) makeCmd = value(name, "makeCmd").toString(); if (!QFileInfo(makeCmd).isAbsolute()) { @@ -293,7 +292,7 @@ void MakeStepConfigWidget::init(const QString &buildConfiguration) if (!showPage0) { Qt4Project *pro = qobject_cast<Qt4Project *>(m_makeStep->project()); Q_ASSERT(pro); - m_ui.makeLabel->setText(tr("Override %1:").arg(pro->qtVersion(buildConfiguration)->makeCommand())); + m_ui.makeLabel->setText(tr("Override %1:").arg(pro->makeCommand(buildConfiguration))); const QString &makeCmd = m_makeStep->value(buildConfiguration, "makeCmd").toString(); m_ui.makeLineEdit->setText(makeCmd); diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 3018da15cce..a95c1284161 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -401,6 +401,11 @@ void Qt4Project::scheduleUpdateCodeModel() m_updateCodeModelTimer.start(); } +QString Qt4Project::makeCommand(const QString &buildConfiguration) const +{ + return toolChain(buildConfiguration)->makeCommand(); +} + ProjectExplorer::ToolChain *Qt4Project::toolChain(const QString &buildConfiguration) const { if (debug) @@ -416,7 +421,7 @@ ProjectExplorer::ToolChain *Qt4Project::toolChain(const QString &buildConfigurat qtVersion(activeBuildConfiguration())->addToEnvironment(env); qmake_cxx = env.searchInPath(qmake_cxx); m_test = ToolChain::createMinGWToolChain(qmake_cxx, version->mingwDirectory()); - qDebug()<<"Mingw ToolChain"; + //qDebug()<<"Mingw ToolChain"; } else if(t == ToolChain::MSVC) { m_test = ToolChain::createMSVCToolChain(version->msvcVersion()); //qDebug()<<"MSVC ToolChain ("<<version->msvcVersion()<<")"; diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h index aaf3ef0209c..2b032c73c75 100644 --- a/src/plugins/qt4projectmanager/qt4project.h +++ b/src/plugins/qt4projectmanager/qt4project.h @@ -181,6 +181,8 @@ public: // called by qt4ProjectNode to add ui_*.h files to the codemodel void addUiFilesToCodeModel(const QStringList &files); + QString makeCommand(const QString &buildConfiguration) const; + public slots: void update(); void proFileParseError(const QString &errorMessage); diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index 76d189337a4..d974138ff4b 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -1143,21 +1143,6 @@ void QtVersion::updateMkSpec() const // qDebug()<<"mkspec for "<<m_path<<" is "<<mkspec; } -QString QtVersion::makeCommand() const -{ -#ifdef Q_OS_WIN - const QString &spec = mkspec(); - if (spec.contains("win32-msvc") || spec.contains(QLatin1String("win32-icc"))) - return "nmake.exe"; - else if (spec.startsWith("wince")) - return "nmake.exe"; - else - return "mingw32-make.exe"; -#else - return "make"; -#endif -} - QString QtVersion::qmakeCommand() const { // We can't use versionInfo QT_INSTALL_BINS here diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index 8d593a4b03b..e56be598eff 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -64,7 +64,6 @@ public: QString sourcePath() const; QString mkspec() const; QString mkspecPath() const; - QString makeCommand() const; QString qmakeCommand() const; QString qtVersionString() const; // Returns the PREFIX, BINPREFIX, DOCPREFIX and similar information -- GitLab