summaryrefslogtreecommitdiff
path: root/libgnomekbd
diff options
context:
space:
mode:
authorCorentin Noël <corentin.noel@collabora.com>2022-06-13 22:58:52 +0200
committerCorentin Noël <tintou@noel.tf>2022-06-14 09:11:32 +0200
commit2c5abff1398b5457d76c8b2f4dd8801a05701217 (patch)
tree35726c5fddb8804e5cd49e24976e49d2ef8295f4 /libgnomekbd
parent54da436258d79b683f57dfadf787bdf56ca58576 (diff)
downloadlibgnomekbd-2c5abff1398b5457d76c8b2f4dd8801a05701217.tar.gz
Add meson build system
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Diffstat (limited to 'libgnomekbd')
-rw-r--r--libgnomekbd/meson.build190
1 files changed, 190 insertions, 0 deletions
diff --git a/libgnomekbd/meson.build b/libgnomekbd/meson.build
new file mode 100644
index 0000000..4e8f3fa
--- /dev/null
+++ b/libgnomekbd/meson.build
@@ -0,0 +1,190 @@
+pkg_data_dir = get_option('prefix') / get_option('datadir') / 'libgnomekbd'
+ui_dir = pkg_data_dir / 'ui'
+icons_dir = pkg_data_dir / 'icons'
+
+install_data(
+ 'show-layout.ui',
+ install_dir: ui_dir
+)
+
+install_data(
+ 'kbdled-caps-lock.svg',
+ 'kbdled-num-lock.svg',
+ 'kbdled-scroll-lock.svg',
+ install_dir: icons_dir
+)
+
+gsettings_cfg = configuration_data()
+gsettings_cfg.set('GETTEXT_PACKAGE', gettext_domain)
+
+gsettings_files = files(
+ 'org.gnome.libgnomekbd.desktop.gschema.xml.in',
+ 'org.gnome.libgnomekbd.keyboard.gschema.xml.in',
+ 'org.gnome.libgnomekbd.gschema.xml.in',
+)
+
+foreach gsettings_file : gsettings_files
+ configure_file(
+ input: gsettings_file,
+ output: '@BASENAME@',
+ configuration: gsettings_cfg,
+ install: true,
+ install_dir: get_option('prefix') / get_option('datadir') / 'glib-2.0' / 'schemas'
+)
+endforeach
+
+libgnomekbd_deps = [
+ glib_dep,
+ gobject_dep,
+ gio_dep,
+ gdk_dep,
+ gtk_dep,
+ x11_dep,
+ libxklavier_dep,
+]
+
+libgnomekbd_sources = files(
+ 'gkbd-desktop-config.c',
+ 'gkbd-keyboard-config.c',
+ 'gkbd-util.c',
+)
+
+libgnomekbd_headers = files(
+ 'gkbd-desktop-config.h',
+ 'gkbd-keyboard-config.h',
+ 'gkbd-util.h',
+)
+
+libgnomekbd_lib = library(
+ 'gnomekbd',
+ libgnomekbd_sources,
+ config_h,
+ dependencies: libgnomekbd_deps,
+ include_directories: root_include,
+ version: meson.project_version(),
+ soversion: library_version,
+ install: true,
+)
+
+libgnomekbd_dep = declare_dependency(
+ link_with: libgnomekbd_lib,
+ include_directories: root_include,
+ dependencies: libgnomekbd_deps,
+ sources: config_h,
+)
+
+libgnomekbdui_sources = files(
+ 'gkbd-configuration.c',
+ 'gkbd-indicator-config.c',
+ 'gkbd-indicator.c',
+ 'gkbd-status.c',
+ 'gkbd-keyboard-drawing.c',
+)
+
+libgnomekbdui_headers = files(
+ 'gkbd-configuration.h',
+ 'gkbd-indicator.h',
+ 'gkbd-status.h',
+ 'gkbd-indicator-config.h',
+ 'gkbd-keyboard-drawing.h',
+)
+
+gkbd_indicator_marshal = gnome.genmarshal(
+ 'gkbd-indicator-marshal',
+ prefix: 'gkbd_indicator',
+ sources: 'gkbd-indicator-marshal.list',
+)
+
+gkbd_keyboard_drawing_marshal = gnome.genmarshal(
+ 'gkbd-keyboard-drawing-marshal',
+ prefix: 'gkbd_keyboard_drawing',
+ sources: 'gkbd-keyboard-drawing-marshal.list',
+)
+
+
+libgnomekbdui_deps = [
+ libgnomekbd_dep,
+ m_dep,
+]
+
+libgnomekbdui_lib = library(
+ 'gnomekbdui',
+ libgnomekbdui_sources,
+ config_h,
+ gkbd_indicator_marshal,
+ gkbd_keyboard_drawing_marshal,
+ dependencies: libgnomekbdui_deps,
+ include_directories: root_include,
+ version: meson.project_version(),
+ soversion: library_version,
+ c_args: [
+ '-DUIDIR="@0@"'.format(ui_dir),
+ '-DDATADIR="@0@"'.format(pkg_data_dir),
+ '-DICONSDIR="@0@"'.format(icons_dir),
+ ],
+ install: true,
+)
+
+libgnomekbdui_dep = declare_dependency(
+ link_with: libgnomekbdui_lib,
+ include_directories: root_include,
+ dependencies: libgnomekbdui_deps,
+ sources: [config_h, gkbd_indicator_marshal, gkbd_keyboard_drawing_marshal],
+)
+
+gkbd_keyboard_display_exe = executable(
+ 'gkbd-keyboard-display',
+ 'gkbd-keyboard-display.c',
+ dependencies: libgnomekbdui_dep,
+ include_directories: root_include,
+ c_args: [
+ '-DGNOMELOCALEDIR="@0@"'.format(get_option('prefix') / get_option('datadir') / 'locale')
+ ],
+ install: true,
+)
+
+install_headers(
+ libgnomekbd_headers,
+ libgnomekbdui_headers,
+ subdir: 'libgnomekbd',
+)
+
+gkbd_keyboard_display_cfg = configuration_data()
+gkbd_keyboard_display_cfg.set('VERSION', meson.project_version())
+
+gkbd_keyboard_display_in = configure_file(
+ input: 'gkbd-keyboard-display.desktop.in.in',
+ output: 'gkbd-keyboard-display.desktop.in',
+ configuration: gkbd_keyboard_display_cfg,
+)
+
+i18n.merge_file(
+ input: gkbd_keyboard_display_in,
+ output: 'gkbd-keyboard-display.desktop',
+ po_dir: '../po',
+ type: 'desktop',
+ install: true,
+ install_dir: get_option('prefix') / get_option('datadir') / 'applications',
+)
+
+install_data(
+ 'libgnomekbd.convert',
+ install_dir: get_option('prefix') / get_option('datadir') / 'GConf' / 'gsettings'
+)
+
+gnome.generate_gir(
+ libgnomekbd_lib, libgnomekbdui_lib,
+ sources: [
+ libgnomekbd_sources,
+ libgnomekbdui_sources,
+ libgnomekbd_headers,
+ libgnomekbdui_headers,
+ gkbd_indicator_marshal,
+ gkbd_keyboard_drawing_marshal,
+ ],
+ dependencies: [ libgnomekbd_deps, m_dep ],
+ include_directories: root_include,
+ namespace: 'Gkbd',
+ nsversion: '3.0',
+ includes: ['GObject-2.0', 'Gtk-3.0', 'xlib-2.0', 'Xkl-1.0'],
+) \ No newline at end of file