forked from qt-creator/qt-creator
Docker: Map build directory to device in cmake calls
Change-Id: Ibcd2e1aebac337e880a28a2a22b35d8ca60b6dcf Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -35,6 +35,7 @@
|
||||
#include <coreplugin/find/itemviewfind.h>
|
||||
#include <projectexplorer/buildsteplist.h>
|
||||
#include <projectexplorer/gnumakeparser.h>
|
||||
#include <projectexplorer/kitinformation.h>
|
||||
#include <projectexplorer/processparameters.h>
|
||||
#include <projectexplorer/project.h>
|
||||
#include <projectexplorer/projectexplorer.h>
|
||||
@@ -376,13 +377,15 @@ void CMakeBuildStep::setBuildTargets(const QStringList &buildTargets)
|
||||
|
||||
CommandLine CMakeBuildStep::cmakeCommand() const
|
||||
{
|
||||
CMakeTool *tool = CMakeKitAspect::cmakeTool(kit());
|
||||
CommandLine cmd;
|
||||
if (CMakeTool *tool = CMakeKitAspect::cmakeTool(kit()))
|
||||
cmd.setExecutable(tool->cmakeExecutable());
|
||||
|
||||
CommandLine cmd(tool ? tool->cmakeExecutable() : FilePath(), {});
|
||||
QString buildDirectory = ".";
|
||||
FilePath buildDirectory = ".";
|
||||
if (buildConfiguration())
|
||||
buildDirectory = buildConfiguration()->buildDirectory().path();
|
||||
cmd.addArgs({"--build", buildDirectory});
|
||||
buildDirectory = buildConfiguration()->buildDirectory();
|
||||
|
||||
cmd.addArgs({"--build", buildDirectory.onDevice(cmd.executable()).path()});
|
||||
|
||||
cmd.addArg("--target");
|
||||
cmd.addArgs(Utils::transform(m_buildTargets, [this](const QString &s) {
|
||||
|
||||
@@ -72,7 +72,11 @@ void CMakeProcess::run(const BuildDirParameters ¶meters, const QStringList &
|
||||
CMakeTool *cmake = parameters.cmakeTool();
|
||||
QTC_ASSERT(parameters.isValid() && cmake, return);
|
||||
|
||||
const FilePath buildDirectory = parameters.buildDirectory;
|
||||
const FilePath cmakeExecutable = cmake->cmakeExecutable();
|
||||
|
||||
const FilePath sourceDirectory = parameters.sourceDirectory.onDevice(cmakeExecutable);
|
||||
const FilePath buildDirectory = parameters.buildDirectory.onDevice(cmakeExecutable);
|
||||
|
||||
if (!buildDirectory.exists()) {
|
||||
QString msg = tr("The build directory \"%1\" does not exist")
|
||||
.arg(buildDirectory.toUserOutput());
|
||||
@@ -119,12 +123,8 @@ void CMakeProcess::run(const BuildDirParameters ¶meters, const QStringList &
|
||||
connect(process.get(), &QtcProcess::finished,
|
||||
this, &CMakeProcess::handleProcessFinished);
|
||||
|
||||
const FilePath cmakeExecutable = cmake->cmakeExecutable();
|
||||
const FilePath sourceDirectory = parameters.sourceDirectory.onDevice(cmakeExecutable);
|
||||
|
||||
CommandLine commandLine(cmakeExecutable);
|
||||
commandLine.addArgs({"-S", sourceDirectory.mapToDevicePath(),
|
||||
"-B", buildDirectory.mapToDevicePath()});
|
||||
commandLine.addArgs({"-S", sourceDirectory.path(), "-B", buildDirectory.path()});
|
||||
commandLine.addArgs(arguments);
|
||||
|
||||
TaskHub::clearTasks(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM);
|
||||
|
||||
@@ -140,11 +140,12 @@ MakeInstallCommand CMakeProject::makeInstallCommand(const Target *target,
|
||||
config << "--config" << bc->cmakeBuildType();
|
||||
}
|
||||
|
||||
QString buildDirectory = ".";
|
||||
FilePath buildDirectory = ".";
|
||||
if (bc)
|
||||
buildDirectory = bc->buildDirectory().toString();
|
||||
buildDirectory = bc->buildDirectory();
|
||||
|
||||
cmd.arguments << "--build" << buildDirectory << "--target" << installTarget << config;
|
||||
cmd.arguments << "--build" << buildDirectory.onDevice(cmd.command).mapToDevicePath()
|
||||
<< "--target" << installTarget << config;
|
||||
|
||||
cmd.environment.set("DESTDIR", QDir::toNativeSeparators(installRoot));
|
||||
return cmd;
|
||||
|
||||
Reference in New Issue
Block a user