summaryrefslogtreecommitdiff
path: root/plugins/filebrowser/meson.build
blob: c6bf332a65c915ee41cdb9020009229c6313978b (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
plugin_conf = configuration_data()
plugin_conf.set('PACKAGE_URL', 'https://github.com/mate-desktop/pluma')

plugin_in = configure_file(
  input: 'filebrowser.plugin.desktop.in.in',
  output: 'filebrowser.plugin.desktop.in',
  configuration: plugin_conf,
)
i18n.merge_file(
  input: plugin_in,
  output: 'filebrowser.plugin',
  po_dir: join_paths(meson.project_source_root(), 'po'),
  type: 'desktop',
  install: true,
  install_dir: pluginsdir,
)

filebrowser_enum_headers = files(
  'pluma-file-bookmarks-store.h',
  'pluma-file-browser-store.h',
  'pluma-file-browser-view.h',
  'pluma-file-browser-widget.h',
  'pluma-file-browser-error.h',
  'pluma-file-browser-utils.h',
  'pluma-file-browser-plugin.h',
  'pluma-file-browser-messages.h',
)

glib_mkenums = find_program('glib-mkenums')

filebrowser_enum_types_h = custom_target(
  'pluma-file-browser-enum-types.h',
  input: filebrowser_enum_headers,
  output: 'pluma-file-browser-enum-types.h',
  command: [
    glib_mkenums,
    '--template', meson.current_source_dir() / 'pluma-file-browser-enum-types.h.template',
    '@INPUT@',
  ],
  capture: true,
)

filebrowser_enum_types_c_part = custom_target(
  'pluma-file-browser-enum-types.c.part',
  input: filebrowser_enum_headers,
  output: 'pluma-file-browser-enum-types.c.part',
  command: [
    glib_mkenums,
    '--template', meson.current_source_dir() / 'pluma-file-browser-enum-types.c.template',
    '@INPUT@',
  ],
  capture: true,
)

filebrowser_enum_register_c_part = custom_target(
  'pluma-file-browser-enum-register.c.part',
  input: filebrowser_enum_headers,
  output: 'pluma-file-browser-enum-register.c.part',
  command: [
    glib_mkenums,
    '--template', meson.current_source_dir() / 'pluma-file-browser-enum-register.c.template',
    '@INPUT@',
  ],
  capture: true,
)

filebrowser_enum_types_c = custom_target(
  'pluma-file-browser-enum-types.c',
  input: [filebrowser_enum_types_c_part, filebrowser_enum_register_c_part],
  output: 'pluma-file-browser-enum-types.c',
  command: ['cat', '@INPUT@'],
  capture: true,
)

shared_module(
  'filebrowser',
  sources: [
    filebrowser_enum_types_h,
    filebrowser_enum_types_c,
    'pluma-file-bookmarks-store.c',
    'pluma-file-browser-store.c',
    'pluma-file-browser-view.c',
    'pluma-file-browser-widget.c',
    'pluma-file-browser-utils.c',
    'pluma-file-browser-plugin.c',
    'pluma-file-browser-messages.c',
  ],
  include_directories: [root_inc, pluma_inc],
  dependencies: pluma_deps,
  link_with: libpluma,
  c_args: plugin_cflags,
  name_prefix: 'lib',
  install: true,
  install_dir: pluginsdir,
)

install_data(
  'pluma-file-browser-widget-ui.xml',
  install_dir: join_paths(datadir, 'pluma', 'plugins', 'filebrowser'),
)

schema_conf = configuration_data()
schema_conf.set('GETTEXT_PACKAGE', 'pluma')
configure_file(
  input: 'org.mate.pluma.plugins.filebrowser.gschema.xml.in',
  output: 'org.mate.pluma.plugins.filebrowser.gschema.xml',
  configuration: schema_conf,
  install: true,
  install_dir: join_paths(datadir, 'glib-2.0', 'schemas'),
)