]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkTasks/org/tianocore/framework/tasks/GuidChkTask.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Java / Source / FrameworkTasks / org / tianocore / framework / tasks / GuidChkTask.java
CommitLineData
878ddf1f 1/** @file\r
2 GuidChkTask class.\r
3\r
4 GuidChkTask is to call GuidChk.exe to generate Section.\r
5 \r
6 Copyright (c) 2006, Intel Corporation\r
7 All rights reserved. This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions of the BSD License\r
9 which accompanies this distribution. The full text of the license may be found at\r
10 http://opensource.org/licenses/bsd-license.php\r
11 \r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
14 \r
15**/\r
16package org.tianocore.framework.tasks;\r
17import java.io.BufferedReader;\r
18import java.io.InputStreamReader;\r
19import java.io.PrintWriter;\r
20import java.io.File;\r
21\r
22import org.apache.tools.ant.BuildException;\r
23import org.apache.tools.ant.Project;\r
24import org.apache.tools.ant.Task;\r
25\r
0fdb42ac 26import org.tianocore.common.logger.EdkLog;\r
27\r
878ddf1f 28/**\r
29 GuidChkTask\r
30 \r
31 GuidChkTask is to call GuidChk.exe to generate Section.\r
32 \r
33**/\r
34public class GuidChkTask extends Task implements EfiDefine{\r
35 /**\r
36 * GuidChk task class\r
37 * class member\r
38 * -exDir : directory name of exclusion searching \r
39 * -exFile : file name of exclusion searching\r
40 * -exExt : extension name of exclusion searching\r
41 * -exSubDir: extesnion name of sub dir which excluded searching\r
42 * -outFile : out put file wrote internal GUID+basename list\r
43 * -chkGui : check for duplicate guids\r
44 * -chkSign : check for duplicate signatures\r
45 * -printGuiDef : if set will print guid+defined symbol name\r
46 * -printAllGuid: if set will print all GUIDS found\r
47 * -outPut : redirection file name\r
48 * -fos : out put redirect to this file \r
49 * \r
50 */\r
0fdb42ac 51 //\r
52 // Tool name\r
53 // \r
54 private static String toolName = "GuidChk";\r
55 //\r
56 // Directory name of exclusion searching \r
57 //\r
58 private FileArg exDir = new FileArg();\r
59 //\r
60 // File name of exclusion searching.\r
61 //\r
62 private FileArg exFile = new FileArg();\r
63 //\r
64 // Extension name of exclusion searching.\r
65 //\r
66 private FileArg exExt = new FileArg();\r
67 //\r
68 // Extesnion name of sub dir which excluded searching.\r
69 //\r
70 private FileArg exSubDir = new FileArg();\r
71 //\r
72 // Out put file wrote internal GUID+basename list\r
73 //\r
74 private FileArg outFile = new FileArg();\r
75 //\r
76 // Check for duplicate guids.\r
77 //\r
78 private ToolArg chkGui = new ToolArg();\r
79 //\r
80 // Check for duplicate signatures\r
81 //\r
82 private ToolArg chkSign = new ToolArg();\r
83 //\r
84 // If set will print guid+defined symbol name\r
85 //\r
86 private ToolArg printGuiDef = new ToolArg();\r
87 //\r
88 // If set will print all GUIDS found\r
89 //\r
90 private ToolArg printAllGuid = new ToolArg();\r
91 //\r
92 // redirection file name.\r
93 //\r
878ddf1f 94 private String outPut = "";\r
0fdb42ac 95 //\r
96 // out put redirect to this file.\r
97 //\r
878ddf1f 98 protected PrintWriter fos = null;\r
99 \r
100 //\r
101 // overload class execute method\r
102 // \r
103 public void execute() throws BuildException {\r
104 Project project = this.getOwningTarget().getProject();\r
2da8968b 105 String path = project.getProperty("env.FRAMEWORK_TOOLS_PATH");\r
878ddf1f 106 String command;\r
107 if (path == null) {\r
0fdb42ac 108 command = toolName;\r
878ddf1f 109 } else {\r
0fdb42ac 110 command = path + File.separatorChar + toolName;\r
878ddf1f 111 }\r
0fdb42ac 112 String argument = "" + exDir +\r
113 exFile +\r
114 exExt +\r
115 exSubDir +\r
116 outFile +\r
117 chkGui +\r
118 chkSign +\r
119 printGuiDef + \r
120 printAllGuid; \r
878ddf1f 121 try {\r
0fdb42ac 122 EdkLog.log(this, EdkLog.EDK_VERBOSE, command + " " + argument);\r
878ddf1f 123 //\r
124 // execute command line \r
125 //\r
0fdb42ac 126 Process proc = Runtime.getRuntime().exec(command + " " + argument);\r
878ddf1f 127 //\r
128 // if set output, redirect out put to output file, else print output to screen\r
129 // \r
130 if ( !this.outPut.equals("")) {\r
131 fos = new PrintWriter(this.outPut);\r
132 BufferedReader bin = new BufferedReader(new InputStreamReader(proc.getInputStream()));\r
133 String line = bin.readLine();\r
134 while (line != null ){ \r
0fdb42ac 135 fos.println(line);\r
136 line = bin.readLine();\r
878ddf1f 137 }\r
138 fos.close();\r
139 }\r
140 else {\r
141 BufferedReader bin = new BufferedReader(new InputStreamReader(proc.getInputStream()));\r
142 String line = bin.readLine();\r
878ddf1f 143 while (line != null ){\r
878ddf1f 144 line = bin.readLine();\r
145 } \r
146 } \r
0fdb42ac 147 EdkLog.log(this, EdkLog.EDK_VERBOSE, toolName + " Succeeded!");\r
878ddf1f 148 } catch (Exception e) {\r
0fdb42ac 149 throw new BuildException(toolName + " failed!");\r
878ddf1f 150 }\r
151 }\r
152 /**\r
153 getChkGui\r
154 \r
155 This function is to get the string of flag of ChkGui\r
156 \r
157 @return string of flag of ChkGui\r
158 **/\r
159 public String getChkGui() {\r
0fdb42ac 160 return chkGui.getValue();\r
878ddf1f 161 }\r
162 \r
163 /**\r
164 setChkGui\r
165 \r
166 This function is to set chkGui\r
167 \r
168 @param chkGui set class member of chkGui\r
169 **/\r
0fdb42ac 170 public void setChkGui(boolean chkGui) {\r
171 if (chkGui) {\r
172 this.chkGui.setArg(" -", "g");\r
173 } \r
878ddf1f 174 }\r
175 \r
176 /**\r
177 getChkSign\r
178 \r
179 This function is to get chkSign\r
180 \r
181 @return chkSign\r
182 **/\r
183 public String getChkSign() {\r
0fdb42ac 184 return chkSign.getValue();\r
878ddf1f 185 }\r
186 \r
187 /**\r
188 setChkSign\r
189 \r
190 This function is to set class member of chkSign\r
191 * @param chkSign\r
192 */\r
0fdb42ac 193 public void setChkSign(boolean chkSign) {\r
194 if (chkSign){\r
195 this.chkSign.setArg(" -", "s");\r
878ddf1f 196 } \r
197 }\r
198 /**\r
199 getExDir\r
200 \r
201 This function is to get class member of exDir\r
202 \r
203 @return exDir\r
204 **/\r
205 public String getExDir() {\r
0fdb42ac 206 return exDir.getValue();\r
878ddf1f 207 }\r
208 \r
209 /**\r
210 setExDir\r
211 \r
212 This function is to set class member of exDir\r
213 \r
214 @param exDir\r
215 **/\r
216 public void setExDir(String exDir) {\r
0fdb42ac 217 this.exDir.setArg(" -d ", exDir);\r
878ddf1f 218 }\r
219 \r
220 /**\r
221 getExExt\r
222 \r
223 This function is to get class member of exExt\r
224 \r
225 @return exExt\r
226 **/\r
227 public String getExExt() {\r
0fdb42ac 228 return exExt.getValue();\r
878ddf1f 229 }\r
230 \r
231 /**\r
232 setExExt\r
233 \r
234 This function is to set class member of exExt\r
235 @param exExt\r
236 **/\r
237 public void setExExt(String exExt) {\r
0fdb42ac 238 this.exExt.setArg(" -e ", exExt);\r
878ddf1f 239 }\r
240 \r
241 /**\r
242 getExFile\r
243 \r
244 This function is to get class member of exFile\r
245 @return exFile\r
246 **/\r
247 public String getExFile() {\r
0fdb42ac 248 return exFile.getValue();\r
878ddf1f 249 }\r
250 \r
251 /**\r
252 setExFile\r
253 \r
254 This function is to set class member of exFile.\r
255 \r
256 @param exFile\r
257 **/\r
258 public void setExFile(String exFile) {\r
0fdb42ac 259 this.exFile.setArg(" -f ", exFile);\r
878ddf1f 260 }\r
261 \r
262 /**\r
263 getExSubDir\r
264 \r
265 This function is to get class member of exSubDir\r
266 \r
267 @return exSubDir\r
268 **/\r
269 public String getExSubDir() {\r
0fdb42ac 270 return exSubDir.getValue();\r
878ddf1f 271 }\r
272 \r
273 /**\r
274 setExSubDir\r
275 \r
276 This function is to set class member of exSubDir.\r
277 @param exSubDir\r
278 **/\r
279 public void setExSubDir(String exSubDir) {\r
0fdb42ac 280 this.exSubDir.setArg(" -u ", exSubDir);\r
878ddf1f 281 }\r
282 \r
283 /**\r
284 getOutFile\r
285 \r
286 This function is to get outFile\r
287 \r
288 @return outFile\r
289 **/\r
290 public String getOutFile() {\r
0fdb42ac 291 return outFile.getValue();\r
878ddf1f 292 }\r
293 /**\r
294 * set class member of outFile\r
295 * @param outFile\r
296 */\r
297 public void setOutFile(String outFile) {\r
0fdb42ac 298 this.outFile.setArg(" -b ", outFile);\r
878ddf1f 299 }\r
300 /**\r
301 getPrintGuidDef\r
302 \r
303 This function is to get printGuidDef\r
304 \r
305 @return flage of printing (guid+defined symbol name)\r
306 **/\r
307 public String getPrintGuiDef() {\r
0fdb42ac 308 return printGuiDef.getValue();\r
878ddf1f 309 }\r
310 \r
311 \r
312 /**\r
313 setPrintGuidDef\r
314 \r
315 This function is to set class member of printGuiDef.\r
316 @param printGuiDef\r
317 **/\r
0fdb42ac 318 public void setPrintGuiDef(boolean printGuiDef) {\r
319 if (printGuiDef){\r
320 this.printGuiDef.setArg(" -", "x");\r
878ddf1f 321 }\r
322 \r
323 }\r
324 \r
325 /**\r
326 getOutput\r
327 \r
328 This function is to get output\r
329 \r
330 @return name of outPut file\r
331 **/\r
332 public String getOutPut() {\r
333 return outPut;\r
334 }\r
335 \r
336 /**\r
337 setOutPut\r
338 \r
339 This function is to set class member of outPut.\r
340 @param outPut\r
341 **/\r
342 public void setOutPut(String outPut) {\r
343 this.outPut = outPut;\r
344 }\r
345 \r
346 /**\r
347 getPrintAllGuid\r
348 \r
349 This function is to get printAllGuid\r
350 @return printAllGuid\r
351 **/\r
352 public String getPrintAllGuid() {\r
0fdb42ac 353 return printAllGuid.getValue();\r
878ddf1f 354 }\r
355 \r
356 /**\r
357 setPrintAllGuid\r
358 \r
359 This function is to set class member of printAllGuid.\r
360 @param printAllGuid\r
361 **/\r
0fdb42ac 362 public void setPrintAllGuid(boolean printAllGuid) {\r
363 if (printAllGuid) {\r
364 this.printAllGuid.setArg(" -", "p");\r
878ddf1f 365 } \r
366 }\r
367}\r
368\r