408 Commits

Author SHA1 Message Date
Rick Calixte
4cba7b0c99
config-libraries.go: Add Qt PDF
* Closes #200
2025-04-20 13:10:39 -04:00
2c2344e786 genbindings: handle the case when RequireCpp needs to return void 2025-04-15 20:57:06 +12:00
bc4a22f142 genbindings: Qt6Network dtls functions require QT_CONFIG(dtls) 2025-04-15 20:50:00 +12:00
57fee82f35 genbindings: replace LinuxOnly with generic cpp/go requirements 2025-04-15 20:49:55 +12:00
dc4c83998a genbindings: split qt5/6 QNetwork and qt6 QWebChannel into subpackages 2025-04-15 20:49:13 +12:00
acc5abdc38 genbindings/emitcabi: correct relative libmiqt path in nested subpackage 2025-04-13 19:57:44 +12:00
66ffe9dfde genbindings/config: block QWebEngineQuotaRequest deprecated in Qt 6.9 2025-04-13 19:57:44 +12:00
ccbfaf0819 genbindings/libraries: add OnlyHeaders/ExceptHeaders helpers 2025-04-13 19:57:40 +12:00
9dbb0d4152 genbindings: fix wrong cabiZeroValue() for QString-pointers 2025-04-12 18:02:13 +12:00
afdc8409ab genbindings: gofmt 2025-04-12 15:58:54 +12:00
13335282e0 genbindings: show pkg-config stderr in log output 2025-04-12 15:58:35 +12:00
329ea18df8 genbindings: move applyQuirks into a transform pass, isolate packageName 2025-04-12 14:38:19 +12:00
9c8338b7ec genbindings/cabi: remove not-triggered integer cases 2025-04-12 14:22:18 +12:00
Jacek Sieka
ac1d692b52 c: simplify integer mappings
`short` is perfectly fine as-is in C.

`qlonglong` is a bit trickier - Qt declares it to be `qint64` and
`qint64` to be `long long` - ergo, using `long long` in the C code is
fine but mapping `qint64` to `int64_t` actually might lead to trouble if
`int64_t` itself is not declared as `long long` (could be a mere `long
int` on some platforms) which in turn can lead to type-based pointer
aliasing violations :/ Ditto `qint32` vs `int32_t` which could be `int`
or `long`.
2025-04-11 22:59:07 +12:00
a58ac873a2 genbindings/transform: sort QVariant(QVariantList) ctor to end 2025-04-11 22:55:57 +12:00
Jacek Sieka
b3b783f3d6 Allow QVariantList - seems to work just fine 2025-04-11 22:43:27 +12:00
5af3cc6dfe genbindings: remember precise QList/QMap container types 2025-04-11 22:33:32 +12:00
c93eb2cd00 genbindings/transform: move "With" names outside the proposedName ctr 2025-04-11 22:21:47 +12:00
a5ae83b018 genbindings/transform: trigger same name fixups for optional parameters 2025-04-11 22:21:45 +12:00
aff87f98a2 genbindings: apply quirks to ctors, merge LinuxOnly into quirks 2025-04-11 22:07:15 +12:00
Rick Calixte
9d72a3f601
emitcabi.go: add version check macro and version-based const return type 2025-04-10 19:44:36 -04:00
Rick Calixte
1fa992f324
config-allowlist.go: add const return type for QObjectData::dynamicMetaObject for Qt 6.9+ 2025-04-10 19:42:37 -04:00
Rick Calixte
7f3fa3b248
intermediate.go: add BecomesConstInVersion to CppParameter 2025-04-10 19:41:05 -04:00
e8a8be0921 Merge branch 'master' into feat/qml
# Conflicts:
#	cmd/genbindings/config-allowlist.go
2025-04-05 22:10:00 +13:00
52b1749f2f qt5/qmultimedia: blocks some abstract classes 2025-04-05 21:32:05 +13:00
88896b4459 scintillaedit: block some Scintilla::Internal abstract classes 2025-04-05 21:31:46 +13:00
88c6d51dc1 genbindings: add noexcept support for overrides 2025-04-05 21:19:44 +13:00
6cb0296e6d genbindings: move exception from clang2il into standard config-allowlist 2025-04-05 21:18:37 +13:00
velorums
3a92648bd8 genbindings: ignore QQmlNetworkAccessManagerFactory::create, QQmlEngine::networkAccessManager to prevent dependency on Network for now 2025-04-04 08:53:16 +02:00
velorums
1797cb542d genbindings: ignore QQmlV4Function, QJSEngine::handle, qmlAttachedProperties 2025-04-04 08:52:56 +02:00
velorums
f7f0d4a0b9 config-libraries.go: Add Qt 6 Qml 2025-04-02 20:39:06 +02:00
Rick Calixte
9dc9718f98
config-libraries.go: Add Qt 6 Charts 2025-03-31 01:03:53 -04:00
da874c95ed genbindings: prevent using qt6 qsharedmemory on android 2025-02-15 17:19:43 +13:00
2f6817ac32 genbindings: virtualbase calls should not call the subclass 2025-02-15 15:00:50 +13:00
83989fd87e genbindings: replace virtualbase wrapper with friend function 2025-02-08 14:42:37 +13:00
1e26114255 genbindings: extract fixupProtectedReferences() to separate function 2025-02-08 14:42:37 +13:00
f045d87bf5 genbindings: workaround clang access to protected enums from friend funcs 2025-02-08 12:28:59 +13:00
d63facdcda genbindings: add another name-helper for the virtual subclass 2025-02-08 12:28:58 +13:00
78fae7cbcb genbindings/cabi: zero values in CABI should use enum's underlying type 2025-02-08 10:39:42 +13:00
f192a6a330 genbindings/go: conditionally disable extra return type indirection 2025-02-08 10:39:42 +13:00
c1bf148a5a genbindings: generate bindings for protected methods 2025-02-08 10:39:42 +13:00
Jacek Sieka
73c30809d2 genbindings: add ProtectedMethods() helper 2025-02-08 10:39:42 +13:00
a2192d8eab genbindings: fix linter warning about function comment 2025-02-08 10:39:42 +13:00
647e034772 genbindings: block QStringConverterBase constructors 2025-02-07 19:13:35 +13:00
0b39af57e3 genbindings: add new AllowCtor framework 2025-02-07 18:55:01 +13:00
daf3e82896 genbindings: subclass override functions need to use goMethodName 2025-02-01 14:35:54 +13:00
Jacek Sieka
187c0a02ec Move go name mangling to emitgo
This change helps keep rules for each language separate by moving `go`
rules to `emitgo` while the C bindings stay closer to the original Qt
naming (that already is mostly C-safe).

Although it doesn't practically matter for go, it makes it slightly
easier to reuse the generated code in other languages which have
different keywords and naming conventions.

The cabi generator also gains a few helpers to help keep names
consistent across files which hopefully aids reading the generator code
- it did for me at least;)

The rule that converts under_score to CamelCase is left for another day
since moving it turns out to be more invasive due to name collision
handling - when underscores are kept, there are fewer name conflicts
which ends up causing name changes in  the public go api when done
naively.
2025-02-01 13:44:32 +13:00
Jacek Sieka
439f3a1fb5 const in callbacks
Since callback signatures are now generated in C++, might as well go
ahead and retain `const` and the pointer type, removing a `const_cast`
in the process.
2025-01-27 14:14:23 +01:00
c80c0ff441 genbindings: fix indexing of zero-length byte arrays 2025-01-24 18:52:12 +13:00
7e8f451e48 genbindings: fix checking private methods of wrong class 2025-01-19 17:07:29 +13:00