| Index: pylib/gyp/generator/ninja.py
|
| diff --git a/pylib/gyp/generator/ninja.py b/pylib/gyp/generator/ninja.py
|
| index c11ba9e9c44029d16a3f8f9f2821aa8759166448..8838f2f383b166c33dbab7caf8b8413a20f32219 100644
|
| --- a/pylib/gyp/generator/ninja.py
|
| +++ b/pylib/gyp/generator/ninja.py
|
| @@ -4,6 +4,7 @@
|
|
|
| import copy
|
| import hashlib
|
| +import multiprocessing
|
| import os.path
|
| import re
|
| import subprocess
|
| @@ -1736,6 +1737,10 @@ def PerformBuild(data, configurations, params):
|
| subprocess.check_call(arguments)
|
|
|
|
|
| +def CallGenerateOutputForConfig(arglist):
|
| + (target_list, target_dicts, data, params, config_name) = arglist
|
| + GenerateOutputForConfig(target_list, target_dicts, data, params, config_name)
|
| +
|
| def GenerateOutput(target_list, target_dicts, data, params):
|
| user_config = params.get('generator_flags', {}).get('config', None)
|
| if user_config:
|
| @@ -1743,6 +1748,13 @@ def GenerateOutput(target_list, target_dicts, data, params):
|
| user_config)
|
| else:
|
| config_names = target_dicts[target_list[0]]['configurations'].keys()
|
| - for config_name in config_names:
|
| - GenerateOutputForConfig(target_list, target_dicts, data, params,
|
| - config_name)
|
| + if params['parallel']:
|
| + pool = multiprocessing.Pool(len(config_names))
|
| + arglists = []
|
| + for config_name in config_names:
|
| + arglists.append((target_list, target_dicts, data, params, config_name))
|
| + pool.map(CallGenerateOutputForConfig, arglists)
|
| + else:
|
| + for config_name in config_names:
|
| + GenerateOutputForConfig(target_list, target_dicts, data, params,
|
| + config_name)
|
|
|