ProjectExplorer: Make ToolChain::makeCommand return a FileName

... instead of a QString. This is in line with the qmakeCommand().

Change-Id: I617cb03522be5ebaac6cab58a3606f659fddb833
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-05-15 10:45:36 +02:00
parent 4dd72bd899
commit 86f072daeb
21 changed files with 46 additions and 45 deletions

View File

@@ -73,7 +73,7 @@ bool AndroidPackageInstallationStep::init()
ProcessParameters *pp = processParameters(); ProcessParameters *pp = processParameters();
pp->setMacroExpander(bc->macroExpander()); pp->setMacroExpander(bc->macroExpander());
pp->setWorkingDirectory(bc->buildDirectory().toString()); pp->setWorkingDirectory(bc->buildDirectory().toString());
pp->setCommand(tc->makeCommand(bc->environment())); pp->setCommand(tc->makeCommand(bc->environment()).toString());
Environment env = bc->environment(); Environment env = bc->environment();
Environment::setupEnglishOutput(&env); Environment::setupEnglishOutput(&env);
pp->setEnvironment(env); pp->setEnvironment(env);

View File

@@ -130,11 +130,11 @@ FileNameList AndroidToolChain::suggestedMkspecList() const
<< FileName::fromLatin1("android-clang"); << FileName::fromLatin1("android-clang");
} }
QString AndroidToolChain::makeCommand(const Environment &env) const FileName AndroidToolChain::makeCommand(const Environment &env) const
{ {
Q_UNUSED(env); Q_UNUSED(env);
FileName makePath = AndroidConfigurations::currentConfig().makePath(); FileName makePath = AndroidConfigurations::currentConfig().makePath();
return makePath.exists() ? makePath.toString() : "make"; return makePath.exists() ? makePath : FileName::fromString("make");
} }
GccToolChain::DetectedAbisResult AndroidToolChain::detectSupportedAbis() const GccToolChain::DetectedAbisResult AndroidToolChain::detectSupportedAbis() const

View File

@@ -45,7 +45,7 @@ public:
Utils::FileName suggestedDebugger() const override; Utils::FileName suggestedDebugger() const override;
Utils::FileName suggestedGdbServer() const; Utils::FileName suggestedGdbServer() const;
Utils::FileNameList suggestedMkspecList() const override; Utils::FileNameList suggestedMkspecList() const override;
QString makeCommand(const Utils::Environment &environment) const override; Utils::FileName makeCommand(const Utils::Environment &environment) const override;
bool fromMap(const QVariantMap &data) override; bool fromMap(const QVariantMap &data) override;
protected: protected:

View File

@@ -382,7 +382,7 @@ FileName IarToolChain::compilerCommand() const
return m_compilerCommand; return m_compilerCommand;
} }
QString IarToolChain::makeCommand(const Environment &env) const FileName IarToolChain::makeCommand(const Environment &env) const
{ {
Q_UNUSED(env) Q_UNUSED(env)
return {}; return {};

View File

@@ -81,7 +81,7 @@ public:
void setCompilerCommand(const Utils::FileName &file); void setCompilerCommand(const Utils::FileName &file);
Utils::FileName compilerCommand() const final; Utils::FileName compilerCommand() const final;
QString makeCommand(const Utils::Environment &env) const final; Utils::FileName makeCommand(const Utils::Environment &env) const final;
ToolChain *clone() const final; ToolChain *clone() const final;

View File

@@ -387,7 +387,7 @@ FileName KeilToolchain::compilerCommand() const
return m_compilerCommand; return m_compilerCommand;
} }
QString KeilToolchain::makeCommand(const Environment &env) const FileName KeilToolchain::makeCommand(const Environment &env) const
{ {
Q_UNUSED(env) Q_UNUSED(env)
return {}; return {};

View File

@@ -81,7 +81,7 @@ public:
void setCompilerCommand(const Utils::FileName &file); void setCompilerCommand(const Utils::FileName &file);
Utils::FileName compilerCommand() const final; Utils::FileName compilerCommand() const final;
QString makeCommand(const Utils::Environment &env) const final; Utils::FileName makeCommand(const Utils::Environment &env) const final;
ToolChain *clone() const final; ToolChain *clone() const final;

View File

@@ -372,7 +372,7 @@ FileName SdccToolChain::compilerCommand() const
return m_compilerCommand; return m_compilerCommand;
} }
QString SdccToolChain::makeCommand(const Environment &env) const FileName SdccToolChain::makeCommand(const Environment &env) const
{ {
Q_UNUSED(env) Q_UNUSED(env)
return {}; return {};

View File

@@ -81,7 +81,7 @@ public:
void setCompilerCommand(const Utils::FileName &file); void setCompilerCommand(const Utils::FileName &file);
Utils::FileName compilerCommand() const final; Utils::FileName compilerCommand() const final;
QString makeCommand(const Utils::Environment &env) const final; Utils::FileName makeCommand(const Utils::Environment &env) const final;
ToolChain *clone() const final; ToolChain *clone() const final;

View File

@@ -113,11 +113,10 @@ void NimToolChain::addToEnvironment(Environment &env) const
env.prependOrSetPath(compilerCommand().parentDir().toString()); env.prependOrSetPath(compilerCommand().parentDir().toString());
} }
QString NimToolChain::makeCommand(const Environment &env) const FileName NimToolChain::makeCommand(const Environment &env) const
{ {
QString make = "make"; const FileName tmp = env.searchInPath("make");
FileName tmp = env.searchInPath(make); return tmp.isEmpty() ? FileName::fromString("make") : tmp;
return tmp.isEmpty() ? make : tmp.toString();
} }
FileName NimToolChain::compilerCommand() const FileName NimToolChain::compilerCommand() const

View File

@@ -49,7 +49,7 @@ public:
ProjectExplorer::HeaderPaths builtInHeaderPaths(const QStringList &flags, ProjectExplorer::HeaderPaths builtInHeaderPaths(const QStringList &flags,
const Utils::FileName &sysRoot) const final; const Utils::FileName &sysRoot) const final;
void addToEnvironment(Utils::Environment &env) const final; void addToEnvironment(Utils::Environment &env) const final;
QString makeCommand(const Utils::Environment &env) const final; Utils::FileName makeCommand(const Utils::Environment &env) const final;
Utils::FileName compilerCommand() const final; Utils::FileName compilerCommand() const final;
QString compilerVersion() const; QString compilerVersion() const;
void setCompilerCommand(const Utils::FileName &compilerCommand); void setCompilerCommand(const Utils::FileName &compilerCommand);

View File

@@ -250,9 +250,9 @@ void CustomToolChain::setMakeCommand(const FileName &path)
toolChainUpdated(); toolChainUpdated();
} }
QString CustomToolChain::makeCommand(const Environment &) const FileName CustomToolChain::makeCommand(const Environment &) const
{ {
return m_makeCommand.toString(); return m_makeCommand;
} }
void CustomToolChain::setCxx11Flags(const QStringList &flags) void CustomToolChain::setCxx11Flags(const QStringList &flags)
@@ -602,7 +602,7 @@ void CustomToolChainConfigWidget::setFromToolchain()
QSignalBlocker blocker(this); QSignalBlocker blocker(this);
auto tc = static_cast<CustomToolChain *>(toolChain()); auto tc = static_cast<CustomToolChain *>(toolChain());
m_compilerCommand->setFileName(tc->compilerCommand()); m_compilerCommand->setFileName(tc->compilerCommand());
m_makeCommand->setFileName(FileName::fromString(tc->makeCommand(Environment()))); m_makeCommand->setFileName(tc->makeCommand(Environment()));
m_abiWidget->setAbis(QList<Abi>(), tc->targetAbi()); m_abiWidget->setAbis(QList<Abi>(), tc->targetAbi());
const QStringList macroLines = Utils::transform<QList>(tc->rawPredefinedMacros(), [](const Macro &m) { const QStringList macroLines = Utils::transform<QList>(tc->rawPredefinedMacros(), [](const Macro &m) {
return QString::fromUtf8(m.toKeyValue(QByteArray())); return QString::fromUtf8(m.toKeyValue(QByteArray()));
@@ -621,7 +621,7 @@ bool CustomToolChainConfigWidget::isDirtyImpl() const
auto tc = static_cast<CustomToolChain *>(toolChain()); auto tc = static_cast<CustomToolChain *>(toolChain());
Q_ASSERT(tc); Q_ASSERT(tc);
return m_compilerCommand->fileName() != tc->compilerCommand() return m_compilerCommand->fileName() != tc->compilerCommand()
|| m_makeCommand->path() != tc->makeCommand(Environment()) || m_makeCommand->path() != tc->makeCommand(Environment()).toString()
|| m_abiWidget->currentAbi() != tc->targetAbi() || m_abiWidget->currentAbi() != tc->targetAbi()
|| Macro::toMacros(m_predefinedDetails->text().toUtf8()) != tc->rawPredefinedMacros() || Macro::toMacros(m_predefinedDetails->text().toUtf8()) != tc->rawPredefinedMacros()
|| m_headerDetails->entries() != tc->headerPathsList() || m_headerDetails->entries() != tc->headerPathsList()

View File

@@ -97,7 +97,7 @@ public:
void setCompilerCommand(const Utils::FileName &); void setCompilerCommand(const Utils::FileName &);
Utils::FileName compilerCommand() const override; Utils::FileName compilerCommand() const override;
void setMakeCommand(const Utils::FileName &); void setMakeCommand(const Utils::FileName &);
QString makeCommand(const Utils::Environment &environment) const override; Utils::FileName makeCommand(const Utils::Environment &environment) const override;
void setCxx11Flags(const QStringList &); void setCxx11Flags(const QStringList &);
const QStringList &cxx11Flags() const; const QStringList &cxx11Flags() const;

View File

@@ -695,11 +695,10 @@ FileNameList GccToolChain::suggestedMkspecList() const
return FileNameList(); return FileNameList();
} }
QString GccToolChain::makeCommand(const Environment &environment) const FileName GccToolChain::makeCommand(const Environment &environment) const
{ {
QString make = "make"; const FileName tmp = environment.searchInPath("make");
FileName tmp = environment.searchInPath(make); return tmp.isEmpty() ? FileName::fromString("make") : tmp;
return tmp.isEmpty() ? make : tmp.toString();
} }
IOutputParser *GccToolChain::outputParser() const IOutputParser *GccToolChain::outputParser() const
@@ -1296,7 +1295,7 @@ QString ClangToolChain::typeDisplayName() const
return ClangToolChainFactory::tr("Clang"); return ClangToolChainFactory::tr("Clang");
} }
QString ClangToolChain::makeCommand(const Environment &environment) const FileName ClangToolChain::makeCommand(const Environment &environment) const
{ {
const QStringList makes const QStringList makes
= HostOsInfo::isWindowsHost() ? QStringList({"mingw32-make.exe", "make.exe"}) : QStringList({"make"}); = HostOsInfo::isWindowsHost() ? QStringList({"mingw32-make.exe", "make.exe"}) : QStringList({"make"});
@@ -1305,9 +1304,9 @@ QString ClangToolChain::makeCommand(const Environment &environment) const
for (const QString &make : makes) { for (const QString &make : makes) {
tmp = environment.searchInPath(make); tmp = environment.searchInPath(make);
if (!tmp.isEmpty()) if (!tmp.isEmpty())
return tmp.toString(); return tmp;
} }
return makes.first(); return FileName::fromString(makes.first());
} }
/** /**
@@ -1639,7 +1638,7 @@ FileNameList MingwToolChain::suggestedMkspecList() const
return FileNameList(); return FileNameList();
} }
QString MingwToolChain::makeCommand(const Environment &environment) const FileName MingwToolChain::makeCommand(const Environment &environment) const
{ {
const QStringList makes const QStringList makes
= HostOsInfo::isWindowsHost() ? QStringList({"mingw32-make.exe", "make.exe"}) : QStringList({"make"}); = HostOsInfo::isWindowsHost() ? QStringList({"mingw32-make.exe", "make.exe"}) : QStringList({"make"});
@@ -1648,9 +1647,9 @@ QString MingwToolChain::makeCommand(const Environment &environment) const
foreach (const QString &make, makes) { foreach (const QString &make, makes) {
tmp = environment.searchInPath(make); tmp = environment.searchInPath(make);
if (!tmp.isEmpty()) if (!tmp.isEmpty())
return tmp.toString(); return tmp;
} }
return makes.first(); return FileName::fromString(makes.first());
} }
ToolChain *MingwToolChain::clone() const ToolChain *MingwToolChain::clone() const

View File

@@ -88,7 +88,7 @@ public:
const Utils::FileName &sysRootPath) const override; const Utils::FileName &sysRootPath) const override;
void addToEnvironment(Utils::Environment &env) const override; void addToEnvironment(Utils::Environment &env) const override;
QString makeCommand(const Utils::Environment &environment) const override; Utils::FileName makeCommand(const Utils::Environment &environment) const override;
Utils::FileNameList suggestedMkspecList() const override; Utils::FileNameList suggestedMkspecList() const override;
IOutputParser *outputParser() const override; IOutputParser *outputParser() const override;
@@ -220,7 +220,7 @@ public:
ClangToolChain(const ClangToolChain &other); ClangToolChain(const ClangToolChain &other);
~ClangToolChain() override; ~ClangToolChain() override;
QString typeDisplayName() const override; QString typeDisplayName() const override;
QString makeCommand(const Utils::Environment &environment) const override; Utils::FileName makeCommand(const Utils::Environment &environment) const override;
Utils::LanguageExtensions languageExtensions(const QStringList &cxxflags) const override; Utils::LanguageExtensions languageExtensions(const QStringList &cxxflags) const override;
WarningFlags warningFlags(const QStringList &cflags) const override; WarningFlags warningFlags(const QStringList &cflags) const override;
@@ -264,7 +264,7 @@ class PROJECTEXPLORER_EXPORT MingwToolChain : public GccToolChain
{ {
public: public:
QString typeDisplayName() const override; QString typeDisplayName() const override;
QString makeCommand(const Utils::Environment &environment) const override; Utils::FileName makeCommand(const Utils::Environment &environment) const override;
ToolChain *clone() const override; ToolChain *clone() const override;

View File

@@ -47,6 +47,7 @@
#include <QThread> #include <QThread>
using namespace Core; using namespace Core;
using namespace Utils;
const char BUILD_TARGETS_SUFFIX[] = ".BuildTargets"; const char BUILD_TARGETS_SUFFIX[] = ".BuildTargets";
const char MAKE_ARGUMENTS_SUFFIX[] = ".MakeArguments"; const char MAKE_ARGUMENTS_SUFFIX[] = ".MakeArguments";
@@ -149,9 +150,9 @@ QString MakeStep::defaultMakeCommand() const
return QString(); return QString();
const Utils::Environment env = environment(bc); const Utils::Environment env = environment(bc);
for (const ToolChain *tc : preferredToolChains(target()->kit())) { for (const ToolChain *tc : preferredToolChains(target()->kit())) {
const QString make = tc->makeCommand(env); FileName make = tc->makeCommand(env);
if (!make.isEmpty()) if (!make.isEmpty())
return make; return make.toString();
} }
return QString(); return QString();
} }

View File

@@ -60,6 +60,8 @@
#include <QComboBox> #include <QComboBox>
#include <QFormLayout> #include <QFormLayout>
using namespace Utils;
#define KEY_ROOT "ProjectExplorer.MsvcToolChain." #define KEY_ROOT "ProjectExplorer.MsvcToolChain."
static const char varsBatKeyC[] = KEY_ROOT "VarsBat"; static const char varsBatKeyC[] = KEY_ROOT "VarsBat";
static const char varsBatArgKeyC[] = KEY_ROOT "VarsBatArg"; static const char varsBatArgKeyC[] = KEY_ROOT "VarsBatArg";
@@ -1239,33 +1241,33 @@ static QString wrappedMakeCommand(const QString &command)
return wrapperPath; return wrapperPath;
} }
QString MsvcToolChain::makeCommand(const Utils::Environment &environment) const FileName MsvcToolChain::makeCommand(const Environment &environment) const
{ {
bool useJom = ProjectExplorerPlugin::projectExplorerSettings().useJom; bool useJom = ProjectExplorerPlugin::projectExplorerSettings().useJom;
const QString jom("jom.exe"); const QString jom("jom.exe");
const QString nmake("nmake.exe"); const QString nmake("nmake.exe");
Utils::FileName tmp; Utils::FileName tmp;
QString command; FileName command;
if (useJom) { if (useJom) {
tmp = environment.searchInPath(jom, tmp = environment.searchInPath(jom,
{Utils::FileName::fromString( {Utils::FileName::fromString(
QCoreApplication::applicationDirPath())}); QCoreApplication::applicationDirPath())});
if (!tmp.isEmpty()) if (!tmp.isEmpty())
command = tmp.toString(); command = tmp;
} }
if (command.isEmpty()) { if (command.isEmpty()) {
tmp = environment.searchInPath(nmake); tmp = environment.searchInPath(nmake);
if (!tmp.isEmpty()) if (!tmp.isEmpty())
command = tmp.toString(); command = tmp;
} }
if (command.isEmpty()) if (command.isEmpty())
command = useJom ? jom : nmake; command = FileName::fromString(useJom ? jom : nmake);
if (environment.hasKey("VSLANG")) if (environment.hasKey("VSLANG"))
return wrappedMakeCommand(command); return FileName::fromString(wrappedMakeCommand(command.toString()));
return command; return command;
} }

View File

@@ -92,7 +92,7 @@ public:
const Utils::FileName &sysRoot) const override; const Utils::FileName &sysRoot) const override;
void addToEnvironment(Utils::Environment &env) const override; void addToEnvironment(Utils::Environment &env) const override;
QString makeCommand(const Utils::Environment &environment) const override; Utils::FileName makeCommand(const Utils::Environment &environment) const override;
Utils::FileName compilerCommand() const override; Utils::FileName compilerCommand() const override;
IOutputParser *outputParser() const override; IOutputParser *outputParser() const override;

View File

@@ -136,7 +136,7 @@ public:
virtual HeaderPaths builtInHeaderPaths(const QStringList &cxxflags, virtual HeaderPaths builtInHeaderPaths(const QStringList &cxxflags,
const Utils::FileName &sysRoot) const = 0; const Utils::FileName &sysRoot) const = 0;
virtual void addToEnvironment(Utils::Environment &env) const = 0; virtual void addToEnvironment(Utils::Environment &env) const = 0;
virtual QString makeCommand(const Utils::Environment &env) const = 0; virtual Utils::FileName makeCommand(const Utils::Environment &env) const = 0;
Core::Id language() const; Core::Id language() const;

View File

@@ -318,7 +318,7 @@ public:
HeaderPaths builtInHeaderPaths(const QStringList &cxxflags, const FileName &sysRoot) const override HeaderPaths builtInHeaderPaths(const QStringList &cxxflags, const FileName &sysRoot) const override
{ Q_UNUSED(cxxflags); Q_UNUSED(sysRoot); return {}; } { Q_UNUSED(cxxflags); Q_UNUSED(sysRoot); return {}; }
void addToEnvironment(Environment &env) const override { Q_UNUSED(env); } void addToEnvironment(Environment &env) const override { Q_UNUSED(env); }
QString makeCommand(const Environment &env) const override { Q_UNUSED(env); return QString("make"); } FileName makeCommand(const Environment &) const override { return FileName::fromString("make"); }
FileName compilerCommand() const override { return Utils::FileName::fromString("/tmp/test/gcc"); } FileName compilerCommand() const override { return Utils::FileName::fromString("/tmp/test/gcc"); }
IOutputParser *outputParser() const override { return nullptr; } IOutputParser *outputParser() const override { return nullptr; }
std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override { return nullptr; } std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() override { return nullptr; }

View File

@@ -510,7 +510,7 @@ QString PuppetCreator::buildCommand() const
ProjectExplorer::Constants::CXX_LANGUAGE_ID); ProjectExplorer::Constants::CXX_LANGUAGE_ID);
if (toolChain) if (toolChain)
return toolChain->makeCommand(environment); return toolChain->makeCommand(environment).toString();
return QString(); return QString();
} }