blob: fa88ca6fda97de59061a207e38ed78c463f1e5dd [file] [log] [blame]
Colin Cross48e772f2016-12-02 15:03:22 -08001//#
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//
Bob Badoureb311252021-02-12 15:09:02 -080054// *** 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
Jerome Gaillard05990ca2019-06-27 19:28:10 +010097cc_library {
Colin Cross48e772f2016-12-02 15:03:22 -080098 name: "libharfbuzz_ng",
Jerome Gaillardd725ce12018-07-10 16:07:32 +010099 host_supported: true,
Colin Cross48e772f2016-12-02 15:03:22 -0800100 arch: {
101 arm: {
102 instruction_set: "arm",
103 },
104 },
105 srcs: [
Seigo Nonaka6361ed02018-10-25 16:35:42 -0700106 "src/hb-aat-layout.cc",
Seigo Nonakab878ff22018-12-21 15:32:33 -0800107 "src/hb-aat-map.cc",
Colin Cross48e772f2016-12-02 15:03:22 -0800108 "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",
Hal Canary07410162019-11-11 13:56:23 -0500113 "src/hb-fallback-shape.cc",
Colin Cross48e772f2016-12-02 15:03:22 -0800114 "src/hb-font.cc",
Seigo Nonakab878ff22018-12-21 15:32:33 -0800115 "src/hb-icu.cc",
Hal Canary07410162019-11-11 13:56:23 -0500116 "src/hb-number.cc",
Seigo Nonakab878ff22018-12-21 15:32:33 -0800117 "src/hb-ot-cff1-table.cc",
118 "src/hb-ot-cff2-table.cc",
Seigo Nonaka6361ed02018-10-25 16:35:42 -0700119 "src/hb-ot-face.cc",
Colin Cross48e772f2016-12-02 15:03:22 -0800120 "src/hb-ot-font.cc",
121 "src/hb-ot-layout.cc",
122 "src/hb-ot-map.cc",
Jungshik Shinff95bda2017-01-26 12:39:49 -0800123 "src/hb-ot-math.cc",
Hal Canary07410162019-11-11 13:56:23 -0500124 "src/hb-ot-metrics.cc",
Seigo Nonaka7337ccb2021-01-13 14:23:43 -0800125 "src/hb-ot-name.cc",
Colin Cross48e772f2016-12-02 15:03:22 -0800126 "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",
Colin Cross48e772f2016-12-02 15:03:22 -0800130 "src/hb-ot-shape-complex-indic-table.cc",
Seigo Nonakab878ff22018-12-21 15:32:33 -0800131 "src/hb-ot-shape-complex-indic.cc",
Siyamed Sinir476d1182018-07-27 17:31:17 -0700132 "src/hb-ot-shape-complex-khmer.cc",
Colin Cross48e772f2016-12-02 15:03:22 -0800133 "src/hb-ot-shape-complex-myanmar.cc",
134 "src/hb-ot-shape-complex-thai.cc",
Colin Cross48e772f2016-12-02 15:03:22 -0800135 "src/hb-ot-shape-complex-use-table.cc",
Seigo Nonakab878ff22018-12-21 15:32:33 -0800136 "src/hb-ot-shape-complex-use.cc",
137 "src/hb-ot-shape-complex-vowel-constraints.cc",
Colin Cross48e772f2016-12-02 15:03:22 -0800138 "src/hb-ot-shape-fallback.cc",
Seigo Nonakab878ff22018-12-21 15:32:33 -0800139 "src/hb-ot-shape-normalize.cc",
140 "src/hb-ot-shape.cc",
141 "src/hb-ot-tag.cc",
Jungshik Shinff95bda2017-01-26 12:39:49 -0800142 "src/hb-ot-var.cc",
Seigo Nonakab878ff22018-12-21 15:32:33 -0800143 "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",
Hal Canary07410162019-11-11 13:56:23 -0500148 "src/hb-ucd.cc",
Seigo Nonakab878ff22018-12-21 15:32:33 -0800149 "src/hb-unicode.cc",
Stan Ilievb229cdd2020-12-10 09:41:40 -0500150 "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",
Colin Cross48e772f2016-12-02 15:03:22 -0800157 ],
158
Jerome Gaillardd725ce12018-07-10 16:07:32 +0100159 target: {
160 android: {
161 shared_libs: [
Jerome Gaillard8c46d582019-01-16 14:07:28 +0000162 "libcutils",
Jerome Gaillardd725ce12018-07-10 16:07:32 +0100163 "libutils",
164 ],
165 },
166 host: {
167 static_libs: [
Jerome Gaillard8c46d582019-01-16 14:07:28 +0000168 "libcutils",
Jerome Gaillardd725ce12018-07-10 16:07:32 +0100169 "libutils",
170 ],
171 },
Jerome Gaillard8c46d582019-01-16 14:07:28 +0000172 windows: {
173 enabled: true,
174 },
Jerome Gaillardd725ce12018-07-10 16:07:32 +0100175 },
176
Colin Cross48e772f2016-12-02 15:03:22 -0800177 shared_libs: [
Victor Chang698f5bb2020-11-23 19:24:43 +0000178 "libicu",
Colin Cross48e772f2016-12-02 15:03:22 -0800179 "liblog",
180 ],
181
182 export_include_dirs: ["src"],
183 cflags: [
Seigo Nonaka6294f2f2018-01-27 16:45:27 -0800184 "-DHAVE_INTEL_ATOMIC_PRIMITIVES",
Colin Cross48e772f2016-12-02 15:03:22 -0800185 "-DHAVE_OT",
186 "-DHAVE_ICU",
187 "-DHAVE_ICU_BUILTIN",
188 "-Werror",
189 "-Wno-unused-parameter",
190 "-Wno-missing-field-initializers",
191 ],
192}