webkit: add genbindings support

This commit is contained in:
mappu 2024-11-26 22:31:23 +13:00
parent 96bdaffef0
commit db5fadaeb7
3 changed files with 34 additions and 0 deletions

View File

@ -34,6 +34,14 @@ func InsertTypedefs(qt6 bool) {
KnownTypedefs["QFileDevice::Permissions"] = lookupResultTypedef{pp, CppTypedef{"QFile::Permissions", parseSingleTypeString("QFlags<QFileDevice::Permission>")}}
KnownTypedefs["QIODevice::OpenMode"] = lookupResultTypedef{pp, CppTypedef{"QIODevice::OpenMode", parseSingleTypeString("QIODeviceBase::OpenMode")}}
// Qt 5 WebKit - use of an empty enum (should be possible to support?)
KnownEnums["QWebPluginFactory::Extension"] = lookupResultEnum{"qt/webkit", CppEnum{
EnumName: "QWebPluginFactory::Extension",
UnderlyingType: CppParameter{
ParameterType: "int",
},
}}
if qt6 {
// Qt 6 QVariant helper types - needs investigation
KnownTypedefs["QVariantHash"] = lookupResultTypedef{"qt6", CppTypedef{"QVariantHash", parseSingleTypeString("QHash<QString,QVariant>")}}
@ -231,6 +239,14 @@ func AllowVirtualForClass(className string) bool {
return false
}
// Qt 5 QWebkit: undefined reference to typeinfo
if className == "QWebNotificationPresenter" {
return false
}
if className == "QWebHapticFeedbackPlayer" {
return false
}
return true
}
@ -492,6 +508,8 @@ func AllowType(p CppParameter, isReturnType bool) error {
"QPostEventList", // Qt QCoreApplication: private headers required
"QMetaCallEvent", // ..
"QPostEvent", // ..
"QWebFrameAdapter", // Qt 5 Webkit: Used by e.g. qwebframe.h but never defined anywhere
"QWebPageAdapter", // ...
"____last____":
return ErrTooComplex
}

View File

@ -114,6 +114,21 @@ func ProcessLibraries(clangBin, outDir, extraLibsDir string) {
ClangMatchSameHeaderDefinitionOnly,
)
// Qt 5 QWebkit: depends on Qt5PrintSupport but only at runtime, not at
// codegen time
generate(
"qt/webkit",
[]string{
"/usr/include/x86_64-linux-gnu/qt5/QtWebKit",
"/usr/include/x86_64-linux-gnu/qt5/QtWebKitWidgets",
},
AllowAllHeaders,
clangBin,
pkgConfigCflags("Qt5WebKitWidgets"),
outDir,
ClangMatchSameHeaderDefinitionOnly,
)
// Depends on QtCore/Gui/Widgets, QPrintSupport
generate(
"qt-restricted-extras/qscintilla",

View File

@ -7,6 +7,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
qtmultimedia5-dev \
qtscript5-dev \
libqt5svg5-dev \
libqt5webkit5-dev \
qt6-base-dev \
qt6-multimedia-dev \
qt6-svg-dev \