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:
@ -22,3 +22,4 @@ efirom=org.tianocore.framework.tasks.EfiRomTask
|
|||||||
secapresetvectorfixup=org.tianocore.framework.tasks.SecApResetVectorFixupTask
|
secapresetvectorfixup=org.tianocore.framework.tasks.SecApResetVectorFixupTask
|
||||||
gencapsulehdr=org.tianocore.framework.tasks.GenCapsuleHdrTask
|
gencapsulehdr=org.tianocore.framework.tasks.GenCapsuleHdrTask
|
||||||
flashmap=org.tianocore.framework.tasks.FlashMapTask
|
flashmap=org.tianocore.framework.tasks.FlashMapTask
|
||||||
|
modifyinf=org.tianocore.framework.tasks.ModifyInfTask
|
||||||
|
@ -301,7 +301,7 @@ public class EfiRomTask extends Task implements EfiDefine {
|
|||||||
/**
|
/**
|
||||||
* setclassCode
|
* setclassCode
|
||||||
*
|
*
|
||||||
* This function is to set class member "fdImage"
|
* This function is to set class member "classCode"
|
||||||
*
|
*
|
||||||
* @param fdImage name of class code file.
|
* @param fdImage name of class code file.
|
||||||
*/
|
*/
|
||||||
@ -338,7 +338,7 @@ public class EfiRomTask extends Task implements EfiDefine {
|
|||||||
/**
|
/**
|
||||||
* getFlashDeviceImage
|
* getFlashDeviceImage
|
||||||
*
|
*
|
||||||
* This function is to get class member "flashDeviceImage"
|
* This function is to get class member "dump"
|
||||||
*
|
*
|
||||||
* @return flashDeviceImage name of flash device image
|
* @return flashDeviceImage name of flash device image
|
||||||
*/
|
*/
|
||||||
@ -349,7 +349,7 @@ public class EfiRomTask extends Task implements EfiDefine {
|
|||||||
/**
|
/**
|
||||||
* setFlashDeviceImage
|
* setFlashDeviceImage
|
||||||
*
|
*
|
||||||
* This function is to set class member "flashDeviceImage"
|
* This function is to set class member "dump"
|
||||||
*
|
*
|
||||||
* @param flashDeviceImage name of flash device image
|
* @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;
|
int entryPointCount = 0;
|
||||||
fileBuffer
|
fileBuffer
|
||||||
.append("GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPeimRevision = 0;\r\n");
|
.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("EFI_STATUS\r\n");
|
||||||
fileBuffer.append("EFIAPI\r\n");
|
fileBuffer.append("EFIAPI\r\n");
|
||||||
fileBuffer.append("ProcessModuleEntryPointList (\r\n");
|
fileBuffer.append("ProcessModuleEntryPointList (\r\n");
|
||||||
@ -899,8 +899,8 @@ public class AutoGen {
|
|||||||
fileBuffer.append("EFIAPI\r\n");
|
fileBuffer.append("EFIAPI\r\n");
|
||||||
fileBuffer.append(entryPointList[i]);
|
fileBuffer.append(entryPointList[i]);
|
||||||
fileBuffer.append(" (\r\n");
|
fileBuffer.append(" (\r\n");
|
||||||
fileBuffer.append(" EFI_HANDLE ImageHandle,\r\n");
|
fileBuffer.append(" IN EFI_HANDLE ImageHandle,\r\n");
|
||||||
fileBuffer.append(" EFI_SYSTEM_TABLE *SystemTable\r\n");
|
fileBuffer.append(" IN EFI_SYSTEM_TABLE *SystemTable\r\n");
|
||||||
fileBuffer.append(" );\r\n");
|
fileBuffer.append(" );\r\n");
|
||||||
entryPointCount++;
|
entryPointCount++;
|
||||||
} else {
|
} else {
|
||||||
@ -975,7 +975,7 @@ public class AutoGen {
|
|||||||
fileBuffer.append(entryPointList[i]);
|
fileBuffer.append(entryPointList[i]);
|
||||||
fileBuffer.append(" (\r\n");
|
fileBuffer.append(" (\r\n");
|
||||||
fileBuffer
|
fileBuffer
|
||||||
.append(" EFI_HANDLE ImageHandle\r\n");
|
.append(" IN EFI_HANDLE ImageHandle\r\n");
|
||||||
fileBuffer.append(" );\r\n");
|
fileBuffer.append(" );\r\n");
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
@ -1051,8 +1051,8 @@ public class AutoGen {
|
|||||||
fileBuffer.append("EFIAPI\r\n");
|
fileBuffer.append("EFIAPI\r\n");
|
||||||
fileBuffer.append(entryPointList[i]);
|
fileBuffer.append(entryPointList[i]);
|
||||||
fileBuffer.append(" (\r\n");
|
fileBuffer.append(" (\r\n");
|
||||||
fileBuffer.append(" EFI_HANDLE ImageHandle,\r\n");
|
fileBuffer.append(" IN EFI_HANDLE ImageHandle,\r\n");
|
||||||
fileBuffer.append(" EFI_SYSTEM_TABLE *SystemTable\r\n");
|
fileBuffer.append(" IN EFI_SYSTEM_TABLE *SystemTable\r\n");
|
||||||
fileBuffer.append(" );\r\n");
|
fileBuffer.append(" );\r\n");
|
||||||
entryPointCount++;
|
entryPointCount++;
|
||||||
}
|
}
|
||||||
@ -1141,7 +1141,7 @@ public class AutoGen {
|
|||||||
fileBuffer.append(entryPointList[i]);
|
fileBuffer.append(entryPointList[i]);
|
||||||
fileBuffer.append(" (\r\n");
|
fileBuffer.append(" (\r\n");
|
||||||
fileBuffer
|
fileBuffer
|
||||||
.append(" EFI_HANDLE ImageHandle\r\n");
|
.append(" IN EFI_HANDLE ImageHandle\r\n");
|
||||||
fileBuffer.append(" );\r\n");
|
fileBuffer.append(" );\r\n");
|
||||||
entryPointCount++;
|
entryPointCount++;
|
||||||
} else {
|
} else {
|
||||||
@ -1163,7 +1163,7 @@ public class AutoGen {
|
|||||||
fileBuffer.append(entryPointList[i]);
|
fileBuffer.append(entryPointList[i]);
|
||||||
fileBuffer.append(" (\r\n");
|
fileBuffer.append(" (\r\n");
|
||||||
fileBuffer
|
fileBuffer
|
||||||
.append(" EFI_HANDLE ImageHandle\r\n");
|
.append(" IN EFI_HANDLE ImageHandle\r\n");
|
||||||
fileBuffer.append(" );\r\n");
|
fileBuffer.append(" );\r\n");
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user