Commit Graph

193 Commits

Author SHA1 Message Date
Khaled Hosny 1cf61f3053 [meson] Fix build with -Dgobject=disabled 2023-01-23 16:26:35 +02:00
Behdad Esfahbod def94aa8c5 [features] Add HB_HAS_GOBJECT 2023-01-22 14:01:34 -07:00
Behdad Esfahbod 8b12c19573 [face] Split hb-face-builder.cc 2023-01-05 11:42:21 -07:00
Matthias Clasen 4adc748b13 Move Color tables to src/OT/Color/ 2023-01-01 14:57:53 -07:00
Matthias Clasen dc5179d465 Drop hb-ot-color-colr-table.cc
Move everything into the .hh file.
2023-01-01 20:18:33 +02:00
Khaled Hosny 27684f14be [introspection] Skip sources not usable with GObject Introspection
There is no point in generating GIR for code interfacing with libraries
without introspection integration. This fixes spurious warnings on macOS
when g-ir-scanner mistakenly tries to scan system headers.
2023-01-01 20:08:19 +02:00
Matthias Clasen ef20b5e66f Typo fix 2022-12-28 08:51:27 -05:00
Matthias Clasen d18903e443 Add def files for libharfbuzz-cairo 2022-12-27 11:00:23 -07:00
Behdad Esfahbod c4f7563f81 [cairo] Fix build 2022-12-26 17:01:08 -07:00
Matthias Clasen 2e897cc90b Add a pc file for harfbuzz-cairo 2022-12-26 17:01:08 -07:00
Matthias Clasen 306645503d Work on proper build integration
Install hb-cairo.h and define HB_HAS_CAIRO.
2022-12-26 17:01:08 -07:00
Behdad Esfahbod 1ad24421a6 [hb-cairo] Rename files to C++ 2022-12-26 17:01:08 -07:00
Matthias Clasen 767bdd43a6 wip: Add libharfbuzz-cairo
This library will provide integration with cairo
for font rendering.
2022-12-26 17:01:08 -07:00
Behdad Esfahbod ae208963df Add hb-limits.hh 2022-12-26 12:30:39 -07:00
Behdad Esfahbod 11036ed71e [paint] Add hb-paint-extents.cc 2022-12-24 11:30:45 -07:00
Behdad Esfahbod 268d8b7ded [paint-extents] Start out 2022-12-23 14:45:56 -07:00
Behdad Esfahbod e2546f5ab0 [ft] Add hb-ft-colr.hh 2022-12-23 13:37:59 -07:00
Matthias Clasen 8377341b28 wip: implement paint_glyph 2022-12-23 13:37:59 -07:00
Matthias Clasen 83d0a49f71 wip: hb-paint 2022-12-23 13:37:59 -07:00
Nirbheek Chauhan 7be06f6377 meson: Override dependencies to improve usage as a subproject
With this change, harfbuzz can be consumed as a subproject without
making any changes to the build files of a project. All you need to do
is provide a wrap file with a `[provide]` section:

https://mesonbuild.com/Wrap-dependency-system-manual.html#provide-section

This is also necessary because otherwise projects need to hard-code
the subproject name, which might be `harfbuzz` when using `wrap-git` or
`harfbuzz-6.0.0` when using `wrap-file` (to build from a release
tarball). This can cause conflicts between different subprojects that
consume harfbuzz differently.

Other projects like glib, cairo, pango, etc already do this.
2022-12-18 08:28:55 +02:00
Behdad Esfahbod 2c0abf0258 Revert "[harfbuzz-subset.cc] Trim down!"
This reverts commit a335458d57.

While this can be vastly trimmed down, what I did is not right.
It still depends on hb-face, hb-font, hb-blob, hb-set, and hb-map.
2022-12-04 15:03:36 -07:00
Behdad Esfahbod a335458d57 [harfbuzz-subset.cc] Trim down! 2022-12-04 14:56:20 -07:00
Behdad Esfahbod 9704f8354e Merge branch 'config-header' 2022-12-04 13:58:52 -07:00
Behdad Esfahbod 10c8fc5553 [multimap] Add a multimap datastructure 2022-12-02 15:50:49 -07:00
Matthias Clasen c6d616cc41 Generate and install hb-features.h
This header has defines for all the optional
dependendencies that come with their own Harfbuzz
headers, so you can do:

  #include <hb-features.h>
  #ifdef HB_HAS_DIRECTWRITE
  #include <hb-directwrite.h>
  #endif
2022-12-01 18:16:55 +08:00
Marco Rebhan db292f6f02
Pass through absolute paths to cmake config directly
The previous code concatenates includedir to _harfbuzz_prefix verbatim,
which results in a wrong final include path in case includedir is an absolute
path. Instead, we can let meson determine the absolute include and lib paths
in advance and save them in the cmake config.

This is an issue in nixpkgs, where includedir is set to the final (absolute)
path of the built library in the Nix store, which causes CMake projects
depending on harfbuzz to not configure.

See https://github.com/NixOS/nixpkgs/issues/180054.
2022-10-26 22:13:44 +02:00
Garret Rieger 4ec5eb955f [subset] add a subset accelerator.
Can be optionally attached to the face during subsetting. Contains data which can accelerate future subsets.
2022-10-13 19:40:31 +00:00
Garret Rieger 4418beac93 [repacker] start implmenting MarkBasePos splitting. 2022-08-11 19:08:04 +00:00
Behdad Esfahbod f4f7d691af
Merge pull request #3779 from harfbuzz/split_pair_pos_2
[repacker] Add PairPosFormat2 table splitting in the repacker.
2022-08-09 22:23:23 -06:00
Garret Rieger 2264df6da3 [repacker] add utility that can calculate the size of Coverage+ClassDef via incremental class inclusion. 2022-08-05 18:33:03 +00:00
Garret Rieger b154b1e4c3 [repacker] pull out PairPosFormat1,2::do_split() into a common helper method. 2022-08-04 01:37:21 +00:00
Khaled Hosny 16bfe6536b [meson] use cpp.get_argument_syntax not cpp.get_id
To account for both MSVC and clang-cl.

Fixes https://github.com/harfbuzz/harfbuzz/issues/3756
2022-08-03 00:07:40 +02:00
Garret Rieger 68b90153ea [repacker] Add class def sanitize and range cloning. 2022-08-02 20:58:35 +00:00
Behdad Esfahbod 826639fab2 [src] Add test-use-table
Fixes https://github.com/harfbuzz/harfbuzz/issues/3758
2022-08-02 12:18:18 -06:00
Garret Rieger a0b8893e46 [repacker] add Coverage sanitize. 2022-07-29 22:21:31 +00:00
Garret Rieger f6a242b605 [repacker] begin adding PairPos splitting support. 2022-07-29 22:21:30 +00:00
Garret Rieger ce03c3538a [repacker] add make_extension_context_t. 2022-07-26 12:22:17 -06:00
Khaled Hosny 605bb1ee3d [subset] Add amalgam harfbuzz-subset.cc
Fixes https://github.com/harfbuzz/harfbuzz/issues/3733
2022-07-19 17:15:35 -06:00
Garret Rieger 5363e40de1 [reorg] update build files. 2022-07-13 20:25:13 -06:00
Behdad Esfahbod ea11029a6e [GPOS] Split LigatureArray.hh 2022-07-08 11:58:43 -06:00
Behdad Esfahbod aa68657434 [Makefile.sources/meson.build] Sort file names 2022-07-07 14:07:45 -06:00
Behdad Esfahbod 0b0e3b30ce [GPOS] Break down PairPosFormat1 into new layout 2022-07-07 14:06:44 -06:00
Luca Bacci 1abc14b463 Do not link with the DWrite lib
It's loaded dynamically now
2022-07-06 17:55:39 +02:00
Garret Rieger 900476c635 Move GSUB.hh GPOS.hh back into the GPOS/GSUB sub directories. 2022-06-30 15:33:20 -06:00
Garret Rieger 5fdae68481 [reorg] Move GSUB.hh up one level and change GSUB namespace to GSUB_impl. 2022-06-30 15:33:20 -06:00
Garret Rieger 3fbf2dece7 [reorg] Move OT::Layout::GPOS_impl::GPOS to OT::Layout::GPOS. 2022-06-28 18:47:50 -06:00
Behdad Esfahbod 11d2670676 [glyf] Split off glyf-helpers.hh 2022-06-25 18:19:09 -06:00
Behdad Esfahbod 499c637922 [glyf] Split off path-builder.hh 2022-06-25 18:07:49 -06:00
Behdad Esfahbod 13aadc8961 [glyf] Split off CompositeGlyph.hh 2022-06-25 18:03:15 -06:00
Behdad Esfahbod f0ec2b728e [glyf] Split off SimpleGlyph.hh 2022-06-25 17:55:16 -06:00