summaryrefslogtreecommitdiff
path: root/gudev/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'gudev/meson.build')
-rw-r--r--gudev/meson.build133
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
+