| #!/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. |
| |
| 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 |