From 01e80b264bcf1d6345b381b83247c5478c8e08b5 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Wed, 18 Jan 2017 11:35:50 +0100 Subject: [PATCH] CMake: Put cmake server-mode socket into a temporary directory Do not put the cmake server-mode socket into the build directory, but put it into a temporary directory instead. This makes sure it will not stick around and also avoids polluting the build directory with Qt Creator specific files. Task-number: QTCREATORBUG-17320 Change-Id: Id849b1a80d7cba07c026cc2ecd7030435c401884 Reviewed-by: Tim Jenssen --- src/plugins/cmakeprojectmanager/servermode.cpp | 13 +++++++------ .../cmakeprojectmanager/servermodereader.cpp | 9 --------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/servermode.cpp b/src/plugins/cmakeprojectmanager/servermode.cpp index c07af0d1a55..24d0253354e 100644 --- a/src/plugins/cmakeprojectmanager/servermode.cpp +++ b/src/plugins/cmakeprojectmanager/servermode.cpp @@ -25,11 +25,13 @@ #include "servermode.h" +#include #include #include #include #include +#include #include #include @@ -61,13 +63,12 @@ Q_LOGGING_CATEGORY(cmakeServerMode, "qtc.cmake.serverMode"); // Helpers: // ---------------------------------------------------------------------- -QString socketName(const Utils::FileName &buildDirectory) +QString socketName() { - if (HostOsInfo::isWindowsHost()) { - QUuid uuid = QUuid::createUuid(); + QUuid uuid = QUuid::createUuid(); + if (HostOsInfo::isWindowsHost()) return "\\\\.\\pipe\\" + uuid.toString(); - } - return buildDirectory.toString() + "/socket"; + return Utils::TemporaryDirectory::masterDirectoryPath() + "/cmake-socket-" + uuid.toString(); } bool isValid(const QVariant &v) @@ -108,7 +109,7 @@ ServerMode::ServerMode(const Environment &env, m_cmakeProcess->setEnvironment(env); m_cmakeProcess->setWorkingDirectory(buildDirectory.toString()); - m_socketName = socketName(buildDirectory); + m_socketName = socketName(); const QStringList args = QStringList({ "-E", "server", "--pipe=" + m_socketName }); connect(m_cmakeProcess.get(), &QtcProcess::started, this, [this]() { m_connectionTimer.start(); }); diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index fbfd2e057d1..81985a69763 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -62,15 +62,6 @@ const char SOURCES_KEY[] = "sources"; const int MAX_PROGRESS = 1400; -// ---------------------------------------------------------------------- -// Helpers: -// ---------------------------------------------------------------------- - -QString socketName(const BuildDirReader::Parameters &p) -{ - return p.buildDirectory.toString() + "/socket"; -} - // -------------------------------------------------------------------- // ServerModeReader: // --------------------------------------------------------------------