diff options
Diffstat (limited to 'pango2/meson.build')
-rw-r--r-- | pango2/meson.build | 298 |
1 files changed, 298 insertions, 0 deletions
diff --git a/pango2/meson.build b/pango2/meson.build new file mode 100644 index 00000000..8dce43d8 --- /dev/null +++ b/pango2/meson.build @@ -0,0 +1,298 @@ +pango_sources = [ + 'break.c', + 'ellipsize.c', + 'glyphstring.c', + 'itemize.c', + 'pango-attr.c', + 'pango-attr-list.c', + 'pango-attr-iterator.c', + 'pango-attributes.c', + 'pango-bidi.c', + 'pango-color.c', + 'pango-context.c', + 'pango-emoji.c', + 'pango-font.c', + 'pango-font-description.c', + 'pango-font-face.c', + 'pango-font-family.c', + 'pango-font-metrics.c', + 'pango-fontmap.c', + 'pango-fontset.c', + 'pango-fontset-cached.c', + 'pango-glyph-item.c', + 'pango-gravity.c', + 'pango-item.c', + 'pango-language.c', + 'pango-language-set.c', + 'pango-language-set-simple.c', + 'pango-layout.c', + 'pango-markup.c', + 'pango-matrix.c', + 'pango-renderer.c', + 'pango-script.c', + 'pango-tabs.c', + 'pango-trace.c', + 'pango-utils.c', + 'shape.c', + 'serializer.c', + 'json/gtkjsonparser.c', + 'json/gtkjsonprinter.c', + 'pango-line.c', + 'pango-run.c', + 'pango-line-breaker.c', + 'pango-lines.c', + 'pango-line-iter.c', + 'pango-hbface.c', + 'pango-hbfamily.c', + 'pango-generic-family.c', + 'pango-hbfont.c', + 'pango-userface.c', + 'pango-userfont.c', +] + +pango_headers = [ + 'pango.h', + 'pango-attr.h', + 'pango-attr-list.h', + 'pango-attr-iterator.h', + 'pango-attributes.h', + 'pango-break.h', + 'pango-color.h', + 'pango-context.h', + 'pango-direction.h', + 'pango-font.h', + 'pango-font-description.h', + 'pango-font-face.h', + 'pango-font-family.h', + 'pango-font-metrics.h', + 'pango-fontmap.h', + 'pango-fontset.h', + 'pango-generic-family.h', + 'pango-glyph.h', + 'pango-gravity.h', + 'pango-item.h', + 'pango-language.h', + 'pango-line.h', + 'pango-run.h', + 'pango-line-breaker.h', + 'pango-line-iter.h', + 'pango-lines.h', + 'pango-layout.h', + 'pango-matrix.h', + 'pango-markup.h', + 'pango-renderer.h', + 'pango-script.h', + 'pango-tabs.h', + 'pango-types.h', + 'pango-utils.h', + 'pango-hbface.h', + 'pango-hbfont.h', + 'pango-userface.h', + 'pango-userfont.h', +] + +pango_gir_includes = [ + 'HarfBuzz-0.0', + 'GObject-2.0', + 'Gio-2.0' +] + +if cairo_dep.found() + pango_headers += [ + 'pangocairo.h', + 'pangocairo-context.h', + 'pangocairo-font.h', + 'pangocairo-render.h', + ] + + pango_sources += [ + 'pangocairo-context.c', + 'pangocairo-font.c', + 'pangocairo-render.c', + ] + + pango_gir_includes += [ + 'cairo-1.0', + ] +endif + +if host_system == 'darwin' + pango_headers += [ + 'pangocoretext-fontmap.h', + ] + + pango_sources += [ + 'pangocoretext-fontmap.c', + ] +endif + +if host_system == 'linux' + pango_headers += [ + 'pangofc-fontmap.h', + ] + + pango_sources += [ + 'pangofc-fontmap.c', + 'pangofc-language-set.c', + ] + + pango_gir_includes += [ + 'fontconfig-2.0', + ] +endif + +if host_system == 'windows' + pango_headers += [ + 'pangodwrite-fontmap.h', + ] + + pango_sources += [ + 'pangodwrite-fontmap.cpp', + ] + if cairo_dep.found() + pango_sources += [ + 'pangocairo-dwrite-font.cpp', + ] + endif + + pango_deps += [ + cc.find_library('gdi32'), + cc.find_library('dwrite'), + ] +endif + +pango_installed_headers = pango_headers + [ 'pango-version-macros.h' ] + +install_headers(pango_installed_headers, subdir: pango_api_path) + +# Features header +pango_features_conf = configuration_data() +pango_features_conf.set('PANGO2_VERSION_MAJOR', pango_major_version) +pango_features_conf.set('PANGO2_VERSION_MINOR', pango_minor_version) +pango_features_conf.set('PANGO2_VERSION_MICRO', pango_micro_version) +pango_features_conf.set('PANGO2_API_VERSION', pango_api_version) +pango_features_conf.set('PANGO2_CURRENT_MINUS_AGE', '0') +if cairo_dep.found() + pango_features_conf.set('PANGO2_RENDERING_CAIRO', 1) +endif + +pango_features_h = configure_file( + input: 'pango-features.h.meson', + output: 'pango-features.h', + configuration: pango_features_conf, + install: true, + install_dir: join_paths(pango_includedir, pango_api_path), +) + +# Enumerations for GType +pango_enums = gnome.mkenums( + 'pango-enum-types', + sources: pango_headers, + identifier_prefix: 'Pango2', + symbol_prefix: 'PANGO2', + c_template: 'pango-enum-types.c.template', + h_template: 'pango-enum-types.h.template', + install_dir: join_paths(pango_includedir, pango_api_path), + install_header: true, +) +pango_enum_h = pango_enums[1] + +if host_system == 'windows' + pango_rc = configure_file( + input: 'pango.rc.in', + output: 'pango.rc', + configuration: pango_features_conf, + ) + pango_res = import('windows').compile_resources(pango_rc) + pango_sources += pango_res +endif + +pango_cflags = [ + '-DG_LOG_DOMAIN="Pango"', + '-DG_LOG_USE_STRUCTURED=1', + '-DPANGO_COMPILATION', + '-DSYSCONFDIR="@0@"'.format(pango_sysconfdir), + '-DLIBDIR="@0@"'.format(pango_libdir), +] + +pango_inc = include_directories('.') + +libpango = library( + pango_api_name, + sources: pango_sources + pango_enums, + version: pango_libversion, + soversion: pango_soversion, + darwin_versions : pango_osxversion, + install: true, + dependencies: pango_deps, + include_directories: [ root_inc, pango_inc ], + c_args: common_cflags + pango_debug_cflags + pango_cflags, + cpp_args: common_cflags + pango_debug_cflags + pango_cflags, + link_args: common_ldflags, +) + +pango_dep_sources = [ pango_enum_h ] + +gir = find_program('g-ir-scanner', required : get_option('introspection')) +build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled()) + +if build_gir + gir_args = [ + '--quiet', + ] + harfbuzz_gobject_dep = dependency('harfbuzz-gobject', + version: harfbuzz_req_version, + required: false, + fallback: ['harfbuzz', 'libharfbuzz_gobject_dep']) + + if harfbuzz_gobject_dep.found() + pango_deps += harfbuzz_gobject_dep + endif + pango_gir = gnome.generate_gir( + libpango, + sources: pango_sources + pango_headers + [ pango_enum_h, pango_features_h ], + namespace: 'Pango2', + nsversion: pango_api_version, + identifier_prefix: 'Pango2', + symbol_prefix: 'pango2', + export_packages: 'pango', + dependencies: pango_deps, + includes: pango_gir_includes, + header: 'pango/pango.h', + install: true, + extra_args: gir_args, + ) + pango_gir_dep = declare_dependency(sources: pango_gir) + pango_dep_sources += pango_gir +endif + +libpango_dep = declare_dependency( + link_with: libpango, + include_directories: pango_inc, + dependencies: pango_deps, + sources: pango_dep_sources, +) +meson.override_dependency('pango', libpango_dep) + +pango_pkg_requires = ['gobject-2.0'] +if harfbuzz_dep.type_name() == 'pkgconfig' + pango_pkg_requires += 'harfbuzz' +endif + +pkgconfig.generate(libpango, + name: 'Pango2', + description: 'Internationalized text handling', + requires: pango_pkg_requires, + filebase: 'pango2', + subdirs: pango_api_name, +) + +if cairo_dep.found() + pkgconfig.generate(libpango, + name: 'Pango2 Cairo', + description: 'Cairo rendering support for Pango2', + requires: ['pango2'], + filebase: 'pango2cairo', + subdirs: pango_api_name, + ) +endif |