harfbuzz/src/Makefile.sources

236 lines
5.2 KiB
Makefile
Raw Normal View History

# Base and default-included sources and headers
HB_BASE_sources = \
hb-atomic.hh \
hb-blob.hh \
hb-blob.cc \
hb-buffer.hh \
hb-buffer-serialize.cc \
hb-buffer.cc \
hb-cache.hh \
hb-common.cc \
hb-debug.hh \
2017-10-31 22:34:01 +01:00
hb-dsalgs.hh \
hb-face.hh \
hb-face.cc \
hb-font.hh \
hb-font.cc \
hb-iter.hh \
hb-map.hh \
hb-map.cc \
hb-machinery.hh \
hb-mutex.hh \
2018-08-06 14:01:52 +02:00
hb-null.hh \
hb-object.hh \
hb-open-file.hh \
hb-open-type.hh \
hb-ot-color-cbdt-table.hh \
hb-ot-cmap-table.hh \
hb-ot-glyf-table.hh \
hb-ot-hdmx-table.hh \
hb-ot-head-table.hh \
hb-ot-hhea-table.hh \
hb-ot-hmtx-table.hh \
hb-ot-kern-table.hh \
hb-ot-maxp-table.hh \
hb-ot-name-table.hh \
hb-ot-os2-table.hh \
hb-ot-os2-unicode-ranges.hh \
hb-ot-post-macroman.hh \
hb-ot-post-table.hh \
Autogenerate the BCP 47 to OpenType mappings The new script, gen-tag-table.py, generates `ot_languages` automatically from the [OpenType language system tag registry][ot] and the [IANA Language Subtag Registry][bcp47] with some manual modifications. If an OpenType tag maps to a BCP 47 macrolanguage, all the macrolanguage's individual languages are mapped to the same OpenType tag, except for individual languages with their own OpenType mappings. Deprecated BCP 47 tags are canonicalized. [ot]: https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags [bcp47]: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry Some OpenType tags correspond to multiple ISO 639 codes. The mapping from ISO 639 codes lists OpenType tags in priority order, such that more specific or more likely tags appear first. Some OpenType tags have no corresponding ISO 639 code in the registry so their mappings use BCP 47 subtags besides the language. For example, any BCP 47 tag with a fonipa variant subtag is mapped to 'IPPH', and 'IPPH' is mapped back to und-fonipa. Other OpenType tags have no corresponding ISO 639 code because it is not clear what they are for. HarfBuzz just ignores these tags. One such ignored tag is 'ZHP ' (Chinese Phonetic). It probably means zh-Latn. However, it is used in Microsoft JhengHei and Microsoft YaHei with the script tag 'hani', implying that it is not a romanization scheme after all. It would be simple enough to add this mapping to gen-tag-table.py once a definitive mapping is determined. The manual modifications are mainly either obvious mappings that the OpenType registry omits or mappings for compatibility with previous versions of HarfBuzz. Some of the old mappings were discarded, though, for homophonous language names. For example, OpenType maps 'KUI ' to kxu; previous versions of HarfBuzz also mapped it to kvd, because kvd and kxu both happen to be called "Kui". gen-tag-table.py also generates a function to convert multi-subtag tags like el-polyton and zh-HK to OpenType tags, replacing `ot_languages_zh` and the hard-coded list of special cases in `hb_ot_tags_from_language`. It also generates a function to convert OpenType tags to BCP 47, replacing the hard-coded list of special cases in `hb_ot_tag_to_language`.
2017-12-09 04:45:52 +01:00
hb-ot-tag-table.hh \
hb-ot-tag.cc \
hb.hh \
hb-set-digest.hh \
hb-set.hh \
hb-set.cc \
hb-shape.cc \
hb-shape-plan.hh \
hb-shape-plan.cc \
hb-shaper-list.hh \
hb-shaper-impl.hh \
hb-shaper.hh \
hb-shaper.cc \
2018-05-25 00:58:26 +02:00
hb-static.cc \
hb-string-array.hh \
hb-unicode.hh \
2018-10-03 20:19:17 +02:00
hb-unicode-emoji-table.hh \
hb-unicode.cc \
hb-vector.hh \
hb-utf.hh \
hb-warning.cc \
$(NULL)
HB_BASE_RAGEL_GENERATED_sources = \
hb-buffer-deserialize-json.hh \
hb-buffer-deserialize-text.hh \
$(NULL)
HB_BASE_RAGEL_sources = \
hb-buffer-deserialize-json.rl \
hb-buffer-deserialize-text.rl \
$(NULL)
HB_BASE_headers = \
hb.h \
hb-blob.h \
hb-buffer.h \
hb-common.h \
hb-deprecated.h \
hb-face.h \
hb-font.h \
hb-map.h \
hb-set.h \
hb-shape.h \
hb-shape-plan.h \
hb-unicode.h \
hb-version.h \
$(NULL)
HB_FALLBACK_sources = \
hb-fallback-shape.cc \
$(NULL)
HB_OT_sources = \
hb-aat-layout.cc \
hb-aat-layout-common.hh \
2018-02-25 22:01:09 +01:00
hb-aat-layout-ankr-table.hh \
hb-aat-layout-bsln-table.hh \
hb-aat-layout-feat-table.hh \
2018-02-19 20:57:08 +01:00
hb-aat-layout-kerx-table.hh \
2018-02-25 22:01:09 +01:00
hb-aat-layout-morx-table.hh \
2018-02-19 20:57:08 +01:00
hb-aat-layout-trak-table.hh \
hb-aat-layout.hh \
hb-aat-ltag-table.hh \
2018-08-26 08:06:37 +02:00
hb-ot-face.hh \
hb-ot-face.cc \
hb-ot-font.cc \
hb-ot-layout.cc \
hb-ot-layout-base-table.hh \
hb-ot-layout-common.hh \
hb-ot-layout-gdef-table.hh \
hb-ot-layout-gpos-table.hh \
hb-ot-layout-gsubgpos.hh \
hb-ot-layout-gsub-table.hh \
hb-ot-layout-jstf-table.hh \
hb-ot-layout.hh \
2018-02-27 17:45:54 +01:00
hb-ot-color.cc \
hb-ot-color-colr-table.hh \
hb-ot-color-cpal-table.hh \
hb-ot-color-sbix-table.hh \
hb-ot-color-svg-table.hh \
hb-ot-map.cc \
hb-ot-map.hh \
hb-ot-math.cc \
hb-ot-math-table.hh \
hb-ot-shape.cc \
hb-ot-shape-complex-arabic.cc \
hb-ot-shape-complex-arabic-fallback.hh \
hb-ot-shape-complex-arabic.hh \
hb-ot-shape-complex-arabic-table.hh \
hb-ot-shape-complex-arabic-win1256.hh \
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.hh \
hb-ot-shape-complex-indic-table.cc \
hb-ot-shape-complex-khmer.hh \
hb-ot-shape-complex-khmer.cc \
hb-ot-shape-complex-myanmar.hh \
hb-ot-shape-complex-myanmar.cc \
hb-ot-shape-complex-thai.cc \
hb-ot-shape-complex-use.cc \
hb-ot-shape-complex-use.hh \
hb-ot-shape-complex-use-table.cc \
hb-ot-shape-complex.hh \
hb-ot-shape-normalize.hh \
hb-ot-shape-normalize.cc \
hb-ot-shape-fallback.hh \
hb-ot-shape-fallback.cc \
hb-ot-shape.hh \
hb-ot-var.cc \
hb-ot-var-avar-table.hh \
hb-ot-var-fvar-table.hh \
2017-01-23 20:41:43 +01:00
hb-ot-var-hvar-table.hh \
hb-ot-var-mvar-table.hh \
$(NULL)
HB_OT_RAGEL_GENERATED_sources = \
hb-ot-shape-complex-indic-machine.hh \
hb-ot-shape-complex-khmer-machine.hh \
hb-ot-shape-complex-myanmar-machine.hh \
hb-ot-shape-complex-use-machine.hh \
$(NULL)
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 \
$(NULL)
HB_OT_headers = \
hb-ot.h \
hb-ot-font.h \
hb-ot-layout.h \
hb-ot-math.h \
hb-ot-name.h \
hb-ot-shape.h \
hb-ot-tag.h \
hb-ot-var.h \
$(NULL)
# Optional Sources and Headers with external deps
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
# System-dependent sources and headers
HB_CORETEXT_sources = hb-coretext.cc
HB_CORETEXT_headers = hb-coretext.h
HB_DIRECTWRITE_sources = hb-directwrite.cc
HB_DIRECTWRITE_headers = hb-directwrite.h
HB_UNISCRIBE_sources = hb-uniscribe.cc
HB_UNISCRIBE_headers = hb-uniscribe.h
# Additional supplemental sources
HB_UCDN_sources = hb-ucdn.cc
# Sources for libharfbuzz-gobject and libharfbuzz-icu
HB_ICU_sources = hb-icu.cc
HB_ICU_headers = hb-icu.h
2018-01-18 07:09:07 +01:00
# Sources for libharfbuzz-subset
HB_SUBSET_sources = \
hb-static.cc \
hb-subset.cc \
2018-08-29 02:22:38 +02:00
hb-subset.hh \
hb-subset-glyf.cc \
2018-08-29 02:22:38 +02:00
hb-subset-glyf.hh \
2018-02-13 22:50:50 +01:00
hb-subset-input.cc \
hb-subset-input.hh \
2018-02-06 00:22:30 +01:00
hb-subset-plan.cc \
2018-08-29 02:22:38 +02:00
hb-subset-plan.hh \
$(NULL)
HB_SUBSET_headers = \
hb-subset.h \
$(NULL)
2018-01-18 07:09:07 +01:00
HB_GOBJECT_DIST_sources = hb-gobject-structs.cc
HB_GOBJECT_DIST_headers = hb-gobject.h hb-gobject-structs.h
HB_GOBJECT_ENUM_sources = hb-gobject-enums.cc
HB_GOBJECT_ENUM_headers = hb-gobject-enums.h
HB_GOBJECT_NODIST_sources = $(HB_GOBJECT_ENUM_sources)
HB_GOBJECT_NODIST_headers = $(HB_GOBJECT_ENUM_headers)
HB_GOBJECT_sources = $(HB_GOBJECT_DIST_sources) $(HB_GOBJECT_NODIST_sources)
HB_GOBJECT_headers = $(HB_GOBJECT_DIST_headers) $(HB_GOBJECT_NODIST_headers)