]>
Commit | Line | Data |
---|---|---|
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 | |
16 | package org.tianocore.framework.tasks;\r | |
17 | import java.io.BufferedReader;\r | |
18 | import java.io.InputStreamReader;\r | |
19 | import java.io.PrintWriter;\r | |
20 | import java.io.File;\r | |
21 | \r | |
22 | import org.apache.tools.ant.BuildException;\r | |
23 | import org.apache.tools.ant.Project;\r | |
24 | import org.apache.tools.ant.Task;\r | |
25 | \r | |
0fdb42ac | 26 | import 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 | |
34 | public 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 |