summaryrefslogtreecommitdiff
path: root/libmatekbd/meson.build
blob: 08b93c27890c5ddce7ee694d1cd57d0e0dc7733f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
pkg_data_dir = get_option('prefix') / get_option('datadir') / 'libmatekbd'
ui_dir = pkg_data_dir / 'ui'
pkg = import('pkgconfig')

install_data(
  'show-layout.ui',
  install_dir: ui_dir
)

gsettings_cfg = configuration_data()
gsettings_cfg.set('GETTEXT_PACKAGE', gettext_domain)

configure_file(
  input: 'org.mate.peripherals-keyboard-xkb.gschema.xml.in',
  output: 'org.mate.peripherals-keyboard-xkb.gschema.xml',
  configuration: gsettings_cfg,
  install: true,
  install_dir: get_option('prefix') / get_option('datadir') / 'glib-2.0' / 'schemas'
)

gresource_files = gnome.compile_resources('matekbd-keyboard-drawing-resources', 'org.mate.peripherals.keyboard.gresource.xml', c_name : 'matekbd')

libmatekbd_deps = [
  glib_dep,
  gobject_dep,
  gio_dep,
  gdk_dep,
  gtk_dep,
  x11_dep,
  libxklavier_dep,
]

libmatekbd_sources = files(
  'matekbd-desktop-config.c',
  'matekbd-keyboard-config.c',
  'matekbd-util.c',
)

libmatekbd_headers = files(
  'matekbd-desktop-config.h',
  'matekbd-keyboard-config.h',
  'matekbd-util.h',
)

libmatekbd_lib = library(
  'matekbd',
  libmatekbd_sources,
  config_h,
  dependencies: libmatekbd_deps,
  include_directories: root_include,
  version: library_version,
  install: true,
)

pkg.generate(
  libmatekbd_lib,
  name: 'libmatekbd',
  description: 'MATE keyboard shared library',
  requires: libmatekbd_deps,
  version: meson.project_version(),
)

libmatekbd_dep = declare_dependency(
  link_with: libmatekbd_lib,
  include_directories: root_include,
  dependencies: libmatekbd_deps,
  sources: config_h,
)

libmatekbdui_sources = files(
  'matekbd-indicator-config.c',
  'matekbd-indicator.c',
  'matekbd-status.c',
  'matekbd-keyboard-drawing.c',
)

libmatekbdui_headers = files(
  'matekbd-indicator.h',
  'matekbd-status.h',
  'matekbd-indicator-config.h',
  'matekbd-keyboard-drawing.h',
)
matekbd_indicator_marshal = gnome.genmarshal(
  'matekbd-indicator-marshal',
  prefix: 'matekbd_indicator',
  sources: 'matekbd-indicator-marshal.list',
)

matekbd_keyboard_drawing_marshal = gnome.genmarshal(
  'matekbd-keyboard-drawing-marshal',
  prefix: 'matekbd_keyboard_drawing',
  sources: 'matekbd-keyboard-drawing-marshal.list',
)


libmatekbdui_deps = [
  libmatekbd_dep,
  m_dep,
]

libmatekbdui_lib = library(
  'matekbdui',
  libmatekbdui_sources,
  gresource_files,
  config_h,
  matekbd_indicator_marshal,
  matekbd_keyboard_drawing_marshal,
  dependencies: libmatekbdui_deps,
  include_directories: root_include,
  version: library_version,
  c_args: [
    '-DUIDIR="@0@"'.format(ui_dir),
    '-DDATADIR="@0@"'.format(pkg_data_dir),
  ],
  install: true,
)

pkg.generate(
  libmatekbdui_lib,
  name: 'libmatekbdui',
  description: 'MATE keyboard shared library',
  version: meson.project_version(),
  requires: libmatekbd_lib,
)

libmatekbdui_dep = declare_dependency(
  link_with: libmatekbdui_lib,
  include_directories: root_include,
  dependencies: libmatekbdui_deps,
  sources: [config_h, matekbd_indicator_marshal, matekbd_keyboard_drawing_marshal],
)

install_headers(
  libmatekbd_headers,
  libmatekbdui_headers,
  subdir: 'libmatekbd',
)

if get_option('gir')
  gir_dir = join_paths(get_option('prefix') / get_option('datadir'), '@0@-@1@'.format('gir', matekbd_gir_version))
  typelib_dir = join_paths(get_option('prefix') / get_option('libdir'), '@0@-@1@'.format('girepository', matekbd_gir_version))

  gnome.generate_gir(
    libmatekbd_lib, libmatekbdui_lib,
    sources: [
      libmatekbd_sources,
      libmatekbdui_sources,
      libmatekbd_headers,
      libmatekbdui_headers,
      matekbd_indicator_marshal,
      matekbd_keyboard_drawing_marshal,
    ],
    dependencies: [ libmatekbd_deps, m_dep ],
    include_directories: root_include,
    namespace: 'Matekbd',
    nsversion: '3.0',
    includes: ['GObject-2.0', 'Gtk-3.0', 'xlib-2.0', 'Xkl-1.0'],
    install: true,
    install_dir_gir: gir_dir,
    install_dir_typelib: typelib_dir,
  )
endif