skia2/third_party/harfbuzz
Ben Wagner 2dc9c5d98f Roll HarfBuzz from 6f190943 to a52c6df3 (2 commits)
6f19094398..a52c6df38a

Pick up fixes for component depth tracking.

Also ensure all build files are listed to simplify updating the build
when rolling. Add a check to the roll script to check for source files
listed multiple times.

Change-Id: I5aa5fb5246cd123019b43fe5207a47d9672752d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453576
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-09-28 18:52:38 +00:00
..
BUILD.gn Roll HarfBuzz from 6f190943 to a52c6df3 (2 commits) 2021-09-28 18:52:38 +00:00
config-override.h Ease HarfBuzz API change with feature detection 2021-08-06 17:22:22 +00:00
LICENSE Add LICENSE file to third_party/harfbuzz 2021-08-06 15:01:25 +00:00
README Roll HarfBuzz 2019-02-06 21:28:19 +00:00
roll-harfbuzz.sh Roll HarfBuzz from 6f190943 to a52c6df3 (2 commits) 2021-09-28 18:52:38 +00:00

#!/bin/sh
# Some of HarfBuzz's headers are created at build time using the Ragel
# State Machine Compiler.  To reduce complex dependencies, I pre-built
# these files:
#     hb-buffer-deserialize-json.hh
#     hb-buffer-deserialize-text.hh
#     hb-ot-shape-complex-indic-machine.hh
#     hb-ot-shape-complex-myanmar-machine.hh
#     hb-ot-shape-complex-use-machine.hh
# from these sources:
#     ../externals/harfbuzz/src/hb-buffer-deserialize-json.rl
#     ../externals/harfbuzz/src/hb-buffer-deserialize-text.rl
#     ../externals/harfbuzz/src/hb-ot-shape-complex-indic-machine.rl
#     ../externals/harfbuzz/src/hb-ot-shape-complex-myanmar-machine.rl
#     ../externals/harfbuzz/src/hb-ot-shape-complex-use-machine.rl
#
# The files in this directory are created by installing the
# prerequiste packages, checking out a new version of HarfBuzz, doing
# `./autogen.sh && ./configure && make`, then copying the
# autogenerated .h and .hh files to this directory.
#
# These files are now checked into the git repository and the HarfBuzz
# maintainers keep them up to date by using the build rules in the HarfBuzz
# build. As a result this step is no longer necessary, but if we need to
# regenerate these files ourselves, this is how to do it.

set -e
set -x
for package in automake  libtool pkg-config ragel gtk-doc-tools; do
    if ! ( dpkg-query -W -f'${Status}' "$package" 2>/dev/null | \
        grep -q "ok installed" ); then
        sudo apt-get install "$package"
    fi
done
cd "$(dirname "$0")/../externals/harfbuzz"
./autogen.sh
./configure
make -j4
cp src/hb-version.h ../../harfbuzz/
for RAGEL_FILE in src/*.rl; do
    BUILT_HEADER="src/$(basename "$RAGEL_FILE" '.rl').hh"
    if [ -f "$BUILT_HEADER" ]; then
        cp -v "$BUILT_HEADER" ../../harfbuzz/
    fi
done
git clean -fxd