xref: /aosp_15_r20/external/harfbuzz_ng/util/meson.build (revision 2d1272b857b1f7575e6e246373e1cb218663db8a)
1hb_view_sources = [
2  'hb-view.cc',
3]
4
5hb_shape_sources = [
6  'hb-shape.cc',
7]
8
9hb_info_sources = [
10  'hb-info.cc',
11]
12
13hb_ot_shape_closure_sources = [
14  'hb-ot-shape-closure.cc',
15]
16
17hb_subset_cli_sources = [
18  'hb-subset.cc',
19  'helper-subset.hh',
20]
21
22util_deps = [freetype_dep, cairo_dep, cairo_ft_dep, glib_dep]
23
24if conf.get('HAVE_GLIB', 0) == 1
25  if conf.get('HAVE_CAIRO', 0) == 1
26    hb_view = executable('hb-view', hb_view_sources,
27      cpp_args: cpp_args,
28      include_directories: [incconfig, incsrc],
29      dependencies: [util_deps, chafa_dep],
30      link_with: [libharfbuzz, libharfbuzz_cairo],
31      install: true,
32    )
33    meson.override_find_program('hb-view', hb_view)
34  endif
35
36  hb_shape = executable('hb-shape', hb_shape_sources,
37    cpp_args: cpp_args,
38    include_directories: [incconfig, incsrc],
39    dependencies: util_deps,
40    link_with: [libharfbuzz],
41    install: true,
42  )
43  meson.override_find_program('hb-shape', hb_shape)
44
45  hb_info = executable('hb-info', [hb_info_sources, gobject_enums_h],
46    cpp_args: cpp_args,
47    include_directories: [incconfig, incsrc],
48    dependencies: [util_deps, libharfbuzz_gobject_dep, chafa_dep],
49    link_with: [libharfbuzz],
50    install: true,
51  )
52  meson.override_find_program('hb-info', hb_info)
53
54  hb_subset = executable('hb-subset', hb_subset_cli_sources,
55    cpp_args: cpp_args,
56    include_directories: [incconfig, incsrc],
57    dependencies: util_deps,
58    link_with: [libharfbuzz, libharfbuzz_subset],
59    install: true,
60  )
61  meson.override_find_program('hb-subset', hb_subset)
62
63  hb_ot_shape_closure = executable('hb-ot-shape-closure', hb_ot_shape_closure_sources,
64    cpp_args: cpp_args,
65    include_directories: [incconfig, incsrc],
66    dependencies: util_deps,
67    link_with: [libharfbuzz],
68    install: true,
69  )
70  meson.override_find_program('hb-ot-shape-closure', hb_ot_shape_closure)
71
72  if get_option('experimental_api')
73    test('test-hb-subset-parsing',
74      executable('test-hb-subset-parsing',
75        ['test-hb-subset-parsing.c', 'helper-subset.hh'],
76        cpp_args: cpp_args,
77        c_args: ['-DHB_EXPERIMENTAL_API'],
78        include_directories: [incconfig, incsrc],
79        dependencies: util_deps,
80        link_with: [libharfbuzz, libharfbuzz_subset],
81        install: false,
82    ),
83    workdir : meson.current_source_dir(),
84    suite: ['util'])
85  endif
86else
87  # Disable tests that use this
88  hb_shape = disabler()
89  hb_subset = disabler()
90endif
91