OLD | NEW |
1 # Copyright (c) 2012 Google Inc. All rights reserved. | 1 # Copyright (c) 2012 Google Inc. 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 import copy | 5 import copy |
6 import hashlib | 6 import hashlib |
| 7 import multiprocessing |
7 import os.path | 8 import os.path |
8 import re | 9 import re |
9 import subprocess | 10 import subprocess |
10 import sys | 11 import sys |
11 import gyp | 12 import gyp |
12 import gyp.common | 13 import gyp.common |
13 import gyp.msvs_emulation | 14 import gyp.msvs_emulation |
14 import gyp.MSVSVersion | 15 import gyp.MSVSVersion |
15 import gyp.xcode_emulation | 16 import gyp.xcode_emulation |
16 | 17 |
(...skipping 1712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1729 | 1730 |
1730 def PerformBuild(data, configurations, params): | 1731 def PerformBuild(data, configurations, params): |
1731 options = params['options'] | 1732 options = params['options'] |
1732 for config in configurations: | 1733 for config in configurations: |
1733 builddir = os.path.join(options.toplevel_dir, 'out', config) | 1734 builddir = os.path.join(options.toplevel_dir, 'out', config) |
1734 arguments = ['ninja', '-C', builddir] | 1735 arguments = ['ninja', '-C', builddir] |
1735 print 'Building [%s]: %s' % (config, arguments) | 1736 print 'Building [%s]: %s' % (config, arguments) |
1736 subprocess.check_call(arguments) | 1737 subprocess.check_call(arguments) |
1737 | 1738 |
1738 | 1739 |
| 1740 def CallGenerateOutputForConfig(arglist): |
| 1741 (target_list, target_dicts, data, params, config_name) = arglist |
| 1742 GenerateOutputForConfig(target_list, target_dicts, data, params, config_name) |
| 1743 |
1739 def GenerateOutput(target_list, target_dicts, data, params): | 1744 def GenerateOutput(target_list, target_dicts, data, params): |
1740 user_config = params.get('generator_flags', {}).get('config', None) | 1745 user_config = params.get('generator_flags', {}).get('config', None) |
1741 if user_config: | 1746 if user_config: |
1742 GenerateOutputForConfig(target_list, target_dicts, data, params, | 1747 GenerateOutputForConfig(target_list, target_dicts, data, params, |
1743 user_config) | 1748 user_config) |
1744 else: | 1749 else: |
1745 config_names = target_dicts[target_list[0]]['configurations'].keys() | 1750 config_names = target_dicts[target_list[0]]['configurations'].keys() |
1746 for config_name in config_names: | 1751 if params['parallel']: |
1747 GenerateOutputForConfig(target_list, target_dicts, data, params, | 1752 pool = multiprocessing.Pool(len(config_names)) |
1748 config_name) | 1753 arglists = [] |
| 1754 for config_name in config_names: |
| 1755 arglists.append((target_list, target_dicts, data, params, config_name)) |
| 1756 pool.map(CallGenerateOutputForConfig, arglists) |
| 1757 else: |
| 1758 for config_name in config_names: |
| 1759 GenerateOutputForConfig(target_list, target_dicts, data, params, |
| 1760 config_name) |
OLD | NEW |