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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
  | 
cargs = ['-DG_LOG_DOMAIN="marco"']
install_headers([
	'include/boxes.h',
	'ui/gradient.h',
	'include/util.h',
	'include/common.h',
	'ui/preview-widget.h',
	'ui/theme-parser.h',
	'ui/theme.h'
  ],
  subdir : 'marco-1/marco-private'
)
libmarco = shared_library(
  'marco-private',
  sources : [
    'core/async-getprop.c',
    'core/async-getprop.h',
    'core/atomnames.h',
    'core/bell.c',
    'core/bell.h',
    'core/boxes.c',
    'include/boxes.h',
    'compositor/compositor.c',
    'compositor/compositor-private.h',
    'compositor/compositor-xrender.c',
    'compositor/compositor-xrender.h',
    'include/compositor.h',
    'core/constraints.c',
    'core/constraints.h',
    'core/core.c',
    'core/delete.c',
    'core/display.c',
    'core/display-private.h',
    'include/display.h',
    'ui/draw-workspace.c',
    'ui/draw-workspace.h',
    'core/edge-resistance.c',
    'core/edge-resistance.h',
    'core/effects.c',
    'core/effects.h',
    'core/errors.c',
    'include/errors.h',
    'core/eventqueue.c',
    'core/eventqueue.h',
    'core/frame.c',
    'core/frame-private.h',
    'include/frame.h',
    'ui/gradient.c',
    'ui/gradient.h',
    'core/group-private.h',
    'core/group-props.c',
    'core/group-props.h',
    'core/group.c',
    'core/group.h',
    'core/iconcache.c',
    'core/iconcache.h',
    'core/keybindings.c',
    'core/keybindings.h',
    'core/main.c',
    'include/main.h',
    'core/marco-Xatomtype.h',
    'core/place.c',
    'core/place.h',
    'core/prefs.c',
    'include/prefs.h',
    'core/screen.c',
    'core/screen-private.h',
    'include/screen.h',
    'include/types.h',
    'core/session.c',
    'core/session.h',
    'core/stack.c',
    'core/stack.h',
    'core/util.c',
    'include/util.h',
    'core/window-props.c',
    'core/window-props.h',
    'core/window.c',
    'core/window-private.h',
    'include/window.h',
    'core/workspace.c',
    'core/workspace.h',
    'core/xprops.c',
    'include/xprops.h',
    'include/common.h',
    'include/core.h',
    'include/ui.h',
    'ui/fixedtip.c',
    'ui/fixedtip.h',
    'ui/frames.c',
    'ui/frames.h',
    'ui/menu.c',
    'ui/menu.h',
    'ui/metaaccellabel.c',
    'ui/metaaccellabel.h',
    'ui/preview-widget.c',
    'ui/preview-widget.h',
    'ui/resizepopup.c',
    'include/resizepopup.h',
    'ui/tabpopup.c',
    'include/tabpopup.h',
    'ui/tile-preview.c',
    'include/tile-preview.h',
    'ui/theme-parser.c',
    'ui/theme-parser.h',
    'ui/theme.c',
    'ui/theme.h',
    'ui/ui.c',
    'include/all-keybindings.h',
  ],
  include_directories : [
    include_directories('.'),
    include_directories('..'),
    include_directories('include'),
  ],
  dependencies : marco_deps,
  soversion: soversion,
  version: libversion,
  c_args : cargs,
  install: true,
)
executable('marco',
  'core/main.c',
  'include/main.h',
  include_directories : [
    include_directories('.'),
    include_directories('..'),
    include_directories('./include'),
    ],
  dependencies : marco_deps,
  link_with : [
    libmarco
    ],
  c_args : cargs,
  install: true,
)
executable('marco-theme-viewer',
  'ui/theme-viewer.c',
  include_directories : [
    include_directories('.'),
    include_directories('..'),
    include_directories('./include'),
    ],
  dependencies : marco_deps,
  link_with : [
    libmarco,
    ],
  install: true,
)
executable('testboxes',
  'include/util.h',
  'core/util.c',
  'include/boxes.h',
  'core/boxes.c',
  'core/testboxes.c',
  include_directories : [
    include_directories('.'),
    include_directories('..'),
    include_directories('./include'),
  ],
  dependencies : marco_deps,
)
executable('testgradient',
  'ui/gradient.h',
  'ui/gradient.c',
  'ui/testgradient.c',
  dependencies : marco_deps,
)
executable('testasyncgetprop',
  'core/async-getprop.h',
  'core/async-getprop.c',
  'core/testasyncgetprop.c',
  dependencies : marco_deps,
)
gnome = import('gnome')
i18n = import('i18n')
i18n.merge_file(
  input: 'marco.desktop.in',
  output: 'marco.desktop',
  type: 'desktop',
  po_dir: join_paths(meson.source_root(), 'po'),
  install: true,
  install_dir: join_paths(get_option('datadir'), 'applications')
  )
i18n.merge_file(
  input: 'marco-wm.desktop.in',
  output: 'marco-wm.desktop',
  type: 'desktop',
  po_dir: join_paths(meson.source_root(), 'po'),
  install: true,
  install_dir: join_paths(datadir, 'mate', 'wm-properties')
  )
compiled_schemas = gnome.compile_schemas()
install_data('org.mate.marco.gschema.xml',
               install_dir : 'share/glib-2.0/schemas')
xml_files = [
  '50-marco-desktop-key.xml',
  '50-marco-window-key.xml',
  '50-marco-global-key.xml',
  ]
foreach xml : xml_files
  i18n.merge_file(xml,
    input: xml+ '.in',
    output: xml,
    po_dir: '../po',
    data_dirs: '..',
    install: true,
    install_dir: join_paths(get_option('datadir'), 'mate-control-center', 'keybindings')
    )
endforeach
pkconf = configuration_data()
pkconf.set('prefix', prefix)
pkconf.set('exec_prefix', prefix)
pkconf.set('libdir', libdir)
pkconf.set('includedir', includedir)
pkconf.set('libexecdir', libexecdir)
pkconf.set('VERSION', meson.project_version())
pc = configure_file(
  input : 'libmarco-private.pc.in',
  output : 'libmarco-private.pc',
  configuration : pkconf
)
install_data(pc,
  install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
)
subdir('wm-tester')
subdir('tools')
subdir('themes')
  |