1 install_header_subdir = 'json-glib-1.0/json-glib'
2 install_header_dir = join_paths(json_includedir, install_header_subdir)
4 configure_file(output: 'config.h', configuration: cdata)
16 'json-version-macros.h'
19 json_glib_enums = gnome.mkenums('json-enum-types',
21 h_template: 'json-enum-types.h.in',
22 c_template: 'json-enum-types.c.in',
24 install_dir: install_header_dir)
40 'json-serializable.c',
45 version_data = configuration_data()
46 version_data.set('JSON_MAJOR_VERSION', json_version_major)
47 version_data.set('JSON_MINOR_VERSION', json_version_minor)
48 version_data.set('JSON_MICRO_VERSION', json_version_micro)
49 version_data.set('JSON_VERSION', meson.project_version())
51 version_h = configure_file(input: 'json-version.h.in',
52 output: 'json-version.h',
53 install_dir: install_header_dir,
54 configuration: version_data)
56 install_headers(source_h, subdir: install_header_subdir)
60 '-DG_LOG_DOMAIN="Json"',
61 '-DJSON_LOCALEDIR="@0@"'.format(json_localedir)
66 if host_system == 'linux'
67 common_ldflags = [ '-Wl,-Bsymbolic', '-Wl,-z,relro', '-Wl,-z,now', ]
70 # Maintain compatibility with autotools
71 if host_system == 'darwin'
72 common_ldflags += [ '-compatibility_version=1', '-current_version=1.0', ]
76 json_lib = library('json-glib-1.0',
80 include_directories: root_dir,
81 dependencies: [ gio_dep, gobject_dep, ],
82 c_args: json_c_args + common_cflags + extra_args,
83 link_args: common_ldflags,
86 pkgg = import('pkgconfig')
88 pkgg.generate(libraries: [ json_lib ],
90 version: json_version,
92 filebase: 'json-glib-@0@'.format(apiversion),
93 description: 'JSON Parser for GLib.',
94 requires: 'glib-2.0 gio-2.0')
96 json_gen_sources = [ json_glib_enums, version_h ]
98 json_gen_sources += gnome.generate_gir(json_lib,
99 sources: source_c + source_h,
101 nsversion: apiversion,
102 identifier_prefix: 'Json',
103 symbol_prefix: 'json',
104 export_packages: 'json-glib-1.0',
105 includes: [ 'GObject-2.0', 'Gio-2.0', ],
107 extra_args: ['-DJSON_COMPILATION'])
110 json_glib_dep = declare_dependency(link_with: json_lib,
111 include_directories: root_dir,
112 dependencies: [ gobject_dep, gio_dep, ],
113 sources: json_gen_sources)
116 [ 'json-glib-validate', [ 'json-glib-validate.c', ] ],
117 [ 'json-glib-format', [ 'json-glib-format.c', ] ],
124 executable(bin_name, bin_sources, c_args: json_c_args, dependencies: json_glib_dep)