mirror of
https://github.com/mappu/miqt.git
synced 2024-12-22 00:48:38 +00:00
webengine: add genbindings integration
This commit is contained in:
parent
ac3bb31a71
commit
6b2935add1
@ -385,6 +385,12 @@ func AllowType(p CppParameter, isReturnType bool) error {
|
||||
if strings.HasPrefix(p.ParameterType, "EncodedData<") {
|
||||
return ErrTooComplex // e.g. Qt 6 qstringconverter.h
|
||||
}
|
||||
if strings.HasPrefix(p.ParameterType, "QQmlListProperty<") {
|
||||
return ErrTooComplex // e.g. Qt 5 QWebChannel qmlwebchannel.h . Supporting this will be required for QML in future
|
||||
}
|
||||
if strings.HasPrefix(p.ParameterType, "QWebEngineCallback<") {
|
||||
return ErrTooComplex // Function pointer types in QtWebEngine
|
||||
}
|
||||
|
||||
if strings.HasPrefix(p.ParameterType, "std::") {
|
||||
// std::initializer e.g. qcborarray.h
|
||||
@ -510,6 +516,7 @@ func AllowType(p CppParameter, isReturnType bool) error {
|
||||
"QPostEvent", // ..
|
||||
"QWebFrameAdapter", // Qt 5 Webkit: Used by e.g. qwebframe.h but never defined anywhere
|
||||
"QWebPageAdapter", // ...
|
||||
"QQmlWebChannelAttached", // Qt 5 qqmlwebchannel.h. Need to add QML support for this to work
|
||||
"____last____":
|
||||
return ErrTooComplex
|
||||
}
|
||||
|
@ -129,6 +129,41 @@ func ProcessLibraries(clangBin, outDir, extraLibsDir string) {
|
||||
ClangMatchSameHeaderDefinitionOnly,
|
||||
)
|
||||
|
||||
// Qt 5 QWebChannel
|
||||
generate(
|
||||
"qt/webchannel",
|
||||
[]string{
|
||||
"/usr/include/x86_64-linux-gnu/qt5/QtWebChannel",
|
||||
},
|
||||
AllowAllHeaders,
|
||||
clangBin,
|
||||
pkgConfigCflags("Qt5WebChannel"),
|
||||
outDir,
|
||||
ClangMatchSameHeaderDefinitionOnly,
|
||||
)
|
||||
|
||||
// Qt 5 QWebEngine
|
||||
generate(
|
||||
"qt/webengine",
|
||||
[]string{
|
||||
"/usr/include/x86_64-linux-gnu/qt5/QtWebEngine",
|
||||
"/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore",
|
||||
"/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets",
|
||||
},
|
||||
|
||||
func(fullpath string) bool {
|
||||
baseName := filepath.Base(fullpath)
|
||||
if baseName == "qquickwebengineprofile.h" || baseName == "qquickwebenginescript.h" {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
},
|
||||
clangBin,
|
||||
pkgConfigCflags("Qt5WebEngineWidgets"),
|
||||
outDir,
|
||||
ClangMatchSameHeaderDefinitionOnly,
|
||||
)
|
||||
|
||||
// Depends on QtCore/Gui/Widgets, QPrintSupport
|
||||
generate(
|
||||
"qt-restricted-extras/qscintilla",
|
||||
@ -269,6 +304,40 @@ func ProcessLibraries(clangBin, outDir, extraLibsDir string) {
|
||||
ClangMatchSameHeaderDefinitionOnly,
|
||||
)
|
||||
|
||||
// Qt 6 QWebChannel
|
||||
generate(
|
||||
"qt6/webchannel",
|
||||
[]string{
|
||||
"/usr/include/x86_64-linux-gnu/qt6/QtWebChannel",
|
||||
},
|
||||
AllowAllHeaders,
|
||||
clangBin,
|
||||
"--std=c++17 "+pkgConfigCflags("Qt6WebChannel"),
|
||||
outDir,
|
||||
ClangMatchSameHeaderDefinitionOnly,
|
||||
)
|
||||
|
||||
// Qt 6 QWebEngine
|
||||
generate(
|
||||
"qt6/webengine",
|
||||
[]string{
|
||||
"/usr/include/x86_64-linux-gnu/qt6/QtWebEngineCore",
|
||||
"/usr/include/x86_64-linux-gnu/qt6/QtWebEngineWidgets",
|
||||
},
|
||||
func(fullpath string) bool {
|
||||
baseName := filepath.Base(fullpath)
|
||||
if baseName == "qtwebenginewidgets-config.h" {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
},
|
||||
clangBin,
|
||||
"--std=c++17 "+pkgConfigCflags("Qt6WebEngineWidgets"),
|
||||
outDir,
|
||||
ClangMatchSameHeaderDefinitionOnly,
|
||||
)
|
||||
|
||||
// Qt 6 QScintilla
|
||||
// Depends on QtCore/Gui/Widgets, QPrintSupport
|
||||
generate(
|
||||
"qt-restricted-extras/qscintilla6",
|
||||
|
@ -8,9 +8,11 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
|
||||
qtscript5-dev \
|
||||
libqt5svg5-dev \
|
||||
libqt5webkit5-dev \
|
||||
qtwebengine5-dev \
|
||||
qt6-base-dev \
|
||||
qt6-multimedia-dev \
|
||||
qt6-svg-dev \
|
||||
qt6-webengine-dev \
|
||||
libqscintilla2-qt5-dev \
|
||||
libqscintilla2-qt6-dev \
|
||||
clang \
|
||||
|
Loading…
Reference in New Issue
Block a user