| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Utility functions (file reading, simple IDL parsing by regexes) for IDL build
. | 5 """Utility functions (file reading, simple IDL parsing by regexes) for IDL build
. |
| 6 | 6 |
| 7 Design doc: http://www.chromium.org/developers/design-documents/idl-build | 7 Design doc: http://www.chromium.org/developers/design-documents/idl-build |
| 8 """ | 8 """ |
| 9 | 9 |
| 10 import os | 10 import os |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 @property | 175 @property |
| 176 def include_path_for_export(self): | 176 def include_path_for_export(self): |
| 177 return 'modules/ModulesExport.h' | 177 return 'modules/ModulesExport.h' |
| 178 | 178 |
| 179 | 179 |
| 180 def load_interfaces_info_overall_pickle(info_dir): | 180 def load_interfaces_info_overall_pickle(info_dir): |
| 181 with open(os.path.join(info_dir, 'modules', 'InterfacesInfoOverall.pickle'))
as interface_info_file: | 181 with open(os.path.join(info_dir, 'modules', 'InterfacesInfoOverall.pickle'))
as interface_info_file: |
| 182 return pickle.load(interface_info_file) | 182 return pickle.load(interface_info_file) |
| 183 | 183 |
| 184 | 184 |
| 185 def merge_dict_recursively(target, diff): |
| 186 """Merges two dicts into one. |
| 187 |target| will be updated with |diff|. Part of |diff| may be re-used in |
| 188 |target|. |
| 189 """ |
| 190 for key, value in diff.iteritems(): |
| 191 if key not in target: |
| 192 target[key] = value |
| 193 elif type(value) == dict: |
| 194 merge_dict_recursively(target[key], value) |
| 195 elif type(value) == list: |
| 196 target[key].extend(value) |
| 197 elif type(value) == set: |
| 198 target[key].update(value) |
| 199 else: |
| 200 # Testing IDLs want to overwrite the values. Production code |
| 201 # doesn't need any overwriting. |
| 202 target[key] = value |
| 203 |
| 204 |
| 185 def create_component_info_provider_core(info_dir): | 205 def create_component_info_provider_core(info_dir): |
| 186 interfaces_info = load_interfaces_info_overall_pickle(info_dir) | 206 interfaces_info = load_interfaces_info_overall_pickle(info_dir) |
| 187 with open(os.path.join(info_dir, 'core', 'ComponentInfoCore.pickle')) as com
ponent_info_file: | 207 with open(os.path.join(info_dir, 'core', 'ComponentInfoCore.pickle')) as com
ponent_info_file: |
| 188 component_info = pickle.load(component_info_file) | 208 component_info = pickle.load(component_info_file) |
| 189 return ComponentInfoProviderCore(interfaces_info, component_info) | 209 return ComponentInfoProviderCore(interfaces_info, component_info) |
| 190 | 210 |
| 191 | 211 |
| 192 def create_component_info_provider_modules(info_dir): | 212 def create_component_info_provider_modules(info_dir): |
| 193 interfaces_info = load_interfaces_info_overall_pickle(info_dir) | 213 interfaces_info = load_interfaces_info_overall_pickle(info_dir) |
| 194 with open(os.path.join(info_dir, 'core', 'ComponentInfoCore.pickle')) as com
ponent_info_file: | 214 with open(os.path.join(info_dir, 'core', 'ComponentInfoCore.pickle')) as com
ponent_info_file: |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 348 extended_attributes_string = match.group(1) | 368 extended_attributes_string = match.group(1) |
| 349 match = re.search(r'[^=]\bExposed\(([^)]*)\)', file_contents) | 369 match = re.search(r'[^=]\bExposed\(([^)]*)\)', file_contents) |
| 350 if not match: | 370 if not match: |
| 351 return None | 371 return None |
| 352 arguments = [] | 372 arguments = [] |
| 353 for argument in map(string.strip, match.group(1).split(',')): | 373 for argument in map(string.strip, match.group(1).split(',')): |
| 354 exposed, runtime_enabled = argument.split() | 374 exposed, runtime_enabled = argument.split() |
| 355 arguments.append({'exposed': exposed, 'runtime_enabled': runtime_enabled
}) | 375 arguments.append({'exposed': exposed, 'runtime_enabled': runtime_enabled
}) |
| 356 | 376 |
| 357 return arguments | 377 return arguments |
| OLD | NEW |