jextract wayland-client
Jorn Vernee
jorn.vernee at oracle.com
Sun Apr 21 21:30:22 UTC 2024
Hello Thiago,
It looks like the library you are using uses opaque types. Or, in other
words, a type that is declared but not defined, such as:
struct Foo;
These types are not supported by jextract in the sense that the header
file does not contain any definition for these types, so jextract also
can't generate any code to access the fields of such a struct. This is
not a current limitation of jextract, but a limitation imposed by the
wayland library.
This is known as the 'opaque pointer idiom' [1]. It is a way of
encapsulating the internals of a type, while still allowing a client to
use it. It looks like the wayland library uses types like these in a lot
of places. It doesn't mean that the library is unusable, it just means
that the contents of these structs is not exposed by the library (and
therefore /cannot/ be exposed by jextract). i.e. this is by design. You
should still be able to use the library through the generated bindings.
I think for clarity we could perhaps change the warning message that
jextract prints to something like:
WARNING: Skipping wl_registry (type Declared(wl_registry) is
declared but not defined)
HTH,
Jorn
[1]: https://en.wikipedia.org/wiki/Opaque_pointer
On 21/04/2024 18:58, Thiago Milczarek Sayão wrote:
> Hi,
>
> I'm trying to make a java wayland client (currently as a proof of
> concept).
>
> I've attempted to generate the bindings like this:
>
> jextract --output src -t org.freedesktop.wayland.client
> --header-class-name WlClient -lwayland-client
> /usr/include/wayland-client.h
>
> But the wl_xxx types seem to not be supported as it outputs:
>
> WARNING: Skipping wl_registry (type Declared(wl_registry) is not
> supported)
>
> I've probably hit a current limitation. Is it expected to work in the
> future?
>
> Thanks.
> -- Thiago.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/jextract-dev/attachments/20240421/8cff7334/attachment.htm>
More information about the jextract-dev
mailing list