skia2/third_party/harfbuzz
Ben Wagner ca7976f799 Roll HarfBuzz from a52c6df3 to 31607897 (132 commits)
a52c6df38a..3160789701

Change-Id: I36ae4f5d2a07dffd944eb3987e757db5c7d22a3d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/476537
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Ben Wagner <bungeman@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2021-11-29 20:00:24 +00:00
..
BUILD.gn Roll HarfBuzz from a52c6df3 to 31607897 (132 commits) 2021-11-29 20:00:24 +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 a52c6df3 to 31607897 (132 commits) 2021-11-29 20:00:24 +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