Chromium Code Reviews| Index: pylib/gyp/generator/ninja.py |
| diff --git a/pylib/gyp/generator/ninja.py b/pylib/gyp/generator/ninja.py |
| index f31068a9bf44a89b1c83e61afccc01d284e06fc8..639fda5455822aca3ff72e2c0a1bd8fe07e074aa 100644 |
| --- a/pylib/gyp/generator/ninja.py |
| +++ b/pylib/gyp/generator/ninja.py |
| @@ -1777,8 +1777,26 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, |
| wrappers[key_prefix] = os.path.join(build_to_root, value) |
| if flavor == 'win': |
| + # Extract msvs_system_include_dirs that are common to all targets. |
| + all_system_includes = set( |
| + target_dicts[target_list[0]]['configurations'][config_name].get( |
| + 'msvs_system_include_dirs', [])) |
| + for qualified_target in target_list: |
|
scottmg
2014/07/19 18:49:36
is this target_list everything? how does it relate
Nico
2014/07/19 23:05:35
as far as I understand, all_targets gets everythin
|
| + config = target_dicts[qualified_target]['configurations'][config_name] |
| + system_includes = config.get('msvs_system_include_dirs', []) |
| + all_system_includes = all_system_includes & set(system_includes) |
| + #print 'env:', all_system_includes |
| + if all_system_includes: |
| + for qualified_target in target_list: |
| + config = target_dicts[qualified_target]['configurations'][config_name] |
| + includes = config.get('msvs_system_include_dirs', []) |
| + if includes: |
| + new_includes = [i for i in includes if i not in all_system_includes] |
| + config['msvs_system_include_dirs'] = new_includes |
| + # FIXME: Need to expand ms macros in all_system_includes too |
| + |
| cl_paths = gyp.msvs_emulation.GenerateEnvironmentFiles( |
| - toplevel_build, generator_flags, OpenOutput) |
| + toplevel_build, generator_flags, all_system_includes, OpenOutput) |
| for arch, path in cl_paths.iteritems(): |
| if clang_cl: |
| # If we have selected clang-cl, use that instead. |