summaryrefslogtreecommitdiff
path: root/pango2/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'pango2/meson.build')
-rw-r--r--pango2/meson.build298
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