diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 664155a2885..c2e4cdce080 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -123,7 +123,7 @@ MakeInstallCommand CMakeProject::makeInstallCommand(const Target *target, if (const BuildConfiguration * const bc = target->activeBuildConfiguration()) { if (const auto cmakeStep = bc->buildSteps()->firstOfType()) { if (CMakeTool *tool = CMakeKitAspect::cmakeTool(target->kit())) - cmd.command = tool->cmakeExecutable(); + cmd.command.setExecutable(tool->cmakeExecutable()); } } @@ -142,8 +142,11 @@ MakeInstallCommand CMakeProject::makeInstallCommand(const Target *target, if (auto bc = bs->buildConfiguration()) buildDirectory = bc->buildDirectory(); - cmd.arguments << "--build" << buildDirectory.onDevice(cmd.command).path() - << "--target" << installTarget << config; + cmd.command.addArg("--build"); + cmd.command.addArg(buildDirectory.onDevice(cmd.command.executable()).path()); + cmd.command.addArg("--target"); + cmd.command.addArg(installTarget); + cmd.command.addArgs(config); cmd.environment.set("DESTDIR", QDir::toNativeSeparators(installRoot)); return cmd; diff --git a/src/plugins/projectexplorer/deploymentdata.h b/src/plugins/projectexplorer/deploymentdata.h index 9a5ae43a633..22bfc4bae57 100644 --- a/src/plugins/projectexplorer/deploymentdata.h +++ b/src/plugins/projectexplorer/deploymentdata.h @@ -28,6 +28,7 @@ #include "deployablefile.h" #include "projectexplorer_export.h" +#include #include #include @@ -39,8 +40,7 @@ enum class DeploymentKnowledge { Perfect, Approximative, Bad }; class PROJECTEXPLORER_EXPORT MakeInstallCommand { public: - Utils::FilePath command; - QStringList arguments; + Utils::CommandLine command; Utils::Environment environment; }; diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index 020f04508e3..25022df35df 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -977,9 +977,10 @@ MakeInstallCommand Project::makeInstallCommand(const Target *target, const QStri MakeInstallCommand cmd; if (const BuildConfiguration * const bc = target->activeBuildConfiguration()) { if (const auto makeStep = bc->buildSteps()->firstOfType()) - cmd.command = makeStep->makeExecutable(); + cmd.command.setExecutable(makeStep->makeExecutable()); } - cmd.arguments << "install" << ("INSTALL_ROOT=" + QDir::toNativeSeparators(installRoot)); + cmd.command.addArg("install"); + cmd.command.addArg("INSTALL_ROOT=" + QDir::toNativeSeparators(installRoot)); return cmd; } diff --git a/src/plugins/remotelinux/makeinstallstep.cpp b/src/plugins/remotelinux/makeinstallstep.cpp index 732b29bfb13..20d1a59fc09 100644 --- a/src/plugins/remotelinux/makeinstallstep.cpp +++ b/src/plugins/remotelinux/makeinstallstep.cpp @@ -120,7 +120,7 @@ MakeInstallStep::MakeInstallStep(BuildStepList *parent, Id id) : MakeStep(parent installRootAspect->setFilePath(FilePath::fromString(tmpDir.path())); const MakeInstallCommand cmd = target()->makeInstallCommand(tmpDir.path()); QTC_ASSERT(!cmd.command.isEmpty(), return); - makeAspect->setExecutable(cmd.command); + makeAspect->setExecutable(cmd.command.executable()); } Utils::Id MakeInstallStep::stepId() @@ -254,9 +254,9 @@ void MakeInstallStep::updateArgsFromAspect() { if (customCommandLineAspect()->isChecked()) return; - setUserArguments(ProcessArgs::joinArgs(target()->makeInstallCommand( - static_cast(aspect(InstallRootAspectId))->filePath().toString()) - .arguments)); + + const CommandLine cmd = target()->makeInstallCommand(installRoot().toString()).command; + setUserArguments(cmd.arguments()); updateFullCommandLine(); }