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

Side by Side Diff: visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/XamlParser.cs

Issue 11044024: Implement multi-core builds in MSVS (Closed) Base URL: http://nativeclient-sdk.googlecode.com/svn/trunk/src
Patch Set: Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/NaClLink.cs ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 using System; 1 using System;
2 using System.Collections.Generic; 2 using System.Collections.Generic;
3 using System.Linq; 3 using System.Linq;
4 using System.Text; 4 using System.Text;
5 using System.IO;
5 6
6 using Microsoft.Build.Framework; 7 using Microsoft.Build.Framework;
7 using System.Xaml; 8 using System.Xaml;
8 using Microsoft.Build.Framework.XamlTypes; 9 using Microsoft.Build.Framework.XamlTypes;
9 using Microsoft.Build.Utilities; 10 using Microsoft.Build.Utilities;
10 11
11 namespace NaCl.Build.CPPTasks 12 namespace NaCl.Build.CPPTasks
12 { 13 {
13 class XamlParser 14 class XamlParser
14 { 15 {
(...skipping 17 matching lines...) Expand all
32 33
33 InitFunctionMap(); 34 InitFunctionMap();
34 } 35 }
35 36
36 private void InitFunctionMap() 37 private void InitFunctionMap()
37 { 38 {
38 m_typeFunctionMap = new Dictionary<Type, Action<CommandLineBuilder, BaseProperty, string>> 39 m_typeFunctionMap = new Dictionary<Type, Action<CommandLineBuilder, BaseProperty, string>>
39 { 40 {
40 { typeof(StringListProperty), GenerateArgumentStringList }, 41 { typeof(StringListProperty), GenerateArgumentStringList },
41 { typeof(StringProperty), GenerateArgumentString }, 42 { typeof(StringProperty), GenerateArgumentString },
42 { typeof(IntProperty), GenerateArgumentString }, 43 { typeof(IntProperty), GenerateArgumentInt },
43 { typeof(BoolProperty), GenerateArgumentBool }, 44 { typeof(BoolProperty), GenerateArgumentBool },
44 { typeof(EnumProperty), GenerateArgumentEnum } 45 { typeof(EnumProperty), GenerateArgumentEnum }
45 }; 46 };
46 } 47 }
47 48
48 public string Parse(ITaskItem taskItem) 49 public string Parse(ITaskItem taskItem, bool fullOutputName)
49 { 50 {
50 CommandLineBuilder builder = new CommandLineBuilder(); 51 CommandLineBuilder builder = new CommandLineBuilder();
51 52
52 foreach (string name in taskItem.MetadataNames) 53 foreach (string name in taskItem.MetadataNames)
53 { 54 {
54 string value = taskItem.GetMetadata(name); 55 string value = taskItem.GetMetadata(name);
56 if (fullOutputName && name == "ObjectFileName")
57 {
58 if ((File.GetAttributes(value) & FileAttributes.Directory) ! = 0)
59 {
60 value = Path.Combine(value, Path.GetFileName(taskItem.It emSpec));
61 value = Path.ChangeExtension(value, ".obj");
62 }
63 }
55 AppendArgumentForProperty(builder, name, value); 64 AppendArgumentForProperty(builder, name, value);
56 } 65 }
57 66
58 string result = builder.ToString(); 67 string result = builder.ToString();
59 result = result.Replace('\\', '/'); // posix paths 68 result = result.Replace('\\', '/'); // posix paths
60 return result; 69 return result;
61 } 70 }
62 71
63 private string AppendArgumentForProperty(CommandLineBuilder builder, str ing name, string value) 72 private string AppendArgumentForProperty(CommandLineBuilder builder, str ing name, string value)
64 { 73 {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 } 128 }
120 } 129 }
121 130
122 private void GenerateArgumentString(CommandLineBuilder builder, BaseProp erty property, string value) 131 private void GenerateArgumentString(CommandLineBuilder builder, BaseProp erty property, string value)
123 { 132 {
124 // could cache this SubType test off in property wrapper or somewher e if performance were an issue 133 // could cache this SubType test off in property wrapper or somewher e if performance were an issue
125 StringProperty casted = (StringProperty)property; 134 StringProperty casted = (StringProperty)property;
126 AppendStringValue(builder, property, casted.Subtype, value); 135 AppendStringValue(builder, property, casted.Subtype, value);
127 } 136 }
128 137
138 private void GenerateArgumentInt(CommandLineBuilder builder, BasePropert y property, string value)
139 {
140 // Currently we only have one Int property and it doesn't correspond to a
141 // command line arguemnt (ProcessorNumber) so we ignore it here.
142 }
143
129 private void GenerateArgumentBool(CommandLineBuilder builder, BaseProper ty property, string value) 144 private void GenerateArgumentBool(CommandLineBuilder builder, BaseProper ty property, string value)
130 { 145 {
131 if (value == "true") 146 if (value == "true")
132 { 147 {
133 builder.AppendSwitchUnquotedIfNotNull(m_parsedBuildRule.SwitchPr efix, property.Switch); 148 builder.AppendSwitchUnquotedIfNotNull(m_parsedBuildRule.SwitchPr efix, property.Switch);
134 } 149 }
135 else if (value == "false" && ((BoolProperty)property).ReverseSwitch != null) 150 else if (value == "false" && ((BoolProperty)property).ReverseSwitch != null)
136 { 151 {
137 builder.AppendSwitchUnquotedIfNotNull(m_parsedBuildRule.SwitchPr efix, ((BoolProperty)property).ReverseSwitch); 152 builder.AppendSwitchUnquotedIfNotNull(m_parsedBuildRule.SwitchPr efix, ((BoolProperty)property).ReverseSwitch);
138 } 153 }
(...skipping 12 matching lines...) Expand all
151 } // class 166 } // class
152 167
153 private Rule m_parsedBuildRule; 168 private Rule m_parsedBuildRule;
154 private Dictionary<string, PropertyWrapper> ToolProperties { get; set; } 169 private Dictionary<string, PropertyWrapper> ToolProperties { get; set; }
155 170
156 // function mapping for easy property function calling 171 // function mapping for easy property function calling
157 private Dictionary<Type, Action<CommandLineBuilder, BaseProperty, string >> m_typeFunctionMap; 172 private Dictionary<Type, Action<CommandLineBuilder, BaseProperty, string >> m_typeFunctionMap;
158 } // XamlParser 173 } // XamlParser
159 } // namespace NaCl.Build.CPPTasks 174 } // namespace NaCl.Build.CPPTasks
160 175
OLDNEW
« no previous file with comments | « visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/NaClLink.cs ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698