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

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

Issue 11375004: [NaCl Addin] Fix to PNaCl lib creation from MSVS (Closed) Base URL: http://nativeclient-sdk.googlecode.com/svn/trunk/src
Patch Set: Created 8 years, 1 month 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 using System.Collections.Generic; 4 using System.Collections.Generic;
5 using System.Linq; 5 using System.Linq;
6 using System.Text; 6 using System.Text;
7 using System.Collections; 7 using System.Collections;
8 using System.IO; 8 using System.IO;
9 using System.Reflection; 9 using System.Reflection;
10 using System.Resources; 10 using System.Resources;
11 using System.Text.RegularExpressions; 11 using System.Text.RegularExpressions;
12 using System.Diagnostics; 12 using System.Diagnostics;
13 13
14 using Microsoft.Build.Framework; 14 using Microsoft.Build.Framework;
15 using Microsoft.Build.CPPTasks; 15 using Microsoft.Build.CPPTasks;
16 using Microsoft.Build.Utilities; 16 using Microsoft.Build.Utilities;
17 17
18 namespace NaCl.Build.CPPTasks 18 namespace NaCl.Build.CPPTasks
19 { 19 {
20 public class NaClLib : TrackedVCToolTask 20 public class NaClLib : NaClToolTask
21 { 21 {
22 public bool BuildingInIDE { get; set; }
23
24 [Required] 22 [Required]
25 public string LibrarianToolPath { get; set; } 23 public string LibrarianToolPath { get; set; }
26 24
27 [Required] 25 [Required]
28 public string PropertiesFile { get; set; } 26 public string PropertiesFile { get; set; }
29 27
30 [Required]
31 public virtual string OutputFile { get; set; }
32
33 [Required]
34 public string OutputCommandLine { get; set; }
35
36 [Required]
37 public virtual ITaskItem[] Sources { get; set; }
38
39 public NaClLib() 28 public NaClLib()
40 : base(new ResourceManager("NaCl.Build.CPPTasks.Properties.Resources ", Assembly.GetExecutingAssembly())) 29 : base(new ResourceManager("NaCl.Build.CPPTasks.Properties.Resources ", Assembly.GetExecutingAssembly()))
41 { 30 {
42 this.EnvironmentVariables = new string[] { "CYGWIN=nodosfilewarning", "LC_CTYPE=C" }; 31 this.EnvironmentVariables = new string[] { "CYGWIN=nodosfilewarning", "LC_CTYPE=C" };
43 } 32 }
44 33
45 protected override string GenerateResponseFileCommands() 34 protected override string GenerateResponseFileCommands()
46 { 35 {
47 StringBuilder responseFileCmds = new StringBuilder(GCCUtilities.s_Co mmandLineLength); 36 StringBuilder responseFileCmds = new StringBuilder(GCCUtilities.s_Co mmandLineLength);
48 responseFileCmds.Append("rcs "); 37 responseFileCmds.Append("rcs ");
49 responseFileCmds.Append(GCCUtilities.ConvertPathWindowsToPosix(Outpu tFile)); 38 responseFileCmds.Append(GCCUtilities.ConvertPathWindowsToPosix(Outpu tFile));
50 39
51 foreach (ITaskItem item in Sources) 40 foreach (ITaskItem item in Sources)
52 { 41 {
53 responseFileCmds.Append(" "); 42 responseFileCmds.Append(" ");
54 responseFileCmds.Append(GCCUtilities.ConvertPathWindowsToPosix(i tem.ToString())); 43 responseFileCmds.Append(GCCUtilities.ConvertPathWindowsToPosix(i tem.ToString()));
55 } 44 }
56 return responseFileCmds.ToString(); 45 return responseFileCmds.ToString();
57 } 46 }
58 47
48 public override bool Execute()
49 {
50 if (!Setup())
51 return false;
52
53 return base.Execute();
54 }
55
59 protected override int ExecuteTool(string pathToTool, string responseFil eCommands, string commandLineCommands) 56 protected override int ExecuteTool(string pathToTool, string responseFil eCommands, string commandLineCommands)
60 { 57 {
61 if (OutputCommandLine == "true") 58 if (OutputCommandLine)
62 {
63 Log.LogMessage(MessageImportance.High, pathToTool + " " + respo nseFileCommands); 59 Log.LogMessage(MessageImportance.High, pathToTool + " " + respo nseFileCommands);
64 }
65 60
66 return base.ExecuteTool(pathToTool, responseFileCommands, commandLin eCommands); 61 return base.ExecuteTool(pathToTool, responseFileCommands, commandLin eCommands);
67 } 62 }
68 63
69
70
71 public virtual string PlatformToolset
72 {
73 get
74 {
75 return "GCC";
76 }
77 }
78
79 protected override bool MaintainCompositeRootingMarkers
80 {
81 get
82 {
83 return true;
84 }
85 }
86
87 protected override ITaskItem[] TrackedInputFiles
88 {
89 get
90 {
91 return Sources;
92 }
93 }
94
95
96 protected override Encoding ResponseFileEncoding 64 protected override Encoding ResponseFileEncoding
97 { 65 {
98 get 66 get
99 { 67 {
100 return Encoding.ASCII; 68 return Encoding.ASCII;
101 } 69 }
102 } 70 }
103 71
104 protected override string ToolName 72 protected override string ToolName
105 { 73 {
106 get 74 get
107 { 75 {
108 return LibrarianToolPath; 76 return LibrarianToolPath;
109 } 77 }
110 } 78 }
111
112 protected override string TrackerIntermediateDirectory
113 {
114 get
115 {
116 if (this.TrackerLogDirectory != null)
117 {
118 return this.TrackerLogDirectory;
119 }
120 else
121 {
122 return string.Empty;
123 }
124 }
125 }
126
127 protected override string CommandTLogName
128 {
129 get
130 {
131 return "default.link.command.tlog";
132 }
133 }
134
135 protected override string[] ReadTLogNames
136 {
137 get
138 {
139 return new string[]
140 {
141 "default.link.read.tlog"
142 };
143 }
144 }
145
146 protected override string[] WriteTLogNames
147 {
148 get
149 {
150 return new string[]
151 {
152 "default.link.write.tlog"
153 };
154 }
155 }
156
157 public string TrackerLogDirectory { get; set; }
158 } 79 }
159
160
161 } 80 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698