aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangcodemodel/clangcodemodelplugin.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <[email protected]>2022-06-13 16:52:52 +0200
committerChristian Kandeler <[email protected]>2022-06-15 08:43:59 +0000
commit71b914b82865adeb562aa48d5d1011498627d94c (patch)
treef539f3c3230d842ab5edb18bf48e5f3c6929011a /src/plugins/clangcodemodel/clangcodemodelplugin.cpp
parent56e838da70c55a881fabda25e34e4aede1dfe9c8 (diff)
ClangCodeModel: Do not dump compile_commands.json into project dir
We can't know if it's safe to put there; e.g. we might overwrite an existing one. Fixes: QTCREATORBUG-27573 Change-Id: I928408996759aaccb84332fcf95cf43d7f3bf083 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: <[email protected]> Reviewed-by: Christian Stenger <[email protected]>
Diffstat (limited to 'src/plugins/clangcodemodel/clangcodemodelplugin.cpp')
-rw-r--r--src/plugins/clangcodemodel/clangcodemodelplugin.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp
index 3b26d7b82c7..675ee4e0e93 100644
--- a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp
+++ b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp
@@ -34,8 +34,6 @@
# include "test/clangfixittest.h"
#endif
-#include <utils/runextensions.h>
-
#include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/messagemanager.h>
@@ -45,6 +43,7 @@
#include <cppeditor/cppmodelmanager.h>
#include <projectexplorer/buildconfiguration.h>
+#include <projectexplorer/project.h>
#include <projectexplorer/projectpanelfactory.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/session.h>
@@ -53,6 +52,9 @@
#include <texteditor/textmark.h>
+#include <utils/temporarydirectory.h>
+#include <utils/runextensions.h>
+
using namespace Utils;
namespace ClangCodeModel {
@@ -69,10 +71,13 @@ void ClangCodeModelPlugin::generateCompilationDB()
const auto projectInfo = CppModelManager::instance()->projectInfo(target->project());
if (!projectInfo)
return;
+ FilePath baseDir = projectInfo->buildRoot();
+ if (baseDir == target->project()->projectDirectory())
+ baseDir = TemporaryDirectory::masterDirectoryFilePath();
QFuture<GenerateCompilationDbResult> task
= Utils::runAsync(&Internal::generateCompilationDB, projectInfo,
- projectInfo->buildRoot(), CompilationDbPurpose::Project,
+ baseDir, CompilationDbPurpose::Project,
warningsConfigForProject(target->project()),
globalClangOptions(),
FilePath());