From a1d22fd2f79afab8b2379f6d93bcb417b9c8e7d5 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Fri, 1 Nov 2019 13:29:35 +0100 Subject: CppTools: Fix code model for Clang builds If you build Qt Creator with CMake version 3.16, you will have precompile headers which will break code model. Change-Id: I679936faed39ecfedb9ebb5fb553449a9f5ea29d Reviewed-by: Nikolai Kosjar --- src/plugins/cpptools/compileroptionsbuilder.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/plugins/cpptools/compileroptionsbuilder.cpp') diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index aafcd35b37..ee534757ea 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -329,9 +329,14 @@ void CompilerOptionsBuilder::addPrecompiledHeaderOptions(UsePrecompiledHeaders u for (const QString &pchFile : m_projectPart.precompiledHeaders) { // Bail if build system precomiple header artifacts exists // Clang cannot handle foreign PCH files. - if (QFile::exists(pchFile + ".gch") || QFile::exists(pchFile + ".pch")) + if (QFile::exists(pchFile + ".gch") || QFile::exists(pchFile + ".pch")) { usePrecompiledHeaders = UsePrecompiledHeaders::No; + // In case of Clang compilers, remove the pch-inclusion arguments + remove({"-Xclang", "-include-pch", "-Xclang", pchFile + ".gch"}); + remove({"-Xclang", "-include-pch", "-Xclang", pchFile + ".pch"}); + } + if (usePrecompiledHeaders == UsePrecompiledHeaders::No) { // CMake PCH will already have force included the header file in // command line options, remove it if exists. -- cgit v1.2.1