mirror of
https://github.com/TagStudioDev/TagStudio.git
synced 2026-03-09 16:36:15 +00:00
fix(nix/package): override PySide6 if later version is being used (#917)
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
wrapGAppsHook,
|
||||
|
||||
pillow-jxl-plugin,
|
||||
pyside6,
|
||||
vtf2img,
|
||||
|
||||
withJXLSupport ? false,
|
||||
|
||||
81
nix/package/shiboken6-fix-include-qt-headers.patch
Normal file
81
nix/package/shiboken6-fix-include-qt-headers.patch
Normal file
@@ -0,0 +1,81 @@
|
||||
Sourced from https://github.com/NixOS/nixpkgs/blob/5ba0f1ea90b0afa2abc23a43edb63af51d932e6d/pkgs/development/python-modules/shiboken6/fix-include-qt-headers.patch.
|
||||
--- a/ApiExtractor/clangparser/compilersupport.cpp
|
||||
+++ b/ApiExtractor/clangparser/compilersupport.cpp
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <QtCore/QStandardPaths>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QVersionNumber>
|
||||
+#include <QtCore/QRegularExpression>
|
||||
|
||||
#include <clang-c/Index.h>
|
||||
|
||||
@@ -341,6 +342,13 @@ QByteArrayList emulatedCompilerOptions()
|
||||
{
|
||||
QByteArrayList result;
|
||||
HeaderPaths headerPaths;
|
||||
+
|
||||
+ bool isNixDebug = qgetenv("NIX_DEBUG").toInt() > 0;
|
||||
+ // examples:
|
||||
+ // /nix/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-qtsensors-6.4.2-dev/include
|
||||
+ // /nix/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-qtbase-6.4.2-dev/include
|
||||
+ QRegularExpression qtHeaderRegex(uR"(/[0-9a-z]{32}-qt[a-z0-9]+-)"_s);
|
||||
+
|
||||
switch (compiler()) {
|
||||
case Compiler::Msvc:
|
||||
result.append(QByteArrayLiteral("-fms-compatibility-version=19.26.28806"));
|
||||
@@ -352,9 +360,30 @@ QByteArrayList emulatedCompilerOptions()
|
||||
appendClangBuiltinIncludes(&headerPaths);
|
||||
break;
|
||||
case Compiler::Clang:
|
||||
- headerPaths.append(gppInternalIncludePaths(compilerFromCMake(u"clang++"_s)));
|
||||
+ // fix: error: cannot jump from switch statement to this case label: case Compiler::Gpp
|
||||
+ // note: jump bypasses variable initialization: const HeaderPaths clangPaths =
|
||||
+ {
|
||||
+ //headerPaths.append(gppInternalIncludePaths(compilerFromCMake(u"clang++"_s)));
|
||||
+ // fix: qt.shiboken: x is specified in typesystem, but not defined. This could potentially lead to compilation errors.
|
||||
+ // PySide requires that Qt headers are not -isystem
|
||||
+ // https://bugreports.qt.io/browse/PYSIDE-787
|
||||
+ const HeaderPaths clangPaths = gppInternalIncludePaths(compilerFromCMake(u"clang++"_qs));
|
||||
+ for (const HeaderPath &h : clangPaths) {
|
||||
+ auto match = qtHeaderRegex.match(QString::fromUtf8(h.path));
|
||||
+ if (!match.hasMatch()) {
|
||||
+ if (isNixDebug)
|
||||
+ qDebug() << "shiboken compilersupport.cpp: found non-qt header: " << h.path;
|
||||
+ // add using -isystem
|
||||
+ headerPaths.append(h);
|
||||
+ } else {
|
||||
+ if (isNixDebug)
|
||||
+ qDebug() << "shiboken compilersupport.cpp: found qt header: " << h.path;
|
||||
+ headerPaths.append({h.path, HeaderType::Standard});
|
||||
+ }
|
||||
+ }
|
||||
result.append(noStandardIncludeOption());
|
||||
break;
|
||||
+ }
|
||||
case Compiler::Gpp:
|
||||
if (needsClangBuiltinIncludes())
|
||||
appendClangBuiltinIncludes(&headerPaths);
|
||||
@@ -363,8 +392,20 @@ QByteArrayList emulatedCompilerOptions()
|
||||
// <type_traits> etc (g++ 11.3).
|
||||
const HeaderPaths gppPaths = gppInternalIncludePaths(compilerFromCMake(u"g++"_qs));
|
||||
for (const HeaderPath &h : gppPaths) {
|
||||
- if (h.path.contains("c++") || h.path.contains("sysroot"))
|
||||
+ // fix: qt.shiboken: x is specified in typesystem, but not defined. This could potentially lead to compilation errors.
|
||||
+ // PySide requires that Qt headers are not -isystem
|
||||
+ // https://bugreports.qt.io/browse/PYSIDE-787
|
||||
+ auto match = qtHeaderRegex.match(QString::fromUtf8(h.path));
|
||||
+ if (!match.hasMatch()) {
|
||||
+ if (isNixDebug)
|
||||
+ qDebug() << "shiboken compilersupport.cpp: found non-qt header: " << h.path;
|
||||
+ // add using -isystem
|
||||
headerPaths.append(h);
|
||||
+ } else {
|
||||
+ if (isNixDebug)
|
||||
+ qDebug() << "shiboken compilersupport.cpp: found qt header: " << h.path;
|
||||
+ headerPaths.append({h.path, HeaderType::Standard});
|
||||
+ }
|
||||
}
|
||||
break;
|
||||
}
|
||||
--
|
||||
2.39.0
|
||||
Reference in New Issue
Block a user