All Projects → gtk-rs → sys

gtk-rs / sys

Licence: MIT license
DEPRECATED, each crate has its own sys folder now.

Programming Languages

rust
11053 projects

sys

Autogenerated FFI definitions for various GNOME libraries.

Building

This repository contains the "sys" crates – FFI definitions intended for use in the actual bindings (e.g. gtk).

Each crate expects the development files of the respective library to be installed on the system.

Library versions

The installed library version is detected via pkg-config in the build script, which controls conditional compilation so only the functions availiable in that library version are visible.

For instance, if the gdk-sys crate's build script detects libgdk3 version 3.12, it sets a number of cfg directives gdk_3_4, gdk_3_6, ..., up togdk_3_12. Correspondingly, the definitions of functions introduced in version x.y carry #[cfg(gdk_x_y)] attributes. (The build script actually contains a complete list of the versions it knows, 3.4 doesn't have any special meaning, it's just the first in that list in that crate). The build script passes that set of directives on to its dependencies, so a depenendent crate's build script will see

env::var("DEP_GDK_CFG").unwrap() == "gdk_3_4 gdk_3_6 gdk_3_8 gdk_3_10 gdk_3_12"

Generating

> make

will build the generator in gir and generate the crates using specifications from conf and GIR definitions from gir-files.

Currently gir-files is populated from the gnome-staging ppa. Using a single set of GIR definitions for all platforms and versions is considered good enough at this point.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].