Merge commit '3a74ee528255cc027d84b204a87b5c25e47bff79'

Merged from upstream:
    https://github.com/harfbuzz/harfbuzz.git refs/tags/2.6.4

Also update `Android.bp`.

NO_TYPO_CHECK=true

Change-Id: I606b1dc9a4994b2fb110a66309a57b00ec85da09
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..9f29062
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,145 @@
+//#
+//# Copyright (C) 2012 The Android Open Source Project
+//#
+//# Licensed under the Apache License, Version 2.0 (the "License");
+//# you may not use this file except in compliance with the License.
+//# You may obtain a copy of the License at
+//#
+//#      http://www.apache.org/licenses/LICENSE-2.0
+//#
+//# Unless required by applicable law or agreed to in writing, software
+//# distributed under the License is distributed on an "AS IS" BASIS,
+//# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//# See the License for the specific language governing permissions and
+//# limitations under the License.
+//#
+
+//############################################################
+//   Note:
+//
+//   This file is used to build HarfBuzz within the Android
+//   platform itself.  If you need to compile HarfBuzz to
+//   ship with your Android NDK app, you can use the autotools
+//   build system to do so.  To do that you need to install a
+//   "standalone" toolchain with the NDK, eg:
+//
+//       ndk/build/tools/make-standalone-toolchain.sh
+//           --platform=android-18
+//           --install-dir=/prefix
+//
+//   Set PLATFORM_PREFIX eng var to that prefix and make sure
+//   the cross-compile tools from PLATFORM_PREFIX are in path.
+//   Configure and install HarfBuzz:
+//
+//       ./configure --host=arm-linux-androideabi
+//           --prefix=$PLATFORM_PREFIX
+//           --enable-static
+//           --with-freetype
+//           PKG_CONFIG_LIBDIR=$PLATFORM_PREFIX/lib/pkgconfig
+//       make install
+//
+//   You can first build FreeType the same way:
+//
+//       ./configure --host=arm-linux-androideabi
+//           --prefix=$PLATFORM_PREFIX
+//           --enable-stati
+//           --without-png
+//           PKG_CONFIG_LIBDIR=$PLATFORM_PREFIX/lib/pkgconfig
+//       make install
+//
+
+//############################################################
+//   build the harfbuzz shared library
+//
+cc_library {
+    name: "libharfbuzz_ng",
+    host_supported: true,
+    arch: {
+        arm: {
+            instruction_set: "arm",
+        },
+    },
+    srcs: [
+        "src/hb-aat-layout.cc",
+        "src/hb-aat-map.cc",
+        "src/hb-blob.cc",
+        "src/hb-buffer-serialize.cc",
+        "src/hb-buffer.cc",
+        "src/hb-common.cc",
+        "src/hb-face.cc",
+        "src/hb-fallback-shape.cc",
+        "src/hb-font.cc",
+        "src/hb-icu.cc",
+        "src/hb-number.cc",
+        "src/hb-ot-cff1-table.cc",
+        "src/hb-ot-cff2-table.cc",
+        "src/hb-ot-face.cc",
+        "src/hb-ot-font.cc",
+        "src/hb-ot-layout.cc",
+        "src/hb-ot-map.cc",
+        "src/hb-ot-math.cc",
+        "src/hb-ot-metrics.cc",
+        "src/hb-ot-shape-complex-arabic.cc",
+        "src/hb-ot-shape-complex-default.cc",
+        "src/hb-ot-shape-complex-hangul.cc",
+        "src/hb-ot-shape-complex-hebrew.cc",
+        "src/hb-ot-shape-complex-indic-table.cc",
+        "src/hb-ot-shape-complex-indic.cc",
+        "src/hb-ot-shape-complex-khmer.cc",
+        "src/hb-ot-shape-complex-myanmar.cc",
+        "src/hb-ot-shape-complex-thai.cc",
+        "src/hb-ot-shape-complex-use-table.cc",
+        "src/hb-ot-shape-complex-use.cc",
+        "src/hb-ot-shape-complex-vowel-constraints.cc",
+        "src/hb-ot-shape-fallback.cc",
+        "src/hb-ot-shape-normalize.cc",
+        "src/hb-ot-shape.cc",
+        "src/hb-ot-tag.cc",
+        "src/hb-ot-var.cc",
+        "src/hb-set.cc",
+        "src/hb-shape-plan.cc",
+        "src/hb-shape.cc",
+        "src/hb-shaper.cc",
+        "src/hb-static.cc",
+        "src/hb-ucd.cc",
+        "src/hb-unicode.cc",
+    ],
+
+    target: {
+        android: {
+            shared_libs: [
+                "libandroidicu",
+                "libcutils",
+                "libutils",
+            ],
+        },
+        host: {
+            shared_libs: [
+                "libicui18n",
+                "libicuuc",
+            ],
+            static_libs: [
+                "libcutils",
+                "libutils",
+            ],
+        },
+        windows: {
+            enabled: true,
+        },
+    },
+
+    shared_libs: [
+        "liblog",
+    ],
+
+    export_include_dirs: ["src"],
+    cflags: [
+        "-DHAVE_INTEL_ATOMIC_PRIMITIVES",
+        "-DHAVE_OT",
+        "-DHAVE_ICU",
+        "-DHAVE_ICU_BUILTIN",
+        "-Werror",
+        "-Wno-unused-parameter",
+        "-Wno-missing-field-initializers",
+    ],
+}
diff --git a/MODULE_LICENSE_MIT b/MODULE_LICENSE_MIT
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/MODULE_LICENSE_MIT
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..9d1056f
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,36 @@
+HarfBuzz is licensed under the so-called "Old MIT" license.  Details follow.
+For parts of HarfBuzz that are licensed under different licenses see individual
+files names COPYING in subdirectories where applicable.
+
+Copyright © 2010,2011,2012  Google, Inc.
+Copyright © 2012  Mozilla Foundation
+Copyright © 2011  Codethink Limited
+Copyright © 2008,2010  Nokia Corporation and/or its subsidiary(-ies)
+Copyright © 2009  Keith Stribley
+Copyright © 2009  Martin Hosken and SIL International
+Copyright © 2007  Chris Wilson
+Copyright © 2006  Behdad Esfahbod
+Copyright © 2005  David Turner
+Copyright © 2004,2007,2008,2009,2010  Red Hat, Inc.
+Copyright © 1998-2004  David Turner and Werner Lemberg
+
+For full copyright notices consult the individual files in the package.
+
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..9bc89fb
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,4 @@
+behdad@google.com
+siyamed@google.com
+nona@google.com
+jungshik@google.com
diff --git a/README.android b/README.android
new file mode 100644
index 0000000..c8ebb11
--- /dev/null
+++ b/README.android
@@ -0,0 +1,17 @@
+Harfbuzz
+
+HOW TO UPDATE
+* Check out external/harfbuzz to <checkout_dir>
+  ex: git clone https://android.googlesource.com/platform/external/harfbuzz_ng
+* Locate the commit you'd like to move.
+  ex: for 1.7.4: https://github.com/harfbuzz/harfbuzz/commit/007a2a4317227b8fb4c764c590203c85fc3da5fd
+* In <checkout_dir>, run git merge <commit_sha>
+  i.e. git merge 007a2a4317227b8fb4c764c590203c85fc3da5fd
+* Upload the changes.
+  ex: git push origin HEAD:refs/for/master
+* Gerrit will run the text related tests.
+
+NOTE:
+ Since Chromium updates Harfbuzz more frequently, you can check the following URL for their changes
+ and latest merges.
+ https://chromium.googlesource.com/chromium/src/+log/master/third_party/harfbuzz-ng
diff --git a/README.version b/README.version
new file mode 100644
index 0000000..787f6dd
--- /dev/null
+++ b/README.version
@@ -0,0 +1,3 @@
+URL: https://github.com/harfbuzz/harfbuzz/commit/4941e95f10fe0fe658752134a42b58896fb19c42
+Version: 2.3.0
+BugComponent: 25699