1# Copyright (C) 2013 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15NOTO_DIR := $(call my-dir)
16
17include $(call all-makefiles-under,$(NOTO_DIR))
18
19# We have to use BUILD_PREBUILT instead of PRODUCT_COPY_FILES,
20# to copy over the NOTICE file.
21#############################################################################
22# $(1): The source file name in LOCAL_PATH.
23#       It also serves as the module name and the dest file name.
24#############################################################################
25define build-one-font-module
26$(eval include $(CLEAR_VARS))\
27$(eval LOCAL_MODULE := $(1))\
28$(eval LOCAL_SRC_FILES := $(1))\
29$(eval LOCAL_MODULE_CLASS := ETC)\
30$(eval LOCAL_MODULE_TAGS := optional)\
31$(eval LOCAL_MODULE_PATH := $(TARGET_OUT)/fonts)\
32$(eval include $(BUILD_PREBUILT))
33endef
34
35
36#############################################################################
37# First "build" the Noto CJK fonts, which have a different directory and
38# copyright holder. These are not included in MINIMAL_FONT_FOOTPRINT builds.
39#############################################################################
40ifneq ($(MINIMAL_FONT_FOOTPRINT),true)
41LOCAL_PATH := $(NOTO_DIR)/cjk
42
43font_src_files := \
44    NotoSansCJK-Regular.ttc
45
46$(foreach f, $(font_src_files), $(call build-one-font-module, $(f)))
47font_src_files :=
48
49endif # !MINIMAL_FONT_FOOTPRINT
50
51#############################################################################
52# Now "build" the Noto Color Emoji font, which is in its own directory. It is
53# not included in the MINIMAL_FONT_FOOTPRINT builds.
54#############################################################################
55ifneq ($(MINIMAL_FONT_FOOTPRINT),true)
56LOCAL_PATH := $(NOTO_DIR)/emoji
57
58font_src_files := \
59    NotoColorEmoji.ttf
60
61$(foreach f, $(font_src_files), $(call build-one-font-module, $(f)))
62font_src_files :=
63
64endif # !MINIMAL_FONT_FOOTPRINT
65
66#############################################################################
67# Now "build" the rest of the fonts, which live in a separate subdirectory.
68#############################################################################
69LOCAL_PATH := $(NOTO_DIR)/other
70
71#############################################################################
72# The following fonts are included in all builds.
73#############################################################################
74font_src_files := \
75    NotoSerif-Regular.ttf \
76    NotoSerif-Bold.ttf \
77    NotoSerif-Italic.ttf \
78    NotoSerif-BoldItalic.ttf
79
80#############################################################################
81# The following fonts are excluded from SMALLER_FONT_FOOTPRINT builds.
82#############################################################################
83ifneq ($(SMALLER_FONT_FOOTPRINT),true)
84font_src_files += \
85    NotoSansAdlam-Regular.ttf \
86    NotoSansAvestan-Regular.ttf \
87    NotoSansBalinese-Regular.ttf \
88    NotoSansBamum-Regular.ttf \
89    NotoSansBatak-Regular.ttf \
90    NotoSansBengali-Regular.ttf \
91    NotoSansBengali-Bold.ttf \
92    NotoSansBengaliUI-Regular.ttf \
93    NotoSansBengaliUI-Bold.ttf \
94    NotoSansBrahmi-Regular.ttf \
95    NotoSansBuginese-Regular.ttf \
96    NotoSansBuhid-Regular.ttf \
97    NotoSansCanadianAboriginal-Regular.ttf \
98    NotoSansCarian-Regular.ttf \
99    NotoSansCham-Regular.ttf \
100    NotoSansCham-Bold.ttf \
101    NotoSansCherokee-Regular.ttf \
102    NotoSansCoptic-Regular.ttf \
103    NotoSansCuneiform-Regular.ttf \
104    NotoSansCypriot-Regular.ttf \
105    NotoSansDeseret-Regular.ttf \
106    NotoSansEgyptianHieroglyphs-Regular.ttf \
107    NotoSansEthiopic-Regular.ttf \
108    NotoSansEthiopic-Bold.ttf \
109    NotoSansGlagolitic-Regular.ttf \
110    NotoSansGothic-Regular.ttf \
111    NotoSansGujarati-Regular.ttf \
112    NotoSansGujarati-Bold.ttf \
113    NotoSansGujaratiUI-Regular.ttf \
114    NotoSansGujaratiUI-Bold.ttf \
115    NotoSansGurmukhi-Regular.ttf \
116    NotoSansGurmukhi-Bold.ttf \
117    NotoSansGurmukhiUI-Regular.ttf \
118    NotoSansGurmukhiUI-Bold.ttf \
119    NotoSansHanunoo-Regular.ttf \
120    NotoSansImperialAramaic-Regular.ttf \
121    NotoSansInscriptionalPahlavi-Regular.ttf \
122    NotoSansInscriptionalParthian-Regular.ttf \
123    NotoSansJavanese-Regular.ttf \
124    NotoSansKaithi-Regular.ttf \
125    NotoSansKannada-Regular.ttf \
126    NotoSansKannada-Bold.ttf \
127    NotoSansKannadaUI-Regular.ttf \
128    NotoSansKannadaUI-Bold.ttf \
129    NotoSansKayahLi-Regular.ttf \
130    NotoSansKharoshthi-Regular.ttf \
131    NotoSansKhmerUI-Regular.ttf \
132    NotoSansKhmerUI-Bold.ttf \
133    NotoSansLao-Regular.ttf \
134    NotoSansLao-Bold.ttf \
135    NotoSansLaoUI-Regular.ttf \
136    NotoSansLaoUI-Bold.ttf \
137    NotoSansLepcha-Regular.ttf \
138    NotoSansLimbu-Regular.ttf \
139    NotoSansLinearB-Regular.ttf \
140    NotoSansLisu-Regular.ttf \
141    NotoSansLycian-Regular.ttf \
142    NotoSansLydian-Regular.ttf \
143    NotoSansMalayalam-Regular.ttf \
144    NotoSansMalayalam-Bold.ttf \
145    NotoSansMalayalamUI-Regular.ttf \
146    NotoSansMalayalamUI-Bold.ttf \
147    NotoSansMandaic-Regular.ttf \
148    NotoSansMeeteiMayek-Regular.ttf \
149    NotoSansMongolian-Regular.ttf \
150    NotoSansMyanmar-Regular.ttf \
151    NotoSansMyanmar-Bold.ttf \
152    NotoSansMyanmarUI-Regular.ttf \
153    NotoSansMyanmarUI-Bold.ttf \
154    NotoSansNewTaiLue-Regular.ttf \
155    NotoSansNKo-Regular.ttf \
156    NotoSansOgham-Regular.ttf \
157    NotoSansOlChiki-Regular.ttf \
158    NotoSansOldItalic-Regular.ttf \
159    NotoSansOldPersian-Regular.ttf \
160    NotoSansOldSouthArabian-Regular.ttf \
161    NotoSansOldTurkic-Regular.ttf \
162    NotoSansOriya-Regular.ttf \
163    NotoSansOriya-Bold.ttf \
164    NotoSansOriyaUI-Regular.ttf \
165    NotoSansOriyaUI-Bold.ttf \
166    NotoSansOsmanya-Regular.ttf \
167    NotoSansPhagsPa-Regular.ttf \
168    NotoSansPhoenician-Regular.ttf \
169    NotoSansRejang-Regular.ttf \
170    NotoSansRunic-Regular.ttf \
171    NotoSansSamaritan-Regular.ttf \
172    NotoSansSaurashtra-Regular.ttf \
173    NotoSansShavian-Regular.ttf \
174    NotoSansSinhala-Regular.ttf \
175    NotoSansSinhala-Bold.ttf \
176    NotoSansSundanese-Regular.ttf \
177    NotoSansSylotiNagri-Regular.ttf \
178    NotoSansSyriacEastern-Regular.ttf \
179    NotoSansSyriacEstrangela-Regular.ttf \
180    NotoSansSyriacWestern-Regular.ttf \
181    NotoSansTagalog-Regular.ttf \
182    NotoSansTagbanwa-Regular.ttf \
183    NotoSansTaiLe-Regular.ttf \
184    NotoSansTaiTham-Regular.ttf \
185    NotoSansTaiViet-Regular.ttf \
186    NotoSansTamil-Regular.ttf \
187    NotoSansTamil-Bold.ttf \
188    NotoSansTamilUI-Regular.ttf \
189    NotoSansTamilUI-Bold.ttf \
190    NotoSansTelugu-Regular.ttf \
191    NotoSansTelugu-Bold.ttf \
192    NotoSansTeluguUI-Regular.ttf \
193    NotoSansTeluguUI-Bold.ttf \
194    NotoSansThaana-Regular.ttf \
195    NotoSansThaana-Bold.ttf \
196    NotoSansTibetan-Regular.ttf \
197    NotoSansTibetan-Bold.ttf \
198    NotoSansTifinagh-Regular.ttf \
199    NotoSansUgaritic-Regular.ttf \
200    NotoSansVai-Regular.ttf \
201    NotoSansYi-Regular.ttf
202endif # !SMALLER_FONT_FOOTPRINT
203
204#############################################################################
205# The following fonts are excluded from MINIMAL_FONT_FOOTPRINT builds.
206#############################################################################
207ifneq ($(MINIMAL_FONT_FOOTPRINT),true)
208font_src_files += \
209    NotoNaskhArabic-Regular.ttf \
210    NotoNaskhArabic-Bold.ttf \
211    NotoNaskhArabicUI-Regular.ttf \
212    NotoNaskhArabicUI-Bold.ttf \
213    NotoSansArmenian-Regular.ttf \
214    NotoSansArmenian-Bold.ttf \
215    NotoSansDevanagari-Regular.ttf \
216    NotoSansDevanagari-Bold.ttf \
217    NotoSansDevanagariUI-Regular.ttf \
218    NotoSansDevanagariUI-Bold.ttf \
219    NotoSansGeorgian-Regular.ttf \
220    NotoSansGeorgian-Bold.ttf \
221    NotoSansHebrew-Regular.ttf \
222    NotoSansHebrew-Bold.ttf \
223    NotoSansSymbols-Regular-Subsetted.ttf \
224    NotoSansSymbols-Regular-Subsetted2.ttf \
225    NotoSansThai-Regular.ttf \
226    NotoSansThai-Bold.ttf \
227    NotoSansThaiUI-Regular.ttf \
228    NotoSansThaiUI-Bold.ttf
229endif # !MINIMAL_FONT_FOOTPRINT
230
231$(foreach f, $(font_src_files), $(call build-one-font-module, $(f)))
232
233#############################################################################
234# Now "build" the variable fonts, which live in a separate subdirectory.
235# The only variable fonts are for Khmer Sans, which is excluded in
236# SMALLER_FONT_FOOTPRINT build.
237#############################################################################
238
239ifneq ($(SMALLER_FONT_FOOTPRINT),true)
240
241LOCAL_PATH := $(NOTO_DIR)/other-vf
242
243font_src_files := \
244    NotoSansKhmer-VF.ttf
245
246$(foreach f, $(font_src_files), $(call build-one-font-module, $(f)))
247
248endif # !SMALLER_FONT_FOOTPRINT
249
250NOTO_DIR :=
251build-one-font-module :=
252font_src_files :=
253