diff options
author | Christian Kandeler <[email protected]> | 2022-06-13 16:52:52 +0200 |
---|---|---|
committer | Christian Kandeler <[email protected]> | 2022-06-15 08:43:59 +0000 |
commit | 71b914b82865adeb562aa48d5d1011498627d94c (patch) | |
tree | f539f3c3230d842ab5edb18bf48e5f3c6929011a /src/plugins/clangcodemodel/clangcodemodelplugin.cpp | |
parent | 56e838da70c55a881fabda25e34e4aede1dfe9c8 (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.cpp | 11 |
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()); |