summaryrefslogtreecommitdiff
path: root/src/tools/clangpchmanagerbackend
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2019-01-30 09:07:45 +0100
committerIvan Donchevskii <ivan.donchevskii@qt.io>2019-02-07 07:45:24 +0000
commit7d64c9e3ec9988bc0f88cd847677174c3a974aad (patch)
tree0ccdfcbbecfe1d60967b06a681335f1d7a595a6b /src/tools/clangpchmanagerbackend
parentf369556dca7da4e73f76f5ed15dbc95f3fc0a2ce (diff)
downloadqt-creator-7d64c9e3ec9988bc0f88cd847677174c3a974aad.tar.gz
Clang: Fix some issues with running indexer over Qt Creator
- fix qDebug channels on Windows - fix the number of perameters in the sql statement - fix nullptr access - speed up preprocessor a little bit Change-Id: Ic9b32fbcc6b409c4064c4f522b94391cbff8654e Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Diffstat (limited to 'src/tools/clangpchmanagerbackend')
-rw-r--r--src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp13
-rw-r--r--src/tools/clangpchmanagerbackend/source/collectbuilddependencyaction.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp
index 5c38a3d841..c4e8e085ce 100644
--- a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp
+++ b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp
@@ -55,6 +55,7 @@
#include <QTemporaryDir>
#include <QTimer>
#include <chrono>
+#include <iostream>
#include <thread>
using namespace std::chrono_literals;
@@ -214,8 +215,20 @@ struct Data // because we have a cycle dependency
ClangBackEnd::CallDoInMainThreadAfterFinished::Yes};
};
+#ifdef Q_OS_WIN
+static void messageOutput(QtMsgType type, const QMessageLogContext &, const QString &msg)
+{
+ std::wcout << msg.toStdWString() << std::endl;
+ if (type == QtFatalMsg)
+ abort();
+}
+#endif
+
int main(int argc, char *argv[])
{
+#ifdef Q_OS_WIN
+ qInstallMessageHandler(messageOutput);
+#endif
try {
QCoreApplication::setOrganizationName(QStringLiteral("QtProject"));
QCoreApplication::setOrganizationDomain(QStringLiteral("qt-project.org"));
diff --git a/src/tools/clangpchmanagerbackend/source/collectbuilddependencyaction.h b/src/tools/clangpchmanagerbackend/source/collectbuilddependencyaction.h
index ff861f174f..03d27f9b21 100644
--- a/src/tools/clangpchmanagerbackend/source/collectbuilddependencyaction.h
+++ b/src/tools/clangpchmanagerbackend/source/collectbuilddependencyaction.h
@@ -58,6 +58,7 @@ public:
auto &preprocessor = compilerInstance.getPreprocessor();
preprocessor.SetSuppressIncludeNotFoundError(true);
+ preprocessor.SetMacroExpansionOnlyInDirectives();
auto macroPreprocessorCallbacks = new CollectBuildDependencyPreprocessorCallbacks(
m_buildDependency,