• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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//
54cc_library_shared {
55    name: "libharfbuzz_ng",
56    host_supported: true,
57    arch: {
58        arm: {
59            instruction_set: "arm",
60        },
61    },
62    srcs: [
63        "src/hb-aat-layout.cc",
64        "src/hb-aat-map.cc",
65        "src/hb-blob.cc",
66        "src/hb-buffer-serialize.cc",
67        "src/hb-buffer.cc",
68        "src/hb-common.cc",
69        "src/hb-face.cc",
70        "src/hb-font.cc",
71        "src/hb-icu.cc",
72        "src/hb-ot-cff1-table.cc",
73        "src/hb-ot-cff2-table.cc",
74        "src/hb-ot-face.cc",
75        "src/hb-ot-font.cc",
76        "src/hb-ot-layout.cc",
77        "src/hb-ot-map.cc",
78        "src/hb-ot-math.cc",
79        "src/hb-ot-shape-complex-arabic.cc",
80        "src/hb-ot-shape-complex-default.cc",
81        "src/hb-ot-shape-complex-hangul.cc",
82        "src/hb-ot-shape-complex-hebrew.cc",
83        "src/hb-ot-shape-complex-indic-table.cc",
84        "src/hb-ot-shape-complex-indic.cc",
85        "src/hb-ot-shape-complex-khmer.cc",
86        "src/hb-ot-shape-complex-myanmar.cc",
87        "src/hb-ot-shape-complex-thai.cc",
88        "src/hb-ot-shape-complex-use-table.cc",
89        "src/hb-ot-shape-complex-use.cc",
90        "src/hb-ot-shape-complex-vowel-constraints.cc",
91        "src/hb-ot-shape-fallback.cc",
92        "src/hb-ot-shape-normalize.cc",
93        "src/hb-ot-shape.cc",
94        "src/hb-ot-tag.cc",
95        "src/hb-ot-var.cc",
96        "src/hb-set.cc",
97        "src/hb-shape-plan.cc",
98        "src/hb-shape.cc",
99        "src/hb-shaper.cc",
100        "src/hb-static.cc",
101        "src/hb-unicode.cc",
102        "src/hb-warning.cc",
103    ],
104
105    target: {
106        android: {
107            shared_libs: [
108                "libcutils",
109                "libutils",
110            ],
111        },
112        host: {
113            static_libs: [
114                "libcutils",
115                "libutils",
116            ],
117        },
118        windows: {
119            enabled: true,
120        },
121    },
122
123    shared_libs: [
124        "libandroidicu",
125        "liblog",
126    ],
127
128    export_include_dirs: ["src"],
129    cflags: [
130        "-DHAVE_INTEL_ATOMIC_PRIMITIVES",
131        "-DHAVE_OT",
132        "-DHAVE_ICU",
133        "-DHAVE_ICU_BUILTIN",
134        "-Werror",
135        "-Wno-unused-parameter",
136        "-Wno-missing-field-initializers",
137    ],
138}
139