Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(945)

Unified Diff: pylib/gyp/generator/msvs.py

Issue 203383003: Support building selected C/C++ files in msvs-ninja (Closed) Base URL: http://gyp.googlecode.com/svn/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pylib/gyp/win_tool.py » ('j') | pylib/gyp/win_tool.py » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pylib/gyp/generator/msvs.py
diff --git a/pylib/gyp/generator/msvs.py b/pylib/gyp/generator/msvs.py
index e20cee1fe879c16e3bb52af3fc143e1ace09bc03..d1e91c1bc7cfc20df1dc5d164631873093258c4f 100644
--- a/pylib/gyp/generator/msvs.py
+++ b/pylib/gyp/generator/msvs.py
@@ -81,6 +81,7 @@ generator_additional_non_configuration_keys = [
'msvs_external_builder_out_dir',
'msvs_external_builder_build_cmd',
'msvs_external_builder_clean_cmd',
+ 'msvs_external_builder_clcompile_cmd',
]
@@ -1862,6 +1863,14 @@ def _InitNinjaFlavor(options, target_list, target_dicts):
'clean',
'$(ProjectName)',
]
+ if not spec.get('msvs_external_builder_clcompile_cmd'):
+ spec['msvs_external_builder_clcompile_cmd'] = [
+ sys.executable,
+ '$(OutDir)/gyp-win-tool',
+ 'cl-compile',
+ '$(ProjectDir)',
+ '$(SelectedFiles)',
+ ]
def CalculateVariables(default_variables, params):
@@ -3233,7 +3242,9 @@ def _GenerateMSBuildProject(project, options, version, generator_flags):
def _GetMSBuildExternalBuilderTargets(spec):
"""Return a list of MSBuild targets for external builders.
- Right now, only "Build" and "Clean" targets are generated.
+ The "Build" and "Clean" targets are always generated. If the spec contains
+ 'msvs_external_builder_clcompile_cmd', then the "ClCompile" target will also
+ be generated, to support building selected C/C++ files.
Arguments:
spec: The gyp target spec.
@@ -3252,7 +3263,17 @@ def _GetMSBuildExternalBuilderTargets(spec):
clean_target = ['Target', {'Name': 'Clean'}]
clean_target.append(['Exec', {'Command': clean_cmd}])
- return [build_target, clean_target]
+ targets = [build_target, clean_target]
+
+ if spec.get('msvs_external_builder_clcompile_cmd'):
+ clcompile_cmd = _BuildCommandLineForRuleRaw(
+ spec, spec['msvs_external_builder_clcompile_cmd'],
+ False, False, False, False)
+ clcompile_target = ['Target', {'Name': 'ClCompile'}]
+ clcompile_target.append(['Exec', {'Command': clcompile_cmd}])
+ targets.append(clcompile_target)
+
+ return targets
def _GetMSBuildExtensions(props_files_of_rules):
« no previous file with comments | « no previous file | pylib/gyp/win_tool.py » ('j') | pylib/gyp/win_tool.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698