1//# 2//# Copyright (C) 2012 The Android Open Source Project 3//# 4//# Licensed under the Apache License, Version 2.0 (the "License"); 5//# you may not use this file except in compliance with the License. 6//# You may obtain a copy of the License at 7//# 8//# http://www.apache.org/licenses/LICENSE-2.0 9//# 10//# Unless required by applicable law or agreed to in writing, software 11//# distributed under the License is distributed on an "AS IS" BASIS, 12//# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13//# See the License for the specific language governing permissions and 14//# limitations under the License. 15//# 16 17//############################################################ 18// Note: 19// 20// This file is used to build HarfBuzz within the Android 21// platform itself. If you need to compile HarfBuzz to 22// ship with your Android NDK app, you can use the autotools 23// build system to do so. To do that you need to install a 24// "standalone" toolchain with the NDK, eg: 25// 26// ndk/build/tools/make-standalone-toolchain.sh 27// --platform=android-18 28// --install-dir=/prefix 29// 30// Set PLATFORM_PREFIX eng var to that prefix and make sure 31// the cross-compile tools from PLATFORM_PREFIX are in path. 32// Configure and install HarfBuzz: 33// 34// ./configure --host=arm-linux-androideabi 35// --prefix=$PLATFORM_PREFIX 36// --enable-static 37// --with-freetype 38// PKG_CONFIG_LIBDIR=$PLATFORM_PREFIX/lib/pkgconfig 39// make install 40// 41// You can first build FreeType the same way: 42// 43// ./configure --host=arm-linux-androideabi 44// --prefix=$PLATFORM_PREFIX 45// --enable-stati 46// --without-png 47// PKG_CONFIG_LIBDIR=$PLATFORM_PREFIX/lib/pkgconfig 48// make install 49// 50 51//############################################################ 52// build the harfbuzz shared library 53// 54// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS. PLEASE 55// CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE 56// DEPENDING ON IT IN YOUR PROJECT. *** 57package { 58 default_applicable_licenses: ["external_harfbuzz_ng_license"], 59} 60 61// Added automatically by a large-scale-change that took the approach of 62// 'apply every license found to every target'. While this makes sure we respect 63// every license restriction, it may not be entirely correct. 64// 65// e.g. GPL in an MIT project might only apply to the contrib/ directory. 66// 67// Please consider splitting the single license below into multiple licenses, 68// taking care not to lose any license_kind information, and overriding the 69// default license using the 'licenses: [...]' property on targets as needed. 70// 71// For unused files, consider creating a 'fileGroup' with "//visibility:private" 72// to attach the license to, and including a comment whether the files may be 73// used in the current project. 74// 75// large-scale-change included anything that looked like it might be a license 76// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 77// 78// Please consider removing redundant or irrelevant files from 'license_text:'. 79// See: http://go/android-license-faq 80license { 81 name: "external_harfbuzz_ng_license", 82 visibility: [":__subpackages__"], 83 license_kinds: [ 84 "SPDX-license-identifier-Apache-2.0", 85 "SPDX-license-identifier-ISC", 86 "SPDX-license-identifier-MIT", 87 "SPDX-license-identifier-OFL", // by exception only 88 "SPDX-license-identifier-WTFPL", 89 "legacy_unencumbered", 90 ], 91 license_text: [ 92 "COPYING", 93 "NOTICE", 94 ], 95} 96 97cc_library { 98 name: "libharfbuzz_ng", 99 host_supported: true, 100 arch: { 101 arm: { 102 instruction_set: "arm", 103 }, 104 }, 105 srcs: [ 106 "src/hb-aat-layout.cc", 107 "src/hb-aat-map.cc", 108 "src/hb-blob.cc", 109 "src/hb-buffer-serialize.cc", 110 "src/hb-buffer.cc", 111 "src/hb-common.cc", 112 "src/hb-face.cc", 113 "src/hb-fallback-shape.cc", 114 "src/hb-font.cc", 115 "src/hb-icu.cc", 116 "src/hb-number.cc", 117 "src/hb-ot-cff1-table.cc", 118 "src/hb-ot-cff2-table.cc", 119 "src/hb-ot-face.cc", 120 "src/hb-ot-font.cc", 121 "src/hb-ot-layout.cc", 122 "src/hb-ot-map.cc", 123 "src/hb-ot-math.cc", 124 "src/hb-ot-metrics.cc", 125 "src/hb-ot-name.cc", 126 "src/hb-ot-shape-complex-arabic.cc", 127 "src/hb-ot-shape-complex-default.cc", 128 "src/hb-ot-shape-complex-hangul.cc", 129 "src/hb-ot-shape-complex-hebrew.cc", 130 "src/hb-ot-shape-complex-indic-table.cc", 131 "src/hb-ot-shape-complex-indic.cc", 132 "src/hb-ot-shape-complex-khmer.cc", 133 "src/hb-ot-shape-complex-myanmar.cc", 134 "src/hb-ot-shape-complex-thai.cc", 135 "src/hb-ot-shape-complex-use-table.cc", 136 "src/hb-ot-shape-complex-use.cc", 137 "src/hb-ot-shape-complex-vowel-constraints.cc", 138 "src/hb-ot-shape-fallback.cc", 139 "src/hb-ot-shape-normalize.cc", 140 "src/hb-ot-shape.cc", 141 "src/hb-ot-tag.cc", 142 "src/hb-ot-var.cc", 143 "src/hb-set.cc", 144 "src/hb-shape-plan.cc", 145 "src/hb-shape.cc", 146 "src/hb-shaper.cc", 147 "src/hb-static.cc", 148 "src/hb-ucd.cc", 149 "src/hb-unicode.cc", 150 "src/hb-subset-cff-common.cc", 151 "src/hb-subset-cff1.cc", 152 "src/hb-subset-cff2.cc", 153 "src/hb-subset-input.cc", 154 "src/hb-subset-plan.cc", 155 "src/hb-subset.cc", 156 "src/hb-map.cc", 157 ], 158 159 target: { 160 android: { 161 shared_libs: [ 162 "libcutils", 163 "libutils", 164 ], 165 }, 166 host: { 167 static_libs: [ 168 "libcutils", 169 "libutils", 170 ], 171 }, 172 windows: { 173 enabled: true, 174 }, 175 }, 176 177 shared_libs: [ 178 "libicu", 179 "liblog", 180 ], 181 182 export_include_dirs: ["src"], 183 cflags: [ 184 "-DHAVE_INTEL_ATOMIC_PRIMITIVES", 185 "-DHAVE_OT", 186 "-DHAVE_ICU", 187 "-DHAVE_ICU_BUILTIN", 188 "-Werror", 189 "-Wno-unused-parameter", 190 "-Wno-missing-field-initializers", 191 ], 192} 193