| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 | 2 |
| 3 # Copyright 2014 Google Inc. | 3 # Copyright 2014 Google Inc. |
| 4 # | 4 # |
| 5 # Use of this source code is governed by a BSD-style license that can be | 5 # Use of this source code is governed by a BSD-style license that can be |
| 6 # found in the LICENSE file. | 6 # found in the LICENSE file. |
| 7 | 7 |
| 8 """ | 8 """ |
| 9 Script for generating the Android framework's version of Skia from gyp | 9 Script for generating the Android framework's version of Skia from gyp |
| 10 files. | 10 files. |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 import gyp_gen.generate_user_config as generate_user_config | 30 import gyp_gen.generate_user_config as generate_user_config |
| 31 import gyp_gen.makefile_writer as makefile_writer | 31 import gyp_gen.makefile_writer as makefile_writer |
| 32 import gyp_gen.tool_makefile_writer as tool_makefile_writer | 32 import gyp_gen.tool_makefile_writer as tool_makefile_writer |
| 33 import gyp_gen.vars_dict_lib as vars_dict_lib | 33 import gyp_gen.vars_dict_lib as vars_dict_lib |
| 34 | 34 |
| 35 # Folder containing all gyp files and generated gypd files. | 35 # Folder containing all gyp files and generated gypd files. |
| 36 GYP_FOLDER = 'gyp' | 36 GYP_FOLDER = 'gyp' |
| 37 | 37 |
| 38 | 38 |
| 39 def generate_var_dict(target_dir, target_file, skia_arch_type, have_neon, | 39 def generate_var_dict(target_dir, target_file, skia_arch_type, have_neon, |
| 40 gyp_source_dir): | 40 have_mips_dspr2, have_mips_dspr1, gyp_source_dir): |
| 41 """Create a VarsDict for a particular arch type. | 41 """Create a VarsDict for a particular arch type. |
| 42 | 42 |
| 43 Each paramater is passed directly to android_framework_gyp.main(). | 43 Each paramater is passed directly to android_framework_gyp.main(). |
| 44 | 44 |
| 45 Args: | 45 Args: |
| 46 target_dir: Directory containing gyp files. | 46 target_dir: Directory containing gyp files. |
| 47 target_file: Target gyp file. | 47 target_file: Target gyp file. |
| 48 skia_arch_type: Target architecture. | 48 skia_arch_type: Target architecture. |
| 49 have_neon: Whether the target should build for neon. | 49 have_neon: Whether the target should build for neon. |
| 50 have_mips_dspr2: Whether the target should build for mips_dspr2. |
| 51 have_mips_dspr1: Whether the target should build for mips_dspr1. |
| 50 gyp_source_dir: Directory for gyp source. | 52 gyp_source_dir: Directory for gyp source. |
| 51 Returns: | 53 Returns: |
| 52 A VarsDict containing the variable definitions determined by gyp. | 54 A VarsDict containing the variable definitions determined by gyp. |
| 53 """ | 55 """ |
| 54 result_file = android_framework_gyp.main(target_dir, target_file, | 56 result_file = android_framework_gyp.main(target_dir, target_file, |
| 55 skia_arch_type, have_neon, | 57 skia_arch_type, have_neon, |
| 58 have_mips_dspr2, have_mips_dspr1, |
| 56 gyp_source_dir) | 59 gyp_source_dir) |
| 57 var_dict = vars_dict_lib.VarsDict() | 60 var_dict = vars_dict_lib.VarsDict() |
| 58 gypd_parser.parse_gypd(var_dict, result_file, '.') | 61 gypd_parser.parse_gypd(var_dict, result_file, '.') |
| 59 android_framework_gyp.clean_gypd_files(target_dir) | 62 android_framework_gyp.clean_gypd_files(target_dir) |
| 60 print '.', | 63 print '.', |
| 61 return var_dict | 64 return var_dict |
| 62 | 65 |
| 63 def main(target_dir=None, require_sk_user_config=False, gyp_source_dir=None): | 66 def main(target_dir=None, require_sk_user_config=False, gyp_source_dir=None): |
| 64 """Create Android.mk for the Android framework's external/skia. | 67 """Create Android.mk for the Android framework's external/skia. |
| 65 | 68 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 93 # 2. call parse_gypd to read those gypd files into the VarsDict | 96 # 2. call parse_gypd to read those gypd files into the VarsDict |
| 94 # 3. delete the gypd files | 97 # 3. delete the gypd files |
| 95 # | 98 # |
| 96 # Once we have the VarsDict for each architecture type, we combine them all | 99 # Once we have the VarsDict for each architecture type, we combine them all |
| 97 # into a single Android.mk file, which can build targets of any | 100 # into a single Android.mk file, which can build targets of any |
| 98 # architecture type. | 101 # architecture type. |
| 99 | 102 |
| 100 # The default uses a non-existant archtype, to find all the general | 103 # The default uses a non-existant archtype, to find all the general |
| 101 # variable definitions. | 104 # variable definitions. |
| 102 default_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'other', | 105 default_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'other', |
| 103 False, gyp_source_dir) | 106 False, False, False, gyp_source_dir) |
| 104 arm_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'arm', False, | 107 arm_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'arm', False, |
| 105 gyp_source_dir) | 108 False, False, gyp_source_dir) |
| 106 arm_neon_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'arm', | 109 arm_neon_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'arm', |
| 107 True, gyp_source_dir) | 110 True, False, False, gyp_source_dir) |
| 108 x86_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'x86', False, | 111 x86_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'x86', False, |
| 109 gyp_source_dir) | 112 False, False, gyp_source_dir) |
| 110 x86_64_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'x86_64', | 113 x86_64_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'x86_64', |
| 111 False, gyp_source_dir) | 114 False, False, False, gyp_source_dir) |
| 112 | 115 |
| 113 mips_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'mips', False, | 116 mips_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'mips', False, |
| 114 gyp_source_dir) | 117 False, False, gyp_source_dir) |
| 118 |
| 119 mips_dspr2_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'mips', |
| 120 False, True, False, gyp_source_dir) |
| 121 |
| 122 mips_dspr1_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'mips', |
| 123 False, False, True, gyp_source_dir) |
| 115 | 124 |
| 116 mips64_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'mips64', | 125 mips64_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'mips64', |
| 117 False, gyp_source_dir) | 126 False, False, False, gyp_source_dir) |
| 118 | 127 |
| 119 arm64_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'arm64', | 128 arm64_var_dict = generate_var_dict(tmp_folder, main_gyp_file, 'arm64', |
| 120 False, gyp_source_dir) | 129 False, False, False, gyp_source_dir) |
| 121 | 130 |
| 122 # Compute the intersection of all targets. All the files in the intersection | 131 # Compute the intersection of all targets. All the files in the intersection |
| 123 # should be part of the makefile always. Each dict will now contain trimmed | 132 # should be part of the makefile always. Each dict will now contain trimmed |
| 124 # lists containing only variable definitions specific to that configuration. | 133 # lists containing only variable definitions specific to that configuration. |
| 125 var_dict_list = [default_var_dict, arm_var_dict, arm_neon_var_dict, | 134 var_dict_list = [default_var_dict, arm_var_dict, arm_neon_var_dict, |
| 126 x86_var_dict, x86_64_var_dict, mips_var_dict, | 135 x86_var_dict, x86_64_var_dict, mips_var_dict, |
| 127 mips64_var_dict, arm64_var_dict] | 136 mips_dspr1_var_dict, mips_dspr2_var_dict, mips64_var_dict, |
| 137 arm64_var_dict] |
| 128 common = vars_dict_lib.intersect(var_dict_list) | 138 common = vars_dict_lib.intersect(var_dict_list) |
| 129 | 139 |
| 130 common.LOCAL_MODULE.add('libskia') | 140 common.LOCAL_MODULE.add('libskia') |
| 131 | 141 |
| 132 # Create SkUserConfig | 142 # Create SkUserConfig |
| 133 user_config = os.path.join(SKIA_DIR, 'include', 'config', 'SkUserConfig.h') | 143 user_config = os.path.join(SKIA_DIR, 'include', 'config', 'SkUserConfig.h') |
| 134 if target_dir: | 144 if target_dir: |
| 135 dst_dir = target_dir | 145 dst_dir = target_dir |
| 136 else: | 146 else: |
| 137 dst_dir = os.path.join(SKIA_DIR, 'include', 'core') | 147 dst_dir = os.path.join(SKIA_DIR, 'include', 'core') |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 deviations_from_common = [] | 186 deviations_from_common = [] |
| 177 deviations_from_common.append(makefile_writer.VarsDictData( | 187 deviations_from_common.append(makefile_writer.VarsDictData( |
| 178 arm_var_dict, 'arm')) | 188 arm_var_dict, 'arm')) |
| 179 deviations_from_common.append(makefile_writer.VarsDictData( | 189 deviations_from_common.append(makefile_writer.VarsDictData( |
| 180 arm_neon_var_dict, 'arm', 'ARCH_ARM_HAVE_NEON')) | 190 arm_neon_var_dict, 'arm', 'ARCH_ARM_HAVE_NEON')) |
| 181 deviations_from_common.append(makefile_writer.VarsDictData(x86_var_dict, | 191 deviations_from_common.append(makefile_writer.VarsDictData(x86_var_dict, |
| 182 'x86')) | 192 'x86')) |
| 183 deviations_from_common.append(makefile_writer.VarsDictData(x86_64_var_dict, | 193 deviations_from_common.append(makefile_writer.VarsDictData(x86_64_var_dict, |
| 184 'x86_64')) | 194 'x86_64')) |
| 185 | 195 |
| 196 deviations_from_common.append(makefile_writer.VarsDictData( |
| 197 mips_dspr2_var_dict, 'mips', 'mips32r2dspr2-fp')) |
| 198 |
| 199 deviations_from_common.append(makefile_writer.VarsDictData( |
| 200 mips_dspr1_var_dict, 'mips', 'mips32r2dsp-fp')) |
| 201 |
| 186 deviations_from_common.append(makefile_writer.VarsDictData(mips_var_dict, | 202 deviations_from_common.append(makefile_writer.VarsDictData(mips_var_dict, |
| 187 'mips')) | 203 'mips')) |
| 188 | 204 |
| 189 deviations_from_common.append(makefile_writer.VarsDictData(mips64_var_dict, | 205 deviations_from_common.append(makefile_writer.VarsDictData(mips64_var_dict, |
| 190 'mips64')) | 206 'mips64')) |
| 191 | 207 |
| 192 deviations_from_common.append(makefile_writer.VarsDictData(arm64_var_dict, | 208 deviations_from_common.append(makefile_writer.VarsDictData(arm64_var_dict, |
| 193 'arm64')) | 209 'arm64')) |
| 194 | 210 |
| 195 makefile_writer.write_android_mk(target_dir=target_dir, | 211 makefile_writer.write_android_mk(target_dir=target_dir, |
| 196 common=common, deviations_from_common=deviations_from_common) | 212 common=common, deviations_from_common=deviations_from_common) |
| 197 | 213 |
| 198 makefile_writer.write_static_deps_mk(target_dir=target_dir, | 214 makefile_writer.write_static_deps_mk(target_dir=target_dir, |
| 199 common=common, deviations_from_common=deviations_from_common) | 215 common=common, deviations_from_common=deviations_from_common) |
| 200 | 216 |
| 201 finally: | 217 finally: |
| 202 shutil.rmtree(tmp_folder) | 218 shutil.rmtree(tmp_folder) |
| 203 | 219 |
| 204 if __name__ == '__main__': | 220 if __name__ == '__main__': |
| 205 parser = argparse.ArgumentParser() | 221 parser = argparse.ArgumentParser() |
| 206 parser.add_argument('--gyp_source_dir', help='Source of gyp program. ' | 222 parser.add_argument('--gyp_source_dir', help='Source of gyp program. ' |
| 207 'e.g. <path_to_skia>/third_party/externals/gyp') | 223 'e.g. <path_to_skia>/third_party/externals/gyp') |
| 208 args = parser.parse_args() | 224 args = parser.parse_args() |
| 209 | 225 |
| 210 main(gyp_source_dir=args.gyp_source_dir) | 226 main(gyp_source_dir=args.gyp_source_dir) |
| OLD | NEW |