diff options
-rw-r--r-- | data/fonts/Android.mk | 27 | ||||
-rw-r--r-- | data/fonts/fonts.mk | 6 | ||||
-rw-r--r-- | tools/fonts/add_additional_fonts.py | 44 |
3 files changed, 73 insertions, 4 deletions
diff --git a/data/fonts/Android.mk b/data/fonts/Android.mk index 5baa75b8aac3..7b2fa76f01df 100644 --- a/data/fonts/Android.mk +++ b/data/fonts/Android.mk @@ -81,6 +81,33 @@ $(foreach f, $(font_src_files), $(call build-one-font-module, $(f))) build-one-font-module := font_src_files := +################################ +# Copies the font configuration file into system/etc for the product as fonts.xml. +# In the case where $(ADDITIONAL_FONTS_FILE) is defined, the content of $(ADDITIONAL_FONTS_FILE) +# is added to the $(AOSP_FONTS_FILE). +include $(CLEAR_VARS) + +LOCAL_MODULE := fonts.xml +LOCAL_MODULE_CLASS := ETC + +AOSP_FONTS_FILE := frameworks/base/data/fonts/fonts.xml + +ifdef ADDITIONAL_FONTS_FILE +ADDITIONAL_FONTS_SCRIPT := frameworks/base/tools/fonts/add_additional_fonts.py +ADD_ADDITIONAL_FONTS := $(local-generated-sources-dir)/fonts.xml + +$(ADD_ADDITIONAL_FONTS): PRIVATE_SCRIPT := $(ADDITIONAL_FONTS_SCRIPT) +$(ADD_ADDITIONAL_FONTS): PRIVATE_ADDITIONAL_FONTS_FILE := $(ADDITIONAL_FONTS_FILE) +$(ADD_ADDITIONAL_FONTS): $(ADDITIONAL_FONTS_SCRIPT) $(AOSP_FONTS_FILE) $(ADDITIONAL_FONTS_FILE) + rm -f $@ + python $(PRIVATE_SCRIPT) $@ $(PRIVATE_ADDITIONAL_FONTS_FILE) +else +ADD_ADDITIONAL_FONTS := $(AOSP_FONTS_FILE) +endif + +LOCAL_PREBUILT_MODULE_FILE := $(ADD_ADDITIONAL_FONTS) + +include $(BUILD_PREBUILT) # Run sanity tests on fonts on checkbuild checkbuild: fontchain_lint diff --git a/data/fonts/fonts.mk b/data/fonts/fonts.mk index 23c54aec62fe..e884f2fe4bbb 100644 --- a/data/fonts/fonts.mk +++ b/data/fonts/fonts.mk @@ -14,9 +14,7 @@ # Warning: this is actually a product definition, to be inherited from -PRODUCT_COPY_FILES := \ - frameworks/base/data/fonts/fonts.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/fonts.xml - PRODUCT_PACKAGES := \ DroidSansMono.ttf \ - AndroidClock.ttf + AndroidClock.ttf \ + fonts.xml diff --git a/tools/fonts/add_additional_fonts.py b/tools/fonts/add_additional_fonts.py new file mode 100644 index 000000000000..bf4af2b1c56e --- /dev/null +++ b/tools/fonts/add_additional_fonts.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python +# +# Copyright (C) 2017 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +import sys + +def main(argv): + original_file = 'frameworks/base/data/fonts/fonts.xml' + + if len(argv) == 3: + output_file_path = argv[1] + override_file_path = argv[2] + else: + raise ValueError("Wrong number of arguments %s" % len(argv)) + + fallbackPlaceholderFound = False + with open(original_file, 'r') as input_file: + with open(output_file_path, 'w') as output_file: + for line in input_file: + # If we've found the spot to add additional fonts, add them. + if line.strip() == '<!-- fallback fonts -->': + fallbackPlaceholderFound = True + with open(override_file_path) as override_file: + for override_line in override_file: + output_file.write(override_line) + output_file.write(line) + if not fallbackPlaceholderFound: + raise ValueError('<!-- fallback fonts --> not found in source file: %s' % original_file) + +if __name__ == '__main__': + main(sys.argv) |