diff options
Diffstat (limited to 'gudev/meson.build')
-rw-r--r-- | gudev/meson.build | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/gudev/meson.build b/gudev/meson.build new file mode 100644 index 0000000..fd06a11 --- /dev/null +++ b/gudev/meson.build @@ -0,0 +1,133 @@ +libgudev_public_h = [ + 'gudev.h', + 'gudevclient.h', + 'gudevdevice.h', + 'gudevenumerator.h', + 'gudevenums.h', + 'gudevtypes.h', +] + +libgudev_private_h = [ + 'gudevprivate.h', +] + +libgudev_sources = [ + 'gudevclient.c', + 'gudevdevice.c', + 'gudevenumerator.c', +] + +libgudev_deps = [ + glib_dep, + gobject_dep, + libudev_dep, +] + +libgudev_c_args = [ + '-DHAVE_CONFIG_H', + '-D_POSIX_PTHREAD_SEMANTICS', + '-D_REENTRANT', + '-D_GUDEV_COMPILATION', + '-D_GUDEV_WORK_AROUND_DEV_T_BUG', + '-DG_LOG_DOMAIN="GUdev"', +] + +libgudev_link_args = [ + '-export-dynamic', + '-Wl,--version-script,@0@/libgudev-1.0.sym'.format(top_srcdir), +] + +libgudev_enums = gnome.mkenums( + 'gudevenumtypes', + sources: libgudev_public_h, + h_template: 'gudevenumtypes.h.template', + c_template: 'gudevenumtypes.c.template', + install_header: true, + install_dir: join_paths( + pkgincludedir, + 'gudev', + ) +) + +libgudev_enums_h = libgudev_enums.get(1) + +libgudev_sources += [ + libgudev_enums, +] + +install_headers( + libgudev_public_h, + install_dir: join_paths( + pkgincludedir, + 'gudev', + ) +) + +libgudev = library( + package_string, + libgudev_sources, + version: lib_version, + include_directories: rootdir, + dependencies: libgudev_deps, + c_args: libgudev_c_args, + link_args: libgudev_link_args, + install: true, + install_dir: libdir, +) + +libgudev_dep = declare_dependency( + link_with: libgudev, + include_directories: rootdir, + dependencies: libgudev_deps, + sources: [ + libgudev_enums_h, + ] +) + +pkg.generate( + name: package_string, + description: 'GObject bindings for libudev', + requires: ['glib-2.0', 'gobject-2.0'], + version: version, + subdirs: package_string, + libraries: libgudev, + install_dir: pkgconfigdir, + variables: [ + 'exec_prefix=${prefix}', + ] +) + +if introspection_dep.found() + libgudev_gir = gnome.generate_gir( + libgudev, + sources: libgudev_sources + libgudev_public_h, + nsversion: api_version, + namespace: 'GUdev', + symbol_prefix: 'g_udev', + identifier_prefix: 'GUdev', + header: 'gudev/gudev.h', + export_packages: [package_string], + includes: ['GObject-2.0'], + link_with: libgudev, + install: true, + install_dir_gir: girdir, + install_dir_typelib: typelibdir, + extra_args: [ + '-D_GUDEV_COMPILATION', + '-D_GUDEV_WORK_AROUND_DEV_T_BUG', + ] + ) + + if vapigen_dep.found() + libgudev_vapi = gnome.generate_vapi( + package_string, + sources: libgudev_gir.get(0), + install: true, + install_dir: vapidir, + packages: [ + 'gobject-2.0', + ] + ) + endif +endif + |