]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/GenCapsuleHdrTask.java
Changed spelling to manifest
[mirror_edk2.git] / Tools / Source / FrameworkTasks / org / tianocore / framework / tasks / GenCapsuleHdrTask.java
... / ...
CommitLineData
1/** @file\r
2 GenCapsuleHdrTask class.\r
3\r
4 GenCapsuleHdrTask is used to call GenCapsuleHdr.exe to generate capsule.\r
5\r
6\r
7 Copyright (c) 2006, Intel Corporation\r
8 All rights reserved. This program and the accompanying materials\r
9 are licensed and made available under the terms and conditions of the BSD License\r
10 which accompanies this distribution. The full text of the license may be found at\r
11 http://opensource.org/licenses/bsd-license.php\r
12\r
13 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
14 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
15\r
16 **/\r
17package org.tianocore.framework.tasks;\r
18\r
19import java.io.File;\r
20\r
21import org.apache.tools.ant.Task;\r
22import org.apache.tools.ant.Project;\r
23import org.apache.tools.ant.BuildException;\r
24import org.apache.tools.ant.taskdefs.Execute;\r
25import org.apache.tools.ant.taskdefs.LogStreamHandler;\r
26import org.apache.tools.ant.types.Commandline;\r
27\r
28import org.tianocore.common.logger.EdkLog;\r
29\r
30/**\r
31 GenCapsuleHdrTask class.\r
32\r
33 GenCapsuleHdrTask is used to call GenCapsuleHdr.exe to generate capsule.\r
34**/\r
35public class GenCapsuleHdrTask extends Task implements EfiDefine {\r
36 //\r
37 // tool name\r
38 //\r
39 private String toolName = "GenCapsuleHdr";\r
40\r
41 //\r
42 // script file\r
43 //\r
44 private FileArg scriptFile = new FileArg();\r
45\r
46 //\r
47 // output file\r
48 //\r
49 private FileArg outputFile = new FileArg();\r
50\r
51 //\r
52 // output directory, this variable is added by jave wrap\r
53 //\r
54 private String outputDir = ".";\r
55\r
56 //\r
57 // Verbose flag\r
58 //\r
59 private ToolArg verbose = new ToolArg();\r
60\r
61 //\r
62 // Dump flag\r
63 //\r
64 private ToolArg dump = new ToolArg();\r
65\r
66 //\r
67 // Split size\r
68 //\r
69 private ToolArg size = new ToolArg();\r
70\r
71 //\r
72 // capsule into one image flag\r
73 //\r
74 private ToolArg joinFlag = new ToolArg();\r
75\r
76 //\r
77 // capsule file\r
78 //\r
79 private FileArg capsuleFile = new FileArg();\r
80\r
81\r
82 /**\r
83 execute\r
84 \r
85 GenCapsuleHdrTask execute function is to assemble tool command line & execute\r
86 tool command line\r
87 \r
88 @throws BuidException\r
89 **/\r
90 public void execute() throws BuildException {\r
91\r
92 Project project = this.getOwningTarget().getProject();\r
93 //\r
94 // absolute path of efi tools\r
95 //\r
96 String path = project.getProperty("env.FRAMEWORK_TOOLS_PATH");\r
97 String command;\r
98 String argument;\r
99 if (path == null) {\r
100 command = toolName;\r
101 } else {\r
102 command = path + File.separator + toolName;\r
103 }\r
104 //\r
105 // argument of tools\r
106 //\r
107 argument = "" + this.verbose + this.dump + this.outputFile\r
108 + this.scriptFile + this.size + this.joinFlag + this.capsuleFile;\r
109\r
110 //\r
111 // return value of fwimage execution\r
112 //\r
113 int revl = -1;\r
114\r
115 try {\r
116 Commandline cmdline = new Commandline();\r
117 cmdline.setExecutable(command);\r
118 cmdline.createArgument().setLine(argument);\r
119\r
120 LogStreamHandler streamHandler = new LogStreamHandler(this,\r
121 Project.MSG_INFO, Project.MSG_WARN);\r
122 Execute runner = new Execute(streamHandler, null);\r
123\r
124 runner.setAntRun(project);\r
125 runner.setCommandline(cmdline.getCommandline());\r
126 runner.setWorkingDirectory(new File(outputDir));\r
127\r
128 //\r
129 // Set debug log information.\r
130 //\r
131 EdkLog.log(this, EdkLog.EDK_VERBOSE, Commandline.toString(cmdline.getCommandline()));\r
132 EdkLog.log(this, EdkLog.EDK_INFO, scriptFile.toFileList() + " => " +\r
133 outputFile.toFileList() + capsuleFile.toFileList());\r
134\r
135 revl = runner.execute();\r
136 if (EFI_SUCCESS == revl) {\r
137 //\r
138 // command execution success\r
139 //\r
140 EdkLog.log(this, EdkLog.EDK_VERBOSE, toolName + " succeeded!");\r
141 } else {\r
142 //\r
143 // command execution fail\r
144 //\r
145 EdkLog.log(this, EdkLog.EDK_ERROR, "ERROR = " + Integer.toHexString(revl));\r
146 throw new BuildException(toolName + " failed!");\r
147 }\r
148 } catch (Exception e) {\r
149 throw new BuildException(e.getMessage());\r
150 }\r
151 }\r
152\r
153 /**\r
154 getInputFile\r
155 \r
156 This function is to get class member "scriptFile".\r
157 \r
158 @return string of input file name.\r
159 **/\r
160 public String getScriptFile() {\r
161 return this.scriptFile.getValue();\r
162 }\r
163\r
164 /**\r
165 setComponentType\r
166 \r
167 This function is to set class member "inputFile".\r
168 \r
169 @param inputFile\r
170 string of input file name.\r
171 **/\r
172 public void setScriptFile(String scriptFile) {\r
173 this.scriptFile.setArg(" -script ", scriptFile);\r
174 }\r
175\r
176 /**\r
177 getOutputFile\r
178 \r
179 This function is to get class member "outputFile"\r
180 \r
181 @return outputFile string of output file name.\r
182 **/\r
183 public String getOutputFile() {\r
184 return outputFile.getValue();\r
185 }\r
186\r
187 /**\r
188 setOutputFile\r
189 \r
190 This function is to set class member "outputFile"\r
191 \r
192 @param outputFile\r
193 string of output file name.\r
194 **/\r
195 public void setOutputFile(String outputFile) {\r
196 this.outputFile.setArg(" -o ", outputFile);\r
197 }\r
198\r
199 /**\r
200 getOutputDir\r
201 \r
202 This function is to get class member "outputDir"\r
203 \r
204 @return outputDir string of output directory.\r
205 **/\r
206 public String getOutputDir() {\r
207 return outputDir;\r
208 }\r
209\r
210 /**\r
211 setOutputDir\r
212 \r
213 This function is to set class member "outputDir"\r
214 \r
215 @param outputDir\r
216 string of output directory.\r
217 **/\r
218 public void setOutputDir(String outputDir) {\r
219 this.outputDir = outputDir;\r
220 }\r
221\r
222 /**\r
223 getVerbose\r
224 \r
225 This function is to get class member "verbose"\r
226 \r
227 @return verbose the flag of verbose.\r
228 **/\r
229 public String getVerbose() {\r
230 return this.verbose.getValue();\r
231 }\r
232\r
233 /**\r
234 setVerbose\r
235 \r
236 This function is to set class member "verbose"\r
237 \r
238 @param verbose\r
239 True or False.\r
240 **/\r
241 public void setVerbose(boolean verbose) {\r
242 if (verbose) {\r
243 this.verbose.setArg(" -", "v");\r
244 }\r
245 }\r
246\r
247 /**\r
248 getDump\r
249 \r
250 This function is to get class member "dump"\r
251 \r
252 @return verbose the flag of dump.\r
253 **/\r
254 public String getDump() {\r
255 return dump.getValue();\r
256 }\r
257\r
258 /**\r
259 setDump\r
260 \r
261 This function is to set class member "dump".\r
262 \r
263 @param dump\r
264 True or False.\r
265 **/\r
266 public void setDump(boolean dump) {\r
267 if (dump) {\r
268 this.dump.setArg(" -", "dump");\r
269 }\r
270 }\r
271\r
272 /**\r
273 getSize\r
274 \r
275 This function is to set class member "size".\r
276 \r
277 @return size string of size value\r
278 **/\r
279 public String getSize() {\r
280 return size.getValue();\r
281 }\r
282\r
283 /**\r
284 setSize\r
285 \r
286 This function is to set class member "size".\r
287 \r
288 @param size string of size value.\r
289 **/\r
290 public void setSize(String size) {\r
291 this.size.setArg(" -split ", size);\r
292 }\r
293\r
294 /**\r
295 getCapsuleFile\r
296 \r
297 This function is to get class member "capsuleFile"\r
298 \r
299 @return capsuleFile capsule file name\r
300 **/\r
301 public String getCapsuleFile() {\r
302 return capsuleFile.getValue();\r
303 }\r
304\r
305 /**\r
306 setCapsuleFile\r
307 \r
308 This function is to set class member "capsuleFile"\r
309 \r
310 @param capsuleFile capsule file name\r
311 **/\r
312 public void setCapsuleFile(String capsuleFile) {\r
313 this.capsuleFile.setArg(" ", capsuleFile);\r
314 }\r
315\r
316 /**\r
317 isJoinFlag\r
318 \r
319 This function is to get class member "joinFlag"\r
320 \r
321 @return joinFlag flag of if need to join split capsule images into\r
322 a single image.\r
323 **/\r
324 public String getJoinFlag() {\r
325 return joinFlag.getValue();\r
326 }\r
327\r
328 /**\r
329 setJoinFlag\r
330 \r
331 This function is to set class member "joinFlag"\r
332 \r
333 @param joinFlag flag of if need to join split capsule images into\r
334 a single image.\r
335 **/\r
336 public void setJoinFlag(boolean joinFlag) {\r
337 if (joinFlag){\r
338 this.joinFlag.setArg(" -", "j");\r
339 }\r
340 }\r
341}\r