xref: /aosp_15_r20/external/noto-fonts/scripts/subset_noto_serif.py (revision e5825d3be9fd13b272e7df556d285d1f07f3b027)
1*e5825d3bSAndroid Build Coastguard Worker#!/usr/bin/python
2*e5825d3bSAndroid Build Coastguard Worker# coding=UTF-8
3*e5825d3bSAndroid Build Coastguard Worker#
4*e5825d3bSAndroid Build Coastguard Worker# Copyright 2016 Google Inc. All rights reserved.
5*e5825d3bSAndroid Build Coastguard Worker#
6*e5825d3bSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
7*e5825d3bSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
8*e5825d3bSAndroid Build Coastguard Worker# You may obtain a copy of the License at
9*e5825d3bSAndroid Build Coastguard Worker#
10*e5825d3bSAndroid Build Coastguard Worker#     http://www.apache.org/licenses/LICENSE-2.0
11*e5825d3bSAndroid Build Coastguard Worker#
12*e5825d3bSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
13*e5825d3bSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
14*e5825d3bSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15*e5825d3bSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
16*e5825d3bSAndroid Build Coastguard Worker# limitations under the License.
17*e5825d3bSAndroid Build Coastguard Worker
18*e5825d3bSAndroid Build Coastguard Worker"""Create a curated subset of Noto Serif for Android."""
19*e5825d3bSAndroid Build Coastguard Worker
20*e5825d3bSAndroid Build Coastguard Workerimport sys
21*e5825d3bSAndroid Build Coastguard Worker
22*e5825d3bSAndroid Build Coastguard Workerfrom nototools import subset
23*e5825d3bSAndroid Build Coastguard Workerfrom nototools import unicode_data
24*e5825d3bSAndroid Build Coastguard Worker
25*e5825d3bSAndroid Build Coastguard Worker# Characters we have decided we are doing as emoji-style in Android,
26*e5825d3bSAndroid Build Coastguard Worker# despite UTR #51's recommendation
27*e5825d3bSAndroid Build Coastguard WorkerANDROID_EMOJI = {
28*e5825d3bSAndroid Build Coastguard Worker    0x2600, # ☀ BLACK SUN WITH RAYS
29*e5825d3bSAndroid Build Coastguard Worker    0x2601, # ☁ CLOUD
30*e5825d3bSAndroid Build Coastguard Worker    0X260E, # ☎ BLACK TELEPHONE
31*e5825d3bSAndroid Build Coastguard Worker    0x261D, # ☝ WHITE UP POINTING INDEX
32*e5825d3bSAndroid Build Coastguard Worker    0x263A, # ☺ WHITE SMILING FACE
33*e5825d3bSAndroid Build Coastguard Worker    0x2660, # ♠ BLACK SPADE SUIT
34*e5825d3bSAndroid Build Coastguard Worker    0x2663, # ♣ BLACK CLUB SUIT
35*e5825d3bSAndroid Build Coastguard Worker    0x2665, # ♥ BLACK HEART SUIT
36*e5825d3bSAndroid Build Coastguard Worker    0x2666, # ♦ BLACK DIAMOND SUIT
37*e5825d3bSAndroid Build Coastguard Worker    0x270C, # ✌ VICTORY HAND
38*e5825d3bSAndroid Build Coastguard Worker    0x2744, # ❄ SNOWFLAKE
39*e5825d3bSAndroid Build Coastguard Worker    0x2764, # ❤ HEAVY BLACK HEART
40*e5825d3bSAndroid Build Coastguard Worker}
41*e5825d3bSAndroid Build Coastguard Worker
42*e5825d3bSAndroid Build Coastguard Workerdef main(argv):
43*e5825d3bSAndroid Build Coastguard Worker    """Subset a Noto Serif font.
44*e5825d3bSAndroid Build Coastguard Worker
45*e5825d3bSAndroid Build Coastguard Worker    The first argument is the source file name, and the second argument is
46*e5825d3bSAndroid Build Coastguard Worker    the target file name.
47*e5825d3bSAndroid Build Coastguard Worker    """
48*e5825d3bSAndroid Build Coastguard Worker
49*e5825d3bSAndroid Build Coastguard Worker    source_file_name = argv[1]
50*e5825d3bSAndroid Build Coastguard Worker    target_file_name = argv[2]
51*e5825d3bSAndroid Build Coastguard Worker    subset.subset_font(
52*e5825d3bSAndroid Build Coastguard Worker        source_file_name,
53*e5825d3bSAndroid Build Coastguard Worker        target_file_name,
54*e5825d3bSAndroid Build Coastguard Worker        exclude=ANDROID_EMOJI)
55*e5825d3bSAndroid Build Coastguard Worker
56*e5825d3bSAndroid Build Coastguard Worker
57*e5825d3bSAndroid Build Coastguard Workerif __name__ == '__main__':
58*e5825d3bSAndroid Build Coastguard Worker    main(sys.argv)
59