gtk4-layer-shell-sys 0.3.0

Unsave gir-generated FFI bindings for gtk4-layer-shell
Documentation

maintenance-status: passively-maintained (as of 2022-10-01) dependabot status

Build

gtk4-layer-shell-sys: Crate docs.rs dependency status

gtk4-layer-shell-sys

These are the unsafe FFI bindings for gtk4-layer-shell. They were automatically generated from its .gir file. You need to have gtk4-layer-shell installed on your system to use this crate. Because it is new, you probably have to build it from source. If you did that, you might also have to set the following two environment variables:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/lib

This crate is GTK4 only. Checkout gtk-layer-shell-sys if you want the GTK3 version.

Usage

These are the unsafe bindings. You most likely want to use the safe wrapper.

Generating the bindings

Generating the bindings yourself is not necessary to be able to use it. If you want to do it anyways, here are the steps you can follow to generate the bindings yourself.

You need to have Rust, Gtk4 and gtk4-layer-shell installed. Clone the repository AND the submodules "gir" and "gir-files".

git clone --recurse-submodules  -j8 https://github.com/pentamassiv/gtk4-layer-shell-gir.git
cd ./gtk4-layer-shell-gir

Then you need to install gir.

cd gir
cargo install --path .
cd ..

If you regenerate the binding, because you have a new version of the Gtk4LayerShell gir file, copy it into the gir files folder. Now you can generate, build and test the bindings.

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
cd gtk4-layer-shell-sys # Needed when the lib is built from source
gir -o .       # Regenerate the bindings
cargo build    # Build the created bindings
cargo test     # Test the created bindings
cd ..

There should not have been any errors. You should now continue and generate the safe wrapper. If you want to learn more about gir, have a look at its repo or its book.

Maintenance status

This crate is just an unsafe wrapper for the C library so it is feature complete and not actively worked on. There are Github Actions keeping the dependencies up-to-date. If you encounter any problems, feel free to open a PR.

Contributing

Pull requests are very welcome but please keep the maintenance status in mind.

License

MIT