1subdir('cmph')
2
3custom_c_args = []
4
5if cc.get_id() != 'msvc'
6  custom_c_args = cc.get_supported_arguments([
7    '-Wno-old-style-definition',
8    '-Wno-cast-align',
9  ])
10endif
11
12girepo_gthash_lib = static_library('girepository-gthash',
13  sources: 'gthash.c',
14  include_directories : configinc,
15  c_args: gi_hidden_visibility_cflags + custom_c_args,
16  dependencies: [
17    cmph_dep,
18    glib_dep,
19    gmodule_dep,
20    gobject_dep,
21  ],
22)
23
24girepo_gthash_dep = declare_dependency(
25  link_with: girepo_gthash_lib,
26  dependencies: [glib_dep, gmodule_dep, gobject_dep],
27  include_directories: include_directories('.'),
28)
29
30if cc.get_id() != 'msvc'
31  custom_c_args = cc.get_supported_arguments([
32    '-Wno-unused-parameter',
33    '-Wno-duplicated-branches',
34    '-Wno-cast-align',
35  ])
36endif
37
38girepo_internals_lib = static_library('girepository-internals',
39  sources: [
40    'girmodule.c',
41    'girnode.c',
42    'giroffsets.c',
43    'girparser.c',
44    'girwriter.c',
45  ],
46  c_args: gi_hidden_visibility_cflags + custom_c_args,
47  include_directories : configinc,
48  dependencies: [girepo_gthash_dep, libffi_dep],
49)
50
51girepo_internals_dep = declare_dependency(
52  link_with: girepo_internals_lib,
53  dependencies: libffi_dep,
54  include_directories: include_directories('.'),
55)
56
57gi_version_h = configure_file(
58  configuration: config,
59  input: 'giversion.h.in',
60  output: 'giversion.h',
61)
62
63girepo_headers = [
64  'giarginfo.h',
65  'gibaseinfo.h',
66  'gicallableinfo.h',
67  'giconstantinfo.h',
68  'gienuminfo.h',
69  'gifieldinfo.h',
70  'gifunctioninfo.h',
71  'giinterfaceinfo.h',
72  'giobjectinfo.h',
73  'gipropertyinfo.h',
74  'giregisteredtypeinfo.h',
75  'girepository.h',
76  'girffi.h',
77  'gisignalinfo.h',
78  'gistructinfo.h',
79  'gitypeinfo.h',
80  'gitypelib.h',
81  'gitypes.h',
82  'giunioninfo.h',
83  'giversionmacros.h',
84  'givfuncinfo.h',
85  gi_version_h,
86]
87
88girepo_sources = [
89  'gdump.c',
90  'giarginfo.c',
91  'gibaseinfo.c',
92  'gicallableinfo.c',
93  'giconstantinfo.c',
94  'gienuminfo.c',
95  'gifieldinfo.c',
96  'gifunctioninfo.c',
97  'ginvoke.c',
98  'giinterfaceinfo.c',
99  'giobjectinfo.c',
100  'gipropertyinfo.c',
101  'giregisteredtypeinfo.c',
102  'girepository.c',
103  'girffi.c',
104  'gisignalinfo.c',
105  'gistructinfo.c',
106  'gitypeinfo.c',
107  'gitypelib.c',
108  'giunioninfo.c',
109  'giversion.c',
110  'givfuncinfo.c',
111]
112
113# Used in gir/meson.build
114girepo_gir_sources = files(
115  'giarginfo.c',
116  'gibaseinfo.c',
117  'gicallableinfo.c',
118  'giconstantinfo.c',
119  'gienuminfo.c',
120  'gifieldinfo.c',
121  'gifunctioninfo.c',
122  'giinterfaceinfo.c',
123  'giobjectinfo.c',
124  'gipropertyinfo.c',
125  'giregisteredtypeinfo.c',
126  'girepository.c',
127  'gisignalinfo.c',
128  'gistructinfo.c',
129  'gitypeinfo.c',
130  'giunioninfo.c',
131  'giversion.c',
132  'givfuncinfo.c',
133  'giarginfo.h',
134  'gibaseinfo.h',
135  'gicallableinfo.h',
136  'giconstantinfo.h',
137  'gienuminfo.h',
138  'gifieldinfo.h',
139  'gifunctioninfo.h',
140  'giinterfaceinfo.h',
141  'giobjectinfo.h',
142  'gipropertyinfo.h',
143  'giregisteredtypeinfo.h',
144  'girepository.h',
145  'gisignalinfo.h',
146  'gistructinfo.h',
147  'gitypeinfo.h',
148  'gitypelib.h',
149  'gitypes.h',
150  'giunioninfo.h',
151  'givfuncinfo.h',
152) + [gi_version_h]
153
154
155install_headers(girepo_headers, subdir: 'gobject-introspection-1.0')
156
157if cc.get_id() != 'msvc'
158  custom_c_args = cc.get_supported_arguments([
159    '-Wno-unused-parameter',
160    '-Wno-duplicated-branches',
161    '-Wno-type-limits',
162    '-Wno-cast-align',
163    '-Wno-missing-field-initializers',
164  ])
165endif
166
167lib_version = '1.0.0'
168lib_version_arr = lib_version.split('.')
169lib_version_major = lib_version_arr[0].to_int()
170lib_version_minor = lib_version_arr[1].to_int()
171lib_version_micro = lib_version_arr[2].to_int()
172
173osx_current = lib_version_major + 1
174lib_osx_version = [osx_current, '@0@.@1@'.format(osx_current, lib_version_minor)]
175
176girepo_lib = shared_library('girepository-1.0',
177  sources: girepo_sources,
178  include_directories : configinc,
179  c_args: gi_hidden_visibility_cflags + ['-DG_IREPOSITORY_COMPILATION'] +
180          custom_c_args,
181  dependencies: [glib_dep, gobject_dep, gmodule_dep,
182                 gio_dep, girepo_internals_dep],
183  version: lib_version,
184  darwin_versions: lib_osx_version,
185  install: true,
186)
187
188girepo_dep = declare_dependency(
189  link_with: girepo_lib,
190  dependencies: [glib_dep, gobject_dep, gio_dep, gmodule_dep],
191  include_directories: include_directories('.'),
192)
193
194gthash_test = executable('gthash-test', 'gthash-test.c',
195  dependencies: girepo_gthash_dep,
196)
197
198test('gthash-test', gthash_test)
199
200if giounix_dep.found() or giowin_dep.found()
201  executable('gi-dump-types', 'gi-dump-types.c',
202    dependencies: [girepo_dep, giounix_dep, giowin_dep])
203endif
204