102 Commits

Author SHA1 Message Date
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
ad635b2b38 genbindings: support conversion operators 2025-01-04 12:18:54 +13:00
4997641327 genbindings: allow subclassing abstract classes 2024-11-23 19:31:27 +13:00
8d1c871de3 genbindings/inherits: direct vs indirect inheritance 2024-11-19 19:24:50 +13:00
2ae1e6090c genbindings/clang2il: detect pure virtual, detect overrides 2024-11-19 19:17:36 +13:00
d25301c910 genbindings: track private methods, exclude from virtual overrides 2024-11-19 19:17:36 +13:00
aa2fdf98ca genbindings: subclass support for all virtual methods (1/3) 2024-11-19 19:17:36 +13:00
9b37750d64 genbindings: support protected methods 2024-11-19 19:17:36 +13:00
2f99f450a5 genbindings/enums: remove some excess logging 2024-11-17 19:18:08 +13:00
2d665dd840 genbindings/fmt: replace trivial sprintf with strconv 2024-11-17 19:17:54 +13:00
ed18c216f3 genbindings/exceptions: move QGADGET to exceptions file 2024-11-17 19:16:07 +13:00
Rick Calixte
a067210548
genbindings: Lint cleanup 2024-11-13 08:33:51 -05:00
e41f991a23 qnetwork: add support in genbindings 2024-11-06 18:38:25 +13:00
c1b31e787b genbindings: move AllowClass from parse-time to transformation AST pass
This exposes some more valid types.
2024-10-26 12:35:27 +13:00
ba423f153a genbindings: implement "BecomesNonConstInVersion" quirk support 2024-10-26 12:35:01 +13:00
c616c789ff genbindings/c++1z: skip over more advanced AST node types 2024-10-19 13:06:53 +13:00
82ea3d3823 genbindings/namespaces: fix nested namespaces losing parent component 2024-10-19 13:06:53 +13:00
6a01cc2d86 genbindings/clang: handle FullComment in enum declarations 2024-10-14 19:27:57 +13:00
6eb60232a9 genbindings/typedefs: support type alias declarations 2024-10-11 18:40:06 +13:00
8d8d802029 genbindings/templates: skip some c++17 template things 2024-10-11 18:40:06 +13:00
5f1b704c1a genbindings/namespace: support unnamed namespace { } blocks 2024-10-11 18:40:06 +13:00
c0ff37a9c6 genbindings/enum: skip over deprecated enum values 2024-10-11 18:40:06 +13:00
8585fc05f4 genbindings/enums: handle enum values with comments 2024-10-11 18:40:06 +13:00
9055f6e2ae genbindings: centralize AllowSignal/AllowMethod exceptions, block metacast signal 2024-09-21 11:32:59 +12:00
d0e28fa69c genbindings/clang2il: add some minor function comments 2024-09-20 19:13:00 +12:00
b7a488dac0 genbindings: more accurate enum type handling 2024-09-18 09:35:53 +12:00
ac2ec49248 genbindings: merge enums with redundant definitions 2024-09-16 19:03:45 +12:00
7fdccff799 genbindings/enums: more accurate underlying type definitions 2024-09-16 19:03:02 +12:00
d62ec99cf1 genbindings: add support for enums 2024-09-04 18:54:12 +12:00
6c1acb9377 genbindings/clang2il: cleanup dead code 2024-08-29 18:07:39 +12:00
4df990b345 genbindings: rely entirely on typedefs for QList<> handling 2024-08-29 18:07:07 +12:00
3b65e1fc6f genbindings: more exceptions, merge existing exceptions 2024-08-29 17:38:34 +12:00
421c229771 genbindings/exceptions: more exceptions and overrides 2024-08-29 17:17:35 +12:00
daff305d36 genbindings: support 'signed char' 2024-08-29 17:15:41 +12:00
8da51d61f5 genbindings: misc fixes 2024-08-28 18:47:44 +12:00
56395eaa7a genbindings: parse and call const methods for disambiguation 2024-08-28 18:47:23 +12:00
4ca4c0dd9e genbindings: variable pointer depth 2024-08-28 18:22:05 +12:00
4451a592ab genbindings: add diagnostic for skipped inner classes, matching skipped outer classes 2024-08-28 17:59:56 +12:00
95e8ab2e02 genbindings: expand typedefs over inner list classes 2024-08-28 17:59:21 +12:00
0566582ccf genbindings/exceptions: update exceptions 2024-08-27 20:05:50 +12:00
164ef8cb6c genbindings: add namespaces support 2024-08-27 19:12:08 +12:00
64e46e1978 genbindings: move QFlag<> handling into normal emitgo/emitcabi emission 2024-08-27 18:44:44 +12:00
150dab7c46 genbindings: move checkComplexity into separate ast pass post-typedefs 2024-08-27 18:44:10 +12:00
9dac446a82 genbindings: more exceptions 2024-08-26 22:52:46 +12:00
b84d816609 genbindings/typedefs: replace hardcoded exceptions with dynamic ones 2024-08-26 22:52:46 +12:00
0aa312c424 genbindings: track all typedefs, apply in a fixup AST pass 2024-08-26 22:52:46 +12:00
02370ce0ea genbindings/typedefs: collect child class typedefs 2024-08-26 22:45:52 +12:00
f8a9a3f36e genbindings: initial work on inner class definitions 2024-08-25 19:08:28 +12:00
b4df6d06f9 genbindings: bind all Qt::constants as int 2024-08-25 17:50:14 +12:00
38ceda38ad genbindings: skip return types for more operator= overloads 2024-08-25 15:32:16 +12:00