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();
pp->setMacroExpander(bc->macroExpander());
pp->setWorkingDirectory(bc->buildDirectory().toString());
pp->setCommand(tc->makeCommand(bc->environment()));
pp->setCommand(tc->makeCommand(bc->environment()).toString());
Environment env = bc->environment();
Environment::setupEnglishOutput(&env);
pp->setEnvironment(env);

View File

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

View File

@@ -45,7 +45,7 @@ public:
Utils::FileName suggestedDebugger() const override;
Utils::FileName suggestedGdbServer() const;
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;
protected:

View File

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

View File

@@ -81,7 +81,7 @@ public:
void setCompilerCommand(const Utils::FileName &file);
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;

View File

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

View File

@@ -81,7 +81,7 @@ public:
void setCompilerCommand(const Utils::FileName &file);
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;

View File

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

View File

@@ -81,7 +81,7 @@ public:
void setCompilerCommand(const Utils::FileName &file);
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;

View File

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

View File

@@ -49,7 +49,7 @@ public:
ProjectExplorer::HeaderPaths builtInHeaderPaths(const QStringList &flags,
const Utils::FileName &sysRoot) 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;
QString compilerVersion() const;
void setCompilerCommand(const Utils::FileName &compilerCommand);

View File

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

View File

@@ -97,7 +97,7 @@ public:
void setCompilerCommand(const Utils::FileName &);
Utils::FileName compilerCommand() const override;
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 &);
const QStringList &cxx11Flags() const;

View File

@@ -695,11 +695,10 @@ FileNameList GccToolChain::suggestedMkspecList() const
return FileNameList();
}
QString GccToolChain::makeCommand(const Environment &environment) const
FileName GccToolChain::makeCommand(const Environment &environment) const
{
QString make = "make";
FileName tmp = environment.searchInPath(make);
return tmp.isEmpty() ? make : tmp.toString();
const FileName tmp = environment.searchInPath("make");
return tmp.isEmpty() ? FileName::fromString("make") : tmp;
}
IOutputParser *GccToolChain::outputParser() const
@@ -1296,7 +1295,7 @@ QString ClangToolChain::typeDisplayName() const
return ClangToolChainFactory::tr("Clang");
}
QString ClangToolChain::makeCommand(const Environment &environment) const
FileName ClangToolChain::makeCommand(const Environment &environment) const
{
const QStringList makes
= 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) {
tmp = environment.searchInPath(make);
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();
}
QString MingwToolChain::makeCommand(const Environment &environment) const
FileName MingwToolChain::makeCommand(const Environment &environment) const
{
const QStringList makes
= 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) {
tmp = environment.searchInPath(make);
if (!tmp.isEmpty())
return tmp.toString();
return tmp;
}
return makes.first();
return FileName::fromString(makes.first());
}
ToolChain *MingwToolChain::clone() const

View File

@@ -88,7 +88,7 @@ public:
const Utils::FileName &sysRootPath) 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;
IOutputParser *outputParser() const override;
@@ -220,7 +220,7 @@ public:
ClangToolChain(const ClangToolChain &other);
~ClangToolChain() 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;
WarningFlags warningFlags(const QStringList &cflags) const override;
@@ -264,7 +264,7 @@ class PROJECTEXPLORER_EXPORT MingwToolChain : public GccToolChain
{
public:
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;

View File

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

View File

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

View File

@@ -92,7 +92,7 @@ public:
const Utils::FileName &sysRoot) 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;
IOutputParser *outputParser() const override;

View File

@@ -136,7 +136,7 @@ public:
virtual HeaderPaths builtInHeaderPaths(const QStringList &cxxflags,
const Utils::FileName &sysRoot) 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;

View File

@@ -318,7 +318,7 @@ public:
HeaderPaths builtInHeaderPaths(const QStringList &cxxflags, const FileName &sysRoot) const override
{ Q_UNUSED(cxxflags); Q_UNUSED(sysRoot); return {}; }
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"); }
IOutputParser *outputParser() const 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);
if (toolChain)
return toolChain->makeCommand(environment);
return toolChain->makeCommand(environment).toString();
return QString();
}