| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 
|  | 2 # Use of this source code is governed by a BSD-style license that can be | 
|  | 3 # found in the LICENSE file. | 
|  | 4 | 
|  | 5 import fileinput | 
|  | 6 import glob | 
|  | 7 import optparse | 
|  | 8 import os | 
|  | 9 import textwrap | 
|  | 10 | 
|  | 11 | 
|  | 12 def AggregateVectorIcons(working_directory, output_cc, output_h): | 
|  | 13   """Compiles all .icon files in a directory into two C++ files. | 
|  | 14 | 
|  | 15   Args: | 
|  | 16       working_directory: The path to the directory that holds the .icon files | 
|  | 17           and C++ templates. | 
|  | 18       output_cc: The path that should be used to write the .cc file. | 
|  | 19       output_h: The path that should be used to write the .h file. | 
|  | 20   """ | 
|  | 21 | 
|  | 22   icon_list = glob.glob(working_directory + "*.icon") | 
|  | 23 | 
|  | 24   input_header_template = open(os.path.join(working_directory, | 
|  | 25                                             "vector_icons_public.h.template")) | 
|  | 26   header_template_contents = input_header_template.readlines() | 
|  | 27   input_header_template.close() | 
|  | 28   output_header = open(output_h, "w") | 
|  | 29   for line in header_template_contents: | 
|  | 30     if not "TEMPLATE_PLACEHOLDER" in line: | 
|  | 31       output_header.write(line) | 
|  | 32     else: | 
|  | 33       for icon_path in icon_list: | 
|  | 34         (icon_name, extension) = os.path.splitext(os.path.basename(icon_path)) | 
|  | 35         output_header.write("  {},\n".format(icon_name.upper())) | 
|  | 36   output_header.close() | 
|  | 37 | 
|  | 38   input_cc_template = open( | 
|  | 39       os.path.join(working_directory, "vector_icons.cc.template")) | 
|  | 40   cc_template_contents = input_cc_template.readlines() | 
|  | 41   input_cc_template.close() | 
|  | 42   output_cc = open(output_cc, "w") | 
|  | 43   for line in cc_template_contents: | 
|  | 44     if not "TEMPLATE_PLACEHOLDER" in line: | 
|  | 45       output_cc.write(line) | 
|  | 46     else: | 
|  | 47       for icon_path in icon_list: | 
|  | 48         (icon_name, extension) = os.path.splitext(os.path.basename(icon_path)) | 
|  | 49         icon_file = open(icon_path) | 
|  | 50         vector_commands = "".join(icon_file.readlines()) | 
|  | 51         icon_file.close() | 
|  | 52         output_cc.write("ICON_TEMPLATE({}, {})\n".format(icon_name.upper(), | 
|  | 53                                                          vector_commands)) | 
|  | 54   output_cc.close() | 
|  | 55 | 
|  | 56 | 
|  | 57 def main(): | 
|  | 58   parser = optparse.OptionParser() | 
|  | 59   parser.add_option("--working_directory", | 
|  | 60                     help="The directory to look for template C++ as well as " | 
|  | 61                          "icon files.") | 
|  | 62   parser.add_option("--output_cc", | 
|  | 63                     help="The path to output the CC file to.") | 
|  | 64   parser.add_option("--output_h", | 
|  | 65                     help="The path to output the header file to.") | 
|  | 66 | 
|  | 67   (options, args) = parser.parse_args() | 
|  | 68 | 
|  | 69   AggregateVectorIcons(options.working_directory, | 
|  | 70                        options.output_cc, | 
|  | 71                        options.output_h) | 
|  | 72 | 
|  | 73 | 
|  | 74 if __name__ == "__main__": | 
|  | 75   main() | 
| OLD | NEW | 
|---|