from Common.BuildToolError import *\r
from FvImageSection import FvImageSection\r
from Common.LongFilePathSupport import OpenLongFilePath as open\r
+from GenFds import FindExtendTool\r
\r
## generate GUIDed section\r
#\r
ExternalTool = None\r
ExternalOption = None\r
if self.NameGuid != None:\r
- ExternalTool, ExternalOption = self.__FindExtendTool__()\r
+ ExternalTool, ExternalOption = FindExtendTool(self.KeyStringList, self.CurrentArchList, self.NameGuid)\r
\r
#\r
# If not have GUID , call default\r
self.ProcessRequired = "TRUE"\r
return OutputFileList, self.Alignment\r
\r
- ## __FindExtendTool()\r
- #\r
- # Find location of tools to process section data\r
- #\r
- # @param self The object pointer\r
- #\r
- def __FindExtendTool__(self):\r
- # if user not specify filter, try to deduce it from global data.\r
- if self.KeyStringList == None or self.KeyStringList == []:\r
- Target = GenFdsGlobalVariable.TargetName\r
- ToolChain = GenFdsGlobalVariable.ToolChainTag\r
- ToolDb = ToolDefClassObject.ToolDefDict(GenFdsGlobalVariable.ConfDir).ToolsDefTxtDatabase\r
- if ToolChain not in ToolDb['TOOL_CHAIN_TAG']:\r
- EdkLogger.error("GenFds", GENFDS_ERROR, "Can not find external tool because tool tag %s is not defined in tools_def.txt!" % ToolChain)\r
- self.KeyStringList = [Target + '_' + ToolChain + '_' + self.CurrentArchList[0]]\r
- for Arch in self.CurrentArchList:\r
- if Target + '_' + ToolChain + '_' + Arch not in self.KeyStringList:\r
- self.KeyStringList.append(Target + '_' + ToolChain + '_' + Arch)\r
-\r
- if GenFdsGlobalVariable.GuidToolDefinition:\r
- if self.NameGuid in GenFdsGlobalVariable.GuidToolDefinition.keys():\r
- return GenFdsGlobalVariable.GuidToolDefinition[self.NameGuid]\r
-\r
- ToolDefinition = ToolDefClassObject.ToolDefDict(GenFdsGlobalVariable.ConfDir).ToolsDefTxtDictionary\r
- ToolPathTmp = None\r
- ToolOption = None\r
- for ToolDef in ToolDefinition.items():\r
- if self.NameGuid == ToolDef[1]:\r
- KeyList = ToolDef[0].split('_')\r
- Key = KeyList[0] + \\r
- '_' + \\r
- KeyList[1] + \\r
- '_' + \\r
- KeyList[2]\r
- if Key in self.KeyStringList and KeyList[4] == 'GUID':\r
-\r
- ToolPath = ToolDefinition.get(Key + \\r
- '_' + \\r
- KeyList[3] + \\r
- '_' + \\r
- 'PATH')\r
-\r
- ToolOption = ToolDefinition.get(Key + \\r
- '_' + \\r
- KeyList[3] + \\r
- '_' + \\r
- 'FLAGS')\r
- if ToolPathTmp == None:\r
- ToolPathTmp = ToolPath\r
- else:\r
- if ToolPathTmp != ToolPath:\r
- EdkLogger.error("GenFds", GENFDS_ERROR, "Don't know which tool to use, %s or %s ?" % (ToolPathTmp, ToolPath))\r
-\r
- GenFdsGlobalVariable.GuidToolDefinition[self.NameGuid] = (ToolPathTmp, ToolOption)\r
- return ToolPathTmp, ToolOption\r
-\r
\r
\r