![]() |
![]() |
![]() |
![]() |
Compiling with libhandyCompiling with libhandy — Notes on compiling. |
Like other GNOME libraries,
libhandy uses
pkg-config to provide compiler options. The
package name is "libhandy-1
".
If you use Automake/Autoconf, in your configure.ac
script, you might specify something like:
1 2 3 |
PKG_CHECK_MODULES(LIBHANDY, [libhandy-1]) AC_SUBST(LIBHANDY_CFLAGS) AC_SUBST(LIBHANDY_LIBS) |
Or when using the Meson build system you can declare a dependency like:
1 |
dependency('libhandy-1') |
The "1
" in the package name is the
"API version" (indicating "the version of the
libhandy API that first appeared in version
1") and is essentially just part of the package name.
As libhandy uses the Meson build
system, bundling it as a subproject when it is not installed is easy.
Add this to your meson.build
:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
libhandy_dep = dependency('libhandy-1', version: '>= 1.5.0', required: false) if not libhandy_dep.found() libhandy = subproject( 'libhandy', install: false, default_options: [ 'examples=false', 'package_subdir=my-project-name', 'tests=false', ] ) libhandy_dep = libhandy.get_variable('libhandy_dep') endif |
Then add libhandy as a git submodule:
1 |
git submodule add https://gitlab.gnome.org/GNOME/libhandy.git subprojects/libhandy |
To bundle the library with your Flatpak application, add the following module to your manifest:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{ "name" : "libhandy", "buildsystem" : "meson", "builddir" : true, "config-opts": [ "-Dexamples=false", "-Dtests=false" ], "sources" : [ { "type" : "git", "url" : "https://gitlab.gnome.org/GNOME/libhandy.git" } ] } |
To build on macOS you need to install the build-dependencies first. This can e.g. be done via brew
:
1 |
brew install pkg-config gtk+3 adwaita-icon-theme meson glade gobject-introspection vala |
After running the command above, one may now build the library:
1 2 3 4 5 |
git clone https://gitlab.gnome.org/GNOME/libhandy.git cd libhandy meson . _build ninja -C _build test ninja -C _build install |
Working with the library on macOS is pretty much the same as on Linux. To link it, use pkg-config
:
1 |
gcc $(pkg-config --cflags --libs gtk+-3.0) $(pkg-config --cflags --libs libhandy-1) main.c -o main |