CMakePM: Always create build directories

Having two configurations for a project, one in /tmp and one in the
right build directory is confusing and for big projects can take some
time.

Fixes: QTCREATORBUG-25532
Change-Id: Ib0dad267117b3c025d668646ef076b0f77bff166
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Cristian Adam
2021-06-09 15:08:13 +02:00
parent 4465fd06ae
commit 0e613918b6
8 changed files with 42 additions and 110 deletions

View File

@@ -86,8 +86,8 @@ void CMakeProcess::run(const BuildDirParameters &parameters, const QStringList &
CMakeTool *cmake = parameters.cmakeTool();
QTC_ASSERT(parameters.isValid() && cmake, return);
const Utils::FilePath workDirectory = parameters.workDirectory;
QTC_ASSERT(workDirectory.exists(), return);
const Utils::FilePath buildDirectory = parameters.buildDirectory;
QTC_ASSERT(buildDirectory.exists(), return);
const QString srcDir = parameters.sourceDirectory.path();
@@ -103,7 +103,7 @@ void CMakeProcess::run(const BuildDirParameters &parameters, const QStringList &
m_cancelTimer.start();
process->setWorkingDirectory(workDirectory);
process->setWorkingDirectory(buildDirectory);
process->setEnvironment(parameters.environment);
connect(process.get(), &QtcProcess::readyReadStandardOutput,
@@ -113,12 +113,12 @@ void CMakeProcess::run(const BuildDirParameters &parameters, const QStringList &
connect(process.get(), &QtcProcess::finished,
this, &CMakeProcess::handleProcessFinished);
CommandLine commandLine(cmake->cmakeExecutable(), QStringList({"-S", srcDir, "-B", workDirectory.path()}) + arguments);
CommandLine commandLine(cmake->cmakeExecutable(), QStringList({"-S", srcDir, "-B", buildDirectory.path()}) + arguments);
TaskHub::clearTasks(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM);
BuildSystem::startNewBuildSystemOutput(
tr("Running %1 in %2.").arg(commandLine.toUserOutput()).arg(workDirectory.toUserOutput()));
tr("Running %1 in %2.").arg(commandLine.toUserOutput()).arg(buildDirectory.toUserOutput()));
auto future = std::make_unique<QFutureInterface<void>>();
future->setProgressRange(0, 1);