mirror of https://github.com/acidanthera/audk.git
Add ModifyInftask in FrameworkTask.
Fixe bug(EkdT72). git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@768 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
2a8198da06
commit
47f2f01190
|
@ -22,3 +22,4 @@ efirom=org.tianocore.framework.tasks.EfiRomTask
|
|||
secapresetvectorfixup=org.tianocore.framework.tasks.SecApResetVectorFixupTask
|
||||
gencapsulehdr=org.tianocore.framework.tasks.GenCapsuleHdrTask
|
||||
flashmap=org.tianocore.framework.tasks.FlashMapTask
|
||||
modifyinf=org.tianocore.framework.tasks.ModifyInfTask
|
||||
|
|
|
@ -301,7 +301,7 @@ public class EfiRomTask extends Task implements EfiDefine {
|
|||
/**
|
||||
* setclassCode
|
||||
*
|
||||
* This function is to set class member "fdImage"
|
||||
* This function is to set class member "classCode"
|
||||
*
|
||||
* @param fdImage name of class code file.
|
||||
*/
|
||||
|
@ -338,7 +338,7 @@ public class EfiRomTask extends Task implements EfiDefine {
|
|||
/**
|
||||
* getFlashDeviceImage
|
||||
*
|
||||
* This function is to get class member "flashDeviceImage"
|
||||
* This function is to get class member "dump"
|
||||
*
|
||||
* @return flashDeviceImage name of flash device image
|
||||
*/
|
||||
|
@ -349,7 +349,7 @@ public class EfiRomTask extends Task implements EfiDefine {
|
|||
/**
|
||||
* setFlashDeviceImage
|
||||
*
|
||||
* This function is to set class member "flashDeviceImage"
|
||||
* This function is to set class member "dump"
|
||||
*
|
||||
* @param flashDeviceImage name of flash device image
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,238 @@
|
|||
/** @file
|
||||
ModifyInfTask class.
|
||||
|
||||
ModifyInfTask is used to call Modify.exe to generate inf file.
|
||||
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
package org.tianocore.framework.tasks;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.apache.tools.ant.Task;
|
||||
import org.apache.tools.ant.Project;
|
||||
import org.apache.tools.ant.BuildException;
|
||||
import org.apache.tools.ant.taskdefs.Execute;
|
||||
import org.apache.tools.ant.taskdefs.LogStreamHandler;
|
||||
import org.apache.tools.ant.types.Commandline;
|
||||
import org.tianocore.logger.EdkLog;
|
||||
|
||||
/**
|
||||
ModifyInfTask class.
|
||||
|
||||
ModifyInfTask is used to call Modify.exe to generate inf file.
|
||||
**/
|
||||
public class ModifyInfTask extends Task implements EfiDefine {
|
||||
///
|
||||
/// tool name
|
||||
///
|
||||
private String toolName = "ModifyInf";
|
||||
|
||||
///
|
||||
/// input FV inf file
|
||||
///
|
||||
private String inputFVInfFileName = "";
|
||||
|
||||
///
|
||||
/// output FV inf file
|
||||
///
|
||||
private String outputFVInfFileName = "";
|
||||
|
||||
///
|
||||
/// pattern string
|
||||
///
|
||||
private String patternStr = "";
|
||||
|
||||
///
|
||||
/// Output dir
|
||||
///
|
||||
private String outputDir = "";
|
||||
|
||||
/**
|
||||
* execute
|
||||
*
|
||||
* ModifyInfTask execute function is to assemble tool command line & execute
|
||||
* tool command line
|
||||
*
|
||||
* @throws BuidException
|
||||
*/
|
||||
public void execute() throws BuildException {
|
||||
|
||||
Project project = this.getOwningTarget().getProject();
|
||||
//
|
||||
// set Logger
|
||||
//
|
||||
FrameworkLogger logger = new FrameworkLogger(project, "modifytask");
|
||||
EdkLog.setLogLevel(project.getProperty("env.LOGLEVEL"));
|
||||
EdkLog.setLogger(logger);
|
||||
//
|
||||
// absolute path of efi tools
|
||||
//
|
||||
String path = project.getProperty("env.FRAMEWORK_TOOLS_PATH");
|
||||
String command;
|
||||
String argument;
|
||||
if (path == null) {
|
||||
command = toolName;
|
||||
} else {
|
||||
command = path + File.separatorChar + toolName;
|
||||
}
|
||||
//
|
||||
// argument of tools
|
||||
//
|
||||
File file = new File(outputFVInfFileName);
|
||||
if (!file.isAbsolute() && (!this.outputDir.equalsIgnoreCase(""))) {
|
||||
argument = this.inputFVInfFileName +
|
||||
this.outputDir +
|
||||
File.separatorChar +
|
||||
this.outputFVInfFileName +
|
||||
this.patternStr;
|
||||
} else {
|
||||
argument = this.inputFVInfFileName +
|
||||
this.outputFVInfFileName +
|
||||
this.patternStr;
|
||||
}
|
||||
//
|
||||
// return value of fwimage execution
|
||||
//
|
||||
int revl = -1;
|
||||
|
||||
try {
|
||||
Commandline cmdline = new Commandline();
|
||||
cmdline.setExecutable(command);
|
||||
cmdline.createArgument().setLine(argument);
|
||||
|
||||
LogStreamHandler streamHandler = new LogStreamHandler(this,
|
||||
Project.MSG_INFO, Project.MSG_WARN);
|
||||
Execute runner = new Execute(streamHandler, null);
|
||||
|
||||
runner.setAntRun(project);
|
||||
runner.setCommandline(cmdline.getCommandline());
|
||||
//
|
||||
// Set debug log information.
|
||||
//
|
||||
EdkLog.log(EdkLog.EDK_INFO, Commandline.toString(cmdline
|
||||
.getCommandline()));
|
||||
|
||||
revl = runner.execute();
|
||||
|
||||
if (EFI_SUCCESS == revl) {
|
||||
//
|
||||
// command execution success
|
||||
//
|
||||
EdkLog.log(EdkLog.EDK_INFO, "ModifyInfTask succeeded!");
|
||||
} else {
|
||||
//
|
||||
// command execution fail
|
||||
//
|
||||
EdkLog.log(EdkLog.EDK_ERROR, "ModifyInfTask failed. (error="
|
||||
+ Integer.toHexString(revl) + ")");
|
||||
throw new BuildException("ModifyInfTask failed. (error="
|
||||
+ Integer.toHexString(revl) + ")");
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new BuildException(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* getinputFVInfFileName
|
||||
*
|
||||
* This function is to get class member "inputFVInfFileName".
|
||||
*
|
||||
* @return string of input inf file name.
|
||||
*/
|
||||
public String getinputFVInfFileName() {
|
||||
return this.inputFVInfFileName;
|
||||
}
|
||||
|
||||
/**
|
||||
* setinputFVInfFileName
|
||||
*
|
||||
* This function is to set class member "inputFVInfFileName".
|
||||
*
|
||||
* @param inputFile
|
||||
* string of input inf file name.
|
||||
*/
|
||||
public void setinputFVInfFileName(String inputFVInfFileName) {
|
||||
this.inputFVInfFileName = inputFVInfFileName + " ";
|
||||
}
|
||||
|
||||
/**
|
||||
* getoutputFVInfFileName
|
||||
*
|
||||
* This function is to get class member "outputFVInfFileName"
|
||||
*
|
||||
* @return outputFVInfFileName string of output inf file name.
|
||||
*/
|
||||
public String getoutputFVInfFileName() {
|
||||
return this.outputFVInfFileName;
|
||||
}
|
||||
|
||||
/**
|
||||
* setoutputFVInfFileName
|
||||
*
|
||||
* This function is to set class member "outputFVInfFileName"
|
||||
*
|
||||
* @param outputFVInfFileName
|
||||
* string of output inf file name.
|
||||
*/
|
||||
public void setoutputFVInfFileName(String outputFVInfFileName) {
|
||||
this.outputFVInfFileName = outputFVInfFileName + " ";
|
||||
}
|
||||
|
||||
/**
|
||||
* getpatternStr
|
||||
*
|
||||
* This function is to get class member "patternStr"
|
||||
*
|
||||
* @return patternStr string of pattern.
|
||||
*/
|
||||
public String getpatternStr() {
|
||||
return this.patternStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* setpatternStr
|
||||
*
|
||||
* This function is to set class member "patternStr"
|
||||
*
|
||||
* @param patternStr
|
||||
* string of patternStr.
|
||||
*/
|
||||
public void setpatternStr(String patternStr) {
|
||||
this.patternStr = "[" + patternStr + "]";
|
||||
}
|
||||
|
||||
/**
|
||||
* getoutputDir
|
||||
*
|
||||
* This function is to get class member "outputDir"
|
||||
*
|
||||
* @return outputDir string of output directory.
|
||||
*/
|
||||
public String getoutputDir() {
|
||||
return this.outputDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* setoutputDir
|
||||
*
|
||||
* This function is to set class member "outputDir"
|
||||
*
|
||||
* @param patternStr
|
||||
* string of output directory.
|
||||
*/
|
||||
public void setoutputDir(String outputDir) {
|
||||
this.outputDir = outputDir;
|
||||
}
|
||||
}
|
|
@ -812,7 +812,7 @@ public class AutoGen {
|
|||
int entryPointCount = 0;
|
||||
fileBuffer
|
||||
.append("GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPeimRevision = 0;\r\n");
|
||||
if (entryPointList == null) {
|
||||
if (entryPointList == null || entryPointList.length == 0) {
|
||||
fileBuffer.append("EFI_STATUS\r\n");
|
||||
fileBuffer.append("EFIAPI\r\n");
|
||||
fileBuffer.append("ProcessModuleEntryPointList (\r\n");
|
||||
|
@ -899,8 +899,8 @@ public class AutoGen {
|
|||
fileBuffer.append("EFIAPI\r\n");
|
||||
fileBuffer.append(entryPointList[i]);
|
||||
fileBuffer.append(" (\r\n");
|
||||
fileBuffer.append(" EFI_HANDLE ImageHandle,\r\n");
|
||||
fileBuffer.append(" EFI_SYSTEM_TABLE *SystemTable\r\n");
|
||||
fileBuffer.append(" IN EFI_HANDLE ImageHandle,\r\n");
|
||||
fileBuffer.append(" IN EFI_SYSTEM_TABLE *SystemTable\r\n");
|
||||
fileBuffer.append(" );\r\n");
|
||||
entryPointCount++;
|
||||
} else {
|
||||
|
@ -975,7 +975,7 @@ public class AutoGen {
|
|||
fileBuffer.append(entryPointList[i]);
|
||||
fileBuffer.append(" (\r\n");
|
||||
fileBuffer
|
||||
.append(" EFI_HANDLE ImageHandle\r\n");
|
||||
.append(" IN EFI_HANDLE ImageHandle\r\n");
|
||||
fileBuffer.append(" );\r\n");
|
||||
} else {
|
||||
break;
|
||||
|
@ -1051,8 +1051,8 @@ public class AutoGen {
|
|||
fileBuffer.append("EFIAPI\r\n");
|
||||
fileBuffer.append(entryPointList[i]);
|
||||
fileBuffer.append(" (\r\n");
|
||||
fileBuffer.append(" EFI_HANDLE ImageHandle,\r\n");
|
||||
fileBuffer.append(" EFI_SYSTEM_TABLE *SystemTable\r\n");
|
||||
fileBuffer.append(" IN EFI_HANDLE ImageHandle,\r\n");
|
||||
fileBuffer.append(" IN EFI_SYSTEM_TABLE *SystemTable\r\n");
|
||||
fileBuffer.append(" );\r\n");
|
||||
entryPointCount++;
|
||||
}
|
||||
|
@ -1141,7 +1141,7 @@ public class AutoGen {
|
|||
fileBuffer.append(entryPointList[i]);
|
||||
fileBuffer.append(" (\r\n");
|
||||
fileBuffer
|
||||
.append(" EFI_HANDLE ImageHandle\r\n");
|
||||
.append(" IN EFI_HANDLE ImageHandle\r\n");
|
||||
fileBuffer.append(" );\r\n");
|
||||
entryPointCount++;
|
||||
} else {
|
||||
|
@ -1163,7 +1163,7 @@ public class AutoGen {
|
|||
fileBuffer.append(entryPointList[i]);
|
||||
fileBuffer.append(" (\r\n");
|
||||
fileBuffer
|
||||
.append(" EFI_HANDLE ImageHandle\r\n");
|
||||
.append(" IN EFI_HANDLE ImageHandle\r\n");
|
||||
fileBuffer.append(" );\r\n");
|
||||
} else {
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue