summaryrefslogtreecommitdiff
path: root/tools/meson.build
blob: ed7443dd1ebab1221d435acdbcd2c1090a55e679 (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
# tools

# Input: perl, m4, install_prefix, install_libdir, glibmm_pcname
# Output: install_procdir, m4_files, pm_files, gmmproc, generate_wrap_init_pl

subdir('extra_defs_gen')

install_procdir = install_libdir / glibmm_pcname / 'proc'

# Configuration data for gmmproc.
gmmproc_conf_data = configuration_data()
gmmproc_conf_data.set('PERL', perl.found() ? perl.path() : '')
gmmproc_conf_data.set('configure_input', 'tools/gmmproc.  Generated from gmmproc.in')
gmmproc_conf_data.set('prefix', install_prefix)
gmmproc_conf_data.set('exec_prefix', '${prefix}')
gmmproc_conf_data.set('libdir', '${exec_prefix}' / install_libdir)
gmmproc_conf_data.set('GLIBMM_MODULE_NAME', glibmm_pcname)
gmmproc_conf_data.set('M4', m4.found() ? '/'.join(m4.path().split('\\')) : '')
gmmproc_conf_data.set('PACKAGE_VERSION', meson.project_version())

gmmproc = configure_file(
  input: 'gmmproc.in',
  output: '@BASENAME@',
  configuration: gmmproc_conf_data,
  install_dir: install_procdir,
)

# Configuration data for generate_wrap_init.pl.
gen_wrap_init_conf_data = configuration_data()
gen_wrap_init_conf_data.set('PERL', perl.found() ? perl.path() : '')
gen_wrap_init_conf_data.set('configure_input',
  'tools/generate_wrap_init.pl.  Generated from generate_wrap_init.pl.in')

generate_wrap_init_pl = configure_file(
  input: 'generate_wrap_init.pl.in',
  output: '@BASENAME@',
  configuration: gen_wrap_init_conf_data,
  install_dir: install_procdir,
)

# Install m4 files for reuse by other *mm projects, when building from git.
m4_basefiles = [
  'base.m4',
  'class_boxedtype.m4',
  'class_boxedtype_static.m4',
  'class_generic.m4',
  'class_gobject.m4',
  'class_interface.m4',
  'class_opaque_copyable.m4',
  'class_opaque_refcounted.m4',
  'class_shared.m4',
  'compare.m4',
  'convert.m4',
  'convert_base.m4',
  'convert_gio.m4',
  'convert_glib.m4',
  'convert_glibmm.m4',
  'ctor.m4',
  'doc.m4',
  'enum.m4',
  'gerror.m4',
  'initialize.m4',
  'initialize_base.m4',
  'initialize_gio.m4',
  'initialize_glib.m4',
  'initialize_glibmm.m4',
  'member.m4',
  'method.m4',
  'property.m4',
  'signal.m4',
  'vfunc.m4',
]
m4_files = []
foreach file : m4_basefiles
  m4_files += 'm4' / file
endforeach
m4_files = files(m4_files)
install_data(m4_files, install_dir: install_procdir / 'm4')

# Install pm files for reuse by other *mm projects, when building from git.
pm_basefiles = [
  'DocsParser.pm',
  'Enum.pm',
  'Function.pm',
  'FunctionBase.pm',
  'GtkDefs.pm',
  'Object.pm',
  'Output.pm',
  'Property.pm',
  'Util.pm',
  'WrapParser.pm',
]
pm_files = []
foreach file : pm_basefiles
  pm_files += 'pm' / file
endforeach
pm_files = files(pm_files)
install_data(pm_files, install_dir: install_procdir / 'pm')