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