1
0
mirror of https://github.com/mappu/miqt.git synced 2025-05-16 16:30:21 +00:00

genbindings/libraries: add OnlyHeaders/ExceptHeaders helpers

This commit is contained in:
mappu 2025-04-13 19:44:40 +12:00
parent 862bd100f4
commit ccbfaf0819
2 changed files with 22 additions and 13 deletions

@ -8,6 +8,16 @@ import (
func ProcessLibraries(clangBin, outDir, extraLibsDir string) { func ProcessLibraries(clangBin, outDir, extraLibsDir string) {
AllowAllHeaders := func(string) bool { return true } AllowAllHeaders := func(string) bool { return true }
OnlyHeaders := func(s ...string) func(fullpath string) bool {
return func(fullpath string) bool {
return slice_contains(s, filepath.Base(fullpath))
}
}
ExceptHeaders := func(s ...string) func(fullpath string) bool {
return func(fullpath string) bool {
return !slice_contains(s, filepath.Base(fullpath))
}
}
flushKnownTypes() flushKnownTypes()
InsertTypedefs(false) InsertTypedefs(false)
@ -150,14 +160,7 @@ func ProcessLibraries(clangBin, outDir, extraLibsDir string) {
"/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore", "/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore",
"/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets", "/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets",
}, },
ExceptHeaders("qquickwebengineprofile.h", "qquickwebenginescript.h"),
func(fullpath string) bool {
baseName := filepath.Base(fullpath)
if baseName == "qquickwebengineprofile.h" || baseName == "qquickwebenginescript.h" {
return false
}
return true
},
clangBin, clangBin,
pkgConfigCflags("Qt5WebEngineWidgets"), pkgConfigCflags("Qt5WebEngineWidgets"),
outDir, outDir,
@ -280,10 +283,7 @@ func ProcessLibraries(clangBin, outDir, extraLibsDir string) {
[]string{ []string{
"/usr/include/x86_64-linux-gnu/qt6/QtNetwork", "/usr/include/x86_64-linux-gnu/qt6/QtNetwork",
}, },
func(fullpath string) bool { ExceptHeaders("qtnetwork-config.h"),
fname := filepath.Base(fullpath)
return fname != "qtnetwork-config.h"
},
clangBin, clangBin,
"--std=c++17 "+pkgConfigCflags("Qt6Network"), "--std=c++17 "+pkgConfigCflags("Qt6Network"),
outDir, outDir,

@ -53,4 +53,13 @@ func slice_copy[T comparable](input []T) []T {
ret[i] = elem ret[i] = elem
} }
return ret return ret
} }
func slice_contains[T comparable](input []T, search T) bool {
for _, elem := range input {
if elem == search {
return true
}
}
return false // not found
}