Chromium Code Reviews| Index: visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/XamlParser.cs |
| diff --git a/visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/XamlParser.cs b/visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/XamlParser.cs |
| index 8acbc5fb2a87eb54af8b6f6780127acf8bd68a24..190963a538de365ff18db95194bbd4d978412af7 100644 |
| --- a/visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/XamlParser.cs |
| +++ b/visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/XamlParser.cs |
| @@ -1,4 +1,4 @@ |
| -using System; |
| +using System; |
| using System.Collections.Generic; |
| using System.Linq; |
| using System.Text; |
| @@ -17,13 +17,13 @@ namespace NaCl.Build.CPPTasks |
| // load and store properties from xaml file |
| m_parsedBuildRule = (Rule)XamlServices.Load(path); |
| - // NOTE: |
| - // There are MSBuild classes which support command line building, |
| - // argument switch encapsulation and more. Code within VCToolTask, |
| - // a hidden interface, uses some these classes to generate command line |
| - // switches given project settings. As the VCToolTask class is a hidden |
| - // class and the MSBuild documentation is very sparse, we are going |
| - // with a small custom solution. For reference see the |
| + // NOTE: |
| + // There are MSBuild classes which support command line building, |
| + // argument switch encapsulation and more. Code within VCToolTask, |
| + // a hidden interface, uses some these classes to generate command line |
| + // switches given project settings. As the VCToolTask class is a hidden |
| + // class and the MSBuild documentation is very sparse, we are going |
| + // with a small custom solution. For reference see the |
| // Microsoft.Build.Tasks.Xaml, Microsoft.Build.Framework.XamlTypes namespaces. |
| // move the properties to a property name keyed dictionary for faster lookup |
| @@ -87,19 +87,26 @@ namespace NaCl.Build.CPPTasks |
| value = value.Trim(); |
| // could cache this SubType test off in property wrapper or somewhere if performance were an issue |
| + string switchName = m_parsedBuildRule.SwitchPrefix + property.Switch + property.Separator; |
|
binji
2012/10/02 23:43:47
nit: wrap at 100
|
| if (subtype == "file" || subtype == "folder") |
| { |
| - builder.AppendSwitchIfNotNull(m_parsedBuildRule.SwitchPrefix + property.Switch + property.Separator, value); |
| + // for switches that contains files or folders we need quoting |
| + builder.AppendSwitchIfNotNull(switchName, value); |
| } |
| - else |
| + else if (!string.IsNullOrEmpty(property.Switch)) |
| { |
| - builder.AppendSwitchUnquotedIfNotNull(m_parsedBuildRule.SwitchPrefix + property.Switch + property.Separator, value); |
| + builder.AppendSwitchUnquotedIfNotNull(switchName, value); |
| + } |
| + else if (!string.IsNullOrEmpty(value)) |
| + { |
| + // for non-switchs such as AdditionalOpions we just append the value |
|
binji
2012/10/02 23:43:47
nit:
s/switchs/switches/
s/Opions/Options/
|
| + builder.AppendTextUnquoted(" " + value); |
| } |
| } |
| private void GenerateArgumentStringList(CommandLineBuilder builder, BaseProperty property, string value) |
| { |
| - string [] arguments = value.Split(';'); |
| + string[] arguments = value.Split(';'); |
| foreach (string argument in arguments) |
| { |