halcanary | 00d44e0 | 2016-05-03 15:09:52 -0700 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # Some of HarfBuzz's headers are created at build time using the Ragel |
| 3 | # State Machine Compiler. To reduce complex dependencies, I pre-built |
| 4 | # these files: |
| 5 | # hb-buffer-deserialize-json.hh |
| 6 | # hb-buffer-deserialize-text.hh |
| 7 | # hb-ot-shape-complex-indic-machine.hh |
| 8 | # hb-ot-shape-complex-myanmar-machine.hh |
| 9 | # hb-ot-shape-complex-use-machine.hh |
| 10 | # from these sources: |
| 11 | # ../externals/harfbuzz/src/hb-buffer-deserialize-json.rl |
| 12 | # ../externals/harfbuzz/src/hb-buffer-deserialize-text.rl |
| 13 | # ../externals/harfbuzz/src/hb-ot-shape-complex-indic-machine.rl |
| 14 | # ../externals/harfbuzz/src/hb-ot-shape-complex-myanmar-machine.rl |
| 15 | # ../externals/harfbuzz/src/hb-ot-shape-complex-use-machine.rl |
| 16 | # |
| 17 | # The files in this directory are created by installing the |
| 18 | # prerequiste packages, checking out a new version of HarfBuzz, doing |
| 19 | # `./autogen.sh && ./configure && make`, then copying the |
| 20 | # autogenerated .h and .hh files to this directory. |
| 21 | |
| 22 | set -e |
| 23 | set -x |
| 24 | for package in automake libtool pkg-config ragel gtk-doc-tools; do |
| 25 | if ! ( dpkg-query -W -f'${Status}' "$package" 2>/dev/null | \ |
| 26 | grep -q "ok installed" ); then |
| 27 | sudo apt-get install "$package" |
| 28 | fi |
| 29 | done |
| 30 | cd "$(dirname "$0")/../externals/harfbuzz" |
| 31 | ./autogen.sh |
| 32 | ./configure |
| 33 | make -j4 |
| 34 | cp src/hb-version.h ../../harfbuzz/ |
| 35 | for RAGEL_FILE in src/*.rl; do |
| 36 | BUILT_HEADER="src/$(basename "$RAGEL_FILE" '.rl').hh" |
| 37 | if [ -f "$BUILT_HEADER" ]; then |
| 38 | cp -v "$BUILT_HEADER" ../../harfbuzz/ |
| 39 | fi |
| 40 | done |
| 41 | git clean -fxd |