blob: 0ece2caaba67a805144ace9b9c3b4fb46704d381 [file] [log] [blame] [edit]
diff -Naur pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
--- pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp 2020-05-26 10:58:24.000000000 -0700
+++ pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp 2020-07-29 10:37:03.275443600 -0700
@@ -410,6 +410,14 @@
{
clang::Builder builder;
builder.setSystemIncludes(TypeDatabase::instance()->systemIncludes());
+#ifdef Q_CC_MINGW
+ auto includePaths = clang::emulatedSystemIncludePaths();
+ std::transform(includePaths.begin(), includePaths.end(), includePaths.begin(),
+ [](QByteArray filename) { // to forward slashes
+ return QFile::encodeName(QDir::cleanPath(QFile::decodeName(filename)));
+ });
+ builder.setSystemIncludePaths(includePaths);
+#endif
if (level == LanguageLevel::Default)
level = clang::emulatedCompilerLanguageLevel();
arguments.prepend(QByteArrayLiteral("-std=")
diff -Naur pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp
--- pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp 2020-05-26 10:58:24.000000000 -0700
+++ pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp 2020-07-29 10:59:22.454320100 -0700
@@ -828,7 +828,8 @@
// Has been observed to be 0 for invalid locations
bool result = false;
if (const char *cFileName = clang_getCString(cxFileName)) {
- result = d->visitHeader(cFileName);
+ QString absoluteFileName = QDir::cleanPath(QString::fromUtf8(cFileName));
+ result = d->visitHeader(absoluteFileName.toUtf8().constData());
clang_disposeString(cxFileName);
}
return result;
@@ -844,6 +845,11 @@
}
}
+void Builder::setSystemIncludePaths(const QByteArrayList &systemIncludePaths)
+{
+ d->m_systemIncludePaths.append(systemIncludePaths);
+}
+
FileModelItem Builder::dom() const
{
Q_ASSERT(!d->m_scopeStack.isEmpty());
diff -Naur pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.h pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.h
--- pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.h 2020-05-26 10:58:24.000000000 -0700
+++ pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.h 2020-07-29 07:42:28.465778700 -0700
@@ -45,6 +45,7 @@
~Builder();
void setSystemIncludes(const QByteArrayList &systemIncludes);
+ void setSystemIncludePaths(const QByteArrayList &systemIncludePaths);
bool visitLocation(const CXSourceLocation &location) const override;
diff -Naur pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp
--- pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp 2020-05-26 10:58:24.000000000 -0700
+++ pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp 2020-07-29 07:44:21.186726500 -0700
@@ -401,4 +401,15 @@
return LanguageLevel::Default;
}
+QByteArrayList emulatedSystemIncludePaths()
+{
+ HeaderPaths headerPaths = gppInternalIncludePaths(compilerFromCMake(QStringLiteral("clang++")));
+ QByteArrayList result;
+ std::transform(headerPaths.cbegin(), headerPaths.cend(),
+ std::back_inserter(result), [](const HeaderPath& path) {
+ return path.path;
+ });
+ return result;
+}
+
} // namespace clang
diff -Naur pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/clangparser/compilersupport.h pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/clangparser/compilersupport.h
--- pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/clangparser/compilersupport.h 2020-05-26 10:58:24.000000000 -0700
+++ pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/clangparser/compilersupport.h 2020-07-29 07:29:43.909862800 -0700
@@ -46,6 +46,7 @@
QVersionNumber libClangVersion();
QByteArrayList emulatedCompilerOptions();
+QByteArrayList emulatedSystemIncludePaths();
LanguageLevel emulatedCompilerLanguageLevel();
const char *languageLevelOption(LanguageLevel l);
diff -Naur pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/reporthandler.cpp pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/reporthandler.cpp
--- pyside-setup-opensource-src-5.15.0/sources/shiboken2/ApiExtractor/reporthandler.cpp 2020-05-26 10:58:24.000000000 -0700
+++ pyside-setup-opensource-src-5.15.0-patched/sources/shiboken2/ApiExtractor/reporthandler.cpp 2020-07-28 08:42:08.462697500 -0700
@@ -35,7 +35,7 @@
#include <cstdarg>
#include <cstdio>
-#if defined(_WINDOWS) || defined(NOCOLOR)
+#if defined(Q_OS_WIN) || defined(NOCOLOR)
#define COLOR_END ""
#define COLOR_WHITE ""
#define COLOR_YELLOW ""