2018-05-16 23:28:53 +00:00
|
|
|
hb_base_sources = [
|
|
|
|
'hb-blob.cc',
|
|
|
|
'hb-buffer-serialize.cc',
|
|
|
|
'hb-buffer.cc',
|
|
|
|
'hb-common.cc',
|
|
|
|
'hb-face.cc',
|
|
|
|
'hb-font.cc',
|
|
|
|
'hb-ot-tag.cc',
|
|
|
|
'hb-set.cc',
|
|
|
|
'hb-shape.cc',
|
|
|
|
'hb-shape-plan.cc',
|
|
|
|
'hb-shaper.cc',
|
|
|
|
'hb-unicode.cc',
|
|
|
|
'hb-warning.cc',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_base_headers = [
|
|
|
|
'hb.h',
|
|
|
|
'hb-blob.h',
|
|
|
|
'hb-buffer.h',
|
|
|
|
'hb-common.h',
|
|
|
|
'hb-deprecated.h',
|
|
|
|
'hb-face.h',
|
|
|
|
'hb-font.h',
|
|
|
|
'hb-set.h',
|
|
|
|
'hb-shape.h',
|
|
|
|
'hb-shape-plan.h',
|
|
|
|
'hb-unicode.h',
|
|
|
|
'hb-version.h',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_base_ragel_sources = [
|
|
|
|
'hb-buffer-deserialize-json.rl',
|
|
|
|
'hb-buffer-deserialize-text.rl',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_fallback_sources = [
|
|
|
|
'hb-fallback-shape.cc',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_ot_sources = [
|
|
|
|
'hb-aat-layout.cc',
|
|
|
|
'hb-ot-font.cc',
|
|
|
|
'hb-ot-layout.cc',
|
|
|
|
'hb-ot-color.cc',
|
|
|
|
'hb-ot-map.cc',
|
|
|
|
'hb-ot-math.cc',
|
|
|
|
'hb-ot-shape.cc',
|
|
|
|
'hb-ot-shape-complex-arabic.cc',
|
|
|
|
'hb-ot-shape-complex-default.cc',
|
|
|
|
'hb-ot-shape-complex-hangul.cc',
|
|
|
|
'hb-ot-shape-complex-hebrew.cc',
|
|
|
|
'hb-ot-shape-complex-indic.cc',
|
|
|
|
'hb-ot-shape-complex-indic-table.cc',
|
|
|
|
'hb-ot-shape-complex-khmer.cc',
|
|
|
|
'hb-ot-shape-complex-myanmar.cc',
|
|
|
|
'hb-ot-shape-complex-thai.cc',
|
|
|
|
'hb-ot-shape-complex-tibetan.cc',
|
|
|
|
'hb-ot-shape-complex-use.cc',
|
|
|
|
'hb-ot-shape-complex-use-table.cc',
|
|
|
|
'hb-ot-shape-normalize.cc',
|
|
|
|
'hb-ot-shape-fallback.cc',
|
|
|
|
'hb-ot-var.cc',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_ot_headers = [
|
|
|
|
'hb-ot.h',
|
|
|
|
'hb-ot-font.h',
|
|
|
|
'hb-ot-layout.h',
|
|
|
|
'hb-ot-math.h',
|
|
|
|
'hb-ot-shape.h',
|
|
|
|
'hb-ot-tag.h',
|
|
|
|
'hb-ot-var.h',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_ot_ragel_sources = [
|
|
|
|
'hb-ot-shape-complex-indic-machine.rl',
|
|
|
|
'hb-ot-shape-complex-khmer-machine.rl',
|
|
|
|
'hb-ot-shape-complex-myanmar-machine.rl',
|
|
|
|
'hb-ot-shape-complex-use-machine.rl',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_ft_sources = [
|
|
|
|
'hb-ft.cc',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_ft_headers = [
|
|
|
|
'hb-ft.h',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_glib_sources = [
|
|
|
|
'hb-glib.cc',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_glib_headers = [
|
|
|
|
'hb-glib.h',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_graphite2_sources = [
|
|
|
|
'hb-graphite2.cc',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_graphite2_headers = [
|
|
|
|
'hb-graphite2.h',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_coretext_sources = [
|
|
|
|
'hb-coretext.cc',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_icu_sources = [
|
|
|
|
'hb-icu.cc',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_icu_headers = [
|
|
|
|
'hb-icu.h',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_subset_sources = [
|
|
|
|
'hb-subset.cc',
|
|
|
|
'hb-subset-glyf.cc',
|
|
|
|
'hb-subset-input.cc',
|
|
|
|
'hb-subset-plan.cc',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_subset_headers = [
|
|
|
|
'hb-subset.h',
|
|
|
|
'hb-subset-glyf.hh',
|
|
|
|
'hb-subset-plan.hh',
|
|
|
|
'hb-subset-private.hh',
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_gobject_sources = [
|
|
|
|
'hb-gobject-structs.cc'
|
|
|
|
]
|
|
|
|
|
|
|
|
hb_gobject_headers = [
|
|
|
|
'hb-gobject.h',
|
|
|
|
'hb-gobject-structs.h',
|
|
|
|
]
|
|
|
|
|
2018-11-12 15:58:09 +00:00
|
|
|
incucdn = []
|
2018-05-16 23:28:53 +00:00
|
|
|
incsrc = include_directories('.')
|
|
|
|
|
2018-11-12 15:58:09 +00:00
|
|
|
hb_sources = hb_base_sources + hb_fallback_sources + hb_ot_sources
|
2018-06-05 00:15:43 +00:00
|
|
|
hb_headers = hb_base_headers + hb_ot_headers
|
2018-05-16 23:28:53 +00:00
|
|
|
|
2018-11-12 15:58:09 +00:00
|
|
|
if not get_option('ucdn').disabled()
|
|
|
|
conf.set('HAVE_UCDN', 1)
|
|
|
|
hb_sources += ['hb-ucdn.cc', 'hb-ucdn/ucdn.c']
|
|
|
|
incucdn = include_directories('hb-ucdn')
|
|
|
|
endif
|
|
|
|
|
2018-05-16 23:28:53 +00:00
|
|
|
if conf.get('HAVE_FREETYPE', 0) == 1
|
|
|
|
hb_sources += hb_ft_sources
|
|
|
|
hb_headers += hb_ft_headers
|
|
|
|
endif
|
|
|
|
|
|
|
|
if conf.get('HAVE_GRAPHITE2', 0) == 1
|
|
|
|
hb_sources += hb_graphite2_sources
|
|
|
|
hb_headers += hb_graphite2_headers
|
|
|
|
endif
|
|
|
|
|
|
|
|
if conf.get('HAVE_GLIB', 0) == 1
|
|
|
|
hb_sources += hb_glib_sources
|
|
|
|
hb_headers += hb_glib_headers
|
|
|
|
endif
|
|
|
|
|
|
|
|
if conf.get('HAVE_ICU', 0) == 1
|
|
|
|
hb_sources += hb_icu_sources
|
|
|
|
hb_headers += hb_icu_headers
|
|
|
|
endif
|
|
|
|
|
2018-11-12 16:56:56 +00:00
|
|
|
if conf.get('HAVE_UNISCRIBE', 0) == 1
|
|
|
|
hb_sources += ['hb-uniscribe.cc']
|
|
|
|
hb_headers += ['hb-uniscribe.h']
|
|
|
|
endif
|
|
|
|
|
2018-11-12 16:56:56 +00:00
|
|
|
if conf.get('HAVE_DIRECTWRITE', 0) == 1
|
|
|
|
hb_sources += ['hb-directwrite.cc']
|
|
|
|
hb_headers += ['hb-directwrite.h']
|
|
|
|
endif
|
|
|
|
|
2018-06-05 00:15:43 +00:00
|
|
|
version = '0.' + '0'.join(meson.project_version().split('.')) + '.0'
|
|
|
|
|
2018-05-16 23:28:53 +00:00
|
|
|
libharfbuzz = library('harfbuzz', hb_sources,
|
|
|
|
include_directories: [incbase, incucdn],
|
|
|
|
dependencies: deps,
|
|
|
|
cpp_args: cpp_args,
|
2018-05-17 21:53:20 +00:00
|
|
|
vs_module_defs: 'harfbuzz.def',
|
|
|
|
soversion: '0',
|
2018-06-05 00:15:43 +00:00
|
|
|
version: version,
|
|
|
|
install: true,
|
2018-05-17 21:53:20 +00:00
|
|
|
name_prefix: 'lib')
|
2018-05-16 23:28:53 +00:00
|
|
|
|
2018-10-12 14:11:49 +00:00
|
|
|
libharfbuzz_dep = declare_dependency(
|
|
|
|
link_with: libharfbuzz,
|
|
|
|
include_directories: [incbase, incucdn],
|
|
|
|
dependencies: deps)
|
|
|
|
|
2018-05-16 23:28:53 +00:00
|
|
|
libharfbuzz_subset = library('harfbuzz-subset', hb_subset_sources,
|
|
|
|
include_directories: incbase,
|
|
|
|
link_with: [libharfbuzz],
|
2018-05-17 21:53:20 +00:00
|
|
|
cpp_args: cpp_args,
|
|
|
|
vs_module_defs: 'harfbuzz-subset.def',
|
|
|
|
soversion: '0',
|
2018-06-05 00:15:43 +00:00
|
|
|
version: version,
|
|
|
|
install: true,
|
2018-05-17 21:53:20 +00:00
|
|
|
name_prefix: 'lib')
|
2018-05-16 23:28:53 +00:00
|
|
|
|
2018-10-12 14:11:49 +00:00
|
|
|
libharfbuzz_subset_dep = declare_dependency(
|
|
|
|
link_with: libharfbuzz_subset,
|
|
|
|
include_directories: incbase,
|
|
|
|
dependencies: deps)
|
|
|
|
|
2018-06-05 00:15:43 +00:00
|
|
|
pkgmod.generate(libharfbuzz,
|
|
|
|
description: 'HarfBuzz text shaping library',
|
2018-06-05 16:19:29 +00:00
|
|
|
subdirs: [meson.project_name()],
|
2018-06-05 00:15:43 +00:00
|
|
|
version: meson.project_version(),
|
|
|
|
)
|
|
|
|
|
|
|
|
pkgmod.generate(libharfbuzz_subset,
|
|
|
|
description: 'HarfBuzz font subsetter',
|
2018-06-05 16:19:29 +00:00
|
|
|
subdirs: [meson.project_name()],
|
2018-06-05 00:15:43 +00:00
|
|
|
version: meson.project_version(),
|
|
|
|
)
|
|
|
|
|
2018-05-16 23:28:53 +00:00
|
|
|
if conf.get('HAVE_GOBJECT', 0) == 1
|
|
|
|
gnome = import('gnome')
|
|
|
|
|
|
|
|
h_templ = configure_file(
|
|
|
|
input: 'hb-gobject-enums.h.tmpl',
|
|
|
|
output: 'hb-gobject-enums-tmp.h.tmpl',
|
|
|
|
configuration: configuration_data(),
|
|
|
|
format: 'cmake')
|
|
|
|
|
|
|
|
cc_templ = configure_file(
|
|
|
|
input: 'hb-gobject-enums.cc.tmpl',
|
|
|
|
output: 'hb-gobject-enums-tmp.cc.tmpl',
|
|
|
|
configuration: configuration_data(),
|
|
|
|
format: 'cmake')
|
|
|
|
|
|
|
|
enums = gnome.mkenums('hb-gobject',
|
|
|
|
sources: hb_headers,
|
|
|
|
h_template: h_templ,
|
|
|
|
c_template: cc_templ,
|
|
|
|
identifier_prefix: 'hb_',
|
|
|
|
symbol_prefix: 'hb_gobject',
|
|
|
|
)
|
|
|
|
|
|
|
|
enum_c = custom_target('hb-gobject-enums.cc',
|
|
|
|
input: enums[0],
|
|
|
|
output: 'hb-gobject-enums.cc',
|
|
|
|
command: [python3, files('fix_get_types.py')[0], '@INPUT@', '@OUTPUT@']
|
|
|
|
)
|
|
|
|
|
|
|
|
enum_h = custom_target('hb-gobject-enums.h',
|
|
|
|
input: enums[1],
|
|
|
|
output: 'hb-gobject-enums.h',
|
2018-06-05 00:15:43 +00:00
|
|
|
command: [python3, files('fix_get_types.py')[0], '@INPUT@', '@OUTPUT@'],
|
|
|
|
install: true,
|
|
|
|
install_dir: join_paths(get_option('prefix'), get_option('includedir'), meson.project_name()),
|
2018-05-16 23:28:53 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
hb_gobject_sources += [enum_c]
|
|
|
|
|
|
|
|
libharfbuzz_gobject = library('harfbuzz-gobject', [hb_gobject_sources, enum_c, enum_h],
|
|
|
|
include_directories: incbase,
|
|
|
|
dependencies: deps,
|
|
|
|
link_with: [libharfbuzz],
|
2018-05-17 21:53:20 +00:00
|
|
|
cpp_args: cpp_args,
|
|
|
|
vs_module_defs: 'harfbuzz-gobject.def',
|
|
|
|
soversion: '0',
|
2018-06-05 00:15:43 +00:00
|
|
|
version: version,
|
|
|
|
install: true,
|
2018-05-17 21:53:20 +00:00
|
|
|
name_prefix: 'lib')
|
2018-06-05 00:15:43 +00:00
|
|
|
|
2018-10-12 14:11:49 +00:00
|
|
|
libharfbuzz_gobject_dep = declare_dependency(
|
|
|
|
link_with: libharfbuzz_gobject,
|
|
|
|
include_directories: incbase,
|
|
|
|
dependencies: deps)
|
|
|
|
|
2018-06-05 00:15:43 +00:00
|
|
|
pkgmod.generate(libharfbuzz_gobject,
|
|
|
|
description: 'HarfBuzz text shaping library GObject integration',
|
2018-06-05 16:19:29 +00:00
|
|
|
subdirs: [meson.project_name()],
|
2018-06-05 00:15:43 +00:00
|
|
|
version: meson.project_version(),
|
|
|
|
)
|
2018-10-12 14:11:49 +00:00
|
|
|
else
|
|
|
|
libharfbuzz_gobject_dep = dependency('', required: false)
|
2018-05-16 23:28:53 +00:00
|
|
|
endif
|
2018-06-05 00:15:43 +00:00
|
|
|
|
|
|
|
install_headers(hb_headers + hb_gobject_headers + hb_subset_headers, subdir: meson.project_name())
|