diff options
author | Andrew Sapperstein <asapperstein@google.com> | 2017-05-18 16:37:22 -0700 |
---|---|---|
committer | Andrew Sapperstein <asapperstein@google.com> | 2017-05-30 16:49:14 -0700 |
commit | 7459bc49b043e0770b6bda090b2b2e6a6326e2ab (patch) | |
tree | dd379231c6d98d6b4bee36be58866595ea61ba6c /tools/fonts | |
parent | f9e9fa440a8e684ca0b10e591927e1019c371e71 (diff) |
Create fonts.xml module for adding fonts.xml to system/etc
Previously, we used PRODUCT_COPY_FILES. However, that does not allow
overriding the file to use a different one on a per-device basis.
This change migrates the logic to using a BUILD_PREBUILT module
called fonts.xml.
To add additional fonts, the add_additional_fonts.py script has been
added. If ADDITIONAL_FONTS_FILE is defined, add_additional_fonts.py
is run and generates a new version of fonts.xml that contains the
content of ADDITIONAL_FONTS_FILE added where
"<!-- fallback fonts -->" is added.
Bug: 36855735
Bug: 37997769
Test: manual. built multiple devices and verified that the correct
versions of fonts.xml were showing.
Change-Id: I8308f0cb3068274bca5ebd25a38cc023babbd69d
Diffstat (limited to 'tools/fonts')
-rw-r--r-- | tools/fonts/add_additional_fonts.py | 44 |
1 files changed, 44 insertions, 0 deletions
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) |