if self.DxsFile or self.IsLibrary or TAB_DEPENDENCY_EXPRESSION_FILE in self.FileTypes:\r
return {}\r
\r
- RetVal = {self.ModuleType:[]}\r
-\r
- for ModuleType in RetVal:\r
- DepexList = RetVal[ModuleType]\r
- #\r
- # Append depex from dependent libraries, if not "BEFORE", "AFTER" expresion\r
- #\r
- for M in [self.Module] + self.DependentLibraryList:\r
- Inherited = False\r
- for D in M.Depex[self.Arch, ModuleType]:\r
- if DepexList != []:\r
- DepexList.append('AND')\r
- DepexList.append('(')\r
- #replace D with value if D is FixedAtBuild PCD\r
- NewList = []\r
- for item in D:\r
- if '.' not in item:\r
- NewList.append(item)\r
+ DepexList = []\r
+ #\r
+ # Append depex from dependent libraries, if not "BEFORE", "AFTER" expresion\r
+ #\r
+ for M in [self.Module] + self.DependentLibraryList:\r
+ Inherited = False\r
+ for D in M.Depex[self.Arch, self.ModuleType]:\r
+ if DepexList != []:\r
+ DepexList.append('AND')\r
+ DepexList.append('(')\r
+ #replace D with value if D is FixedAtBuild PCD\r
+ NewList = []\r
+ for item in D:\r
+ if '.' not in item:\r
+ NewList.append(item)\r
+ else:\r
+ if item not in self._FixedPcdVoidTypeDict:\r
+ EdkLogger.error("build", FORMAT_INVALID, "{} used in [Depex] section should be used as FixedAtBuild type and VOID* datum type in the module.".format(item))\r
else:\r
- if item not in self._FixedPcdVoidTypeDict:\r
- EdkLogger.error("build", FORMAT_INVALID, "{} used in [Depex] section should be used as FixedAtBuild type and VOID* datum type in the module.".format(item))\r
- else:\r
- Value = self._FixedPcdVoidTypeDict[item]\r
- if len(Value.split(',')) != 16:\r
- EdkLogger.error("build", FORMAT_INVALID,\r
- "{} used in [Depex] section should be used as FixedAtBuild type and VOID* datum type and 16 bytes in the module.".format(item))\r
- NewList.append(Value)\r
- DepexList.extend(NewList)\r
- if DepexList[-1] == 'END': # no need of a END at this time\r
- DepexList.pop()\r
- DepexList.append(')')\r
- Inherited = True\r
- if Inherited:\r
- EdkLogger.verbose("DEPEX[%s] (+%s) = %s" % (self.Name, M.BaseName, DepexList))\r
- if 'BEFORE' in DepexList or 'AFTER' in DepexList:\r
- break\r
- if len(DepexList) > 0:\r
- EdkLogger.verbose('')\r
- return RetVal\r
+ Value = self._FixedPcdVoidTypeDict[item]\r
+ if len(Value.split(',')) != 16:\r
+ EdkLogger.error("build", FORMAT_INVALID,\r
+ "{} used in [Depex] section should be used as FixedAtBuild type and VOID* datum type and 16 bytes in the module.".format(item))\r
+ NewList.append(Value)\r
+ DepexList.extend(NewList)\r
+ if DepexList[-1] == 'END': # no need of a END at this time\r
+ DepexList.pop()\r
+ DepexList.append(')')\r
+ Inherited = True\r
+ if Inherited:\r
+ EdkLogger.verbose("DEPEX[%s] (+%s) = %s" % (self.Name, M.BaseName, DepexList))\r
+ if 'BEFORE' in DepexList or 'AFTER' in DepexList:\r
+ break\r
+ if len(DepexList) > 0:\r
+ EdkLogger.verbose('')\r
+ return {self.ModuleType:DepexList}\r
\r
## Merge dependency expression\r
#\r
if self.DxsFile or self.IsLibrary or TAB_DEPENDENCY_EXPRESSION_FILE in self.FileTypes:\r
return {}\r
\r
- RetVal = {self.ModuleType:''}\r
+ DepexExpressionString = ''\r
+ #\r
+ # Append depex from dependent libraries, if not "BEFORE", "AFTER" expresion\r
+ #\r
+ for M in [self.Module] + self.DependentLibraryList:\r
+ Inherited = False\r
+ for D in M.DepexExpression[self.Arch, self.ModuleType]:\r
+ if DepexExpressionString != '':\r
+ DepexExpressionString += ' AND '\r
+ DepexExpressionString += '('\r
+ DepexExpressionString += D\r
+ DepexExpressionString = DepexExpressionString.rstrip('END').strip()\r
+ DepexExpressionString += ')'\r
+ Inherited = True\r
+ if Inherited:\r
+ EdkLogger.verbose("DEPEX[%s] (+%s) = %s" % (self.Name, M.BaseName, DepexExpressionString))\r
+ if 'BEFORE' in DepexExpressionString or 'AFTER' in DepexExpressionString:\r
+ break\r
+ if len(DepexExpressionString) > 0:\r
+ EdkLogger.verbose('')\r
\r
- for ModuleType in RetVal:\r
- DepexExpressionString = RetVal[ModuleType]\r
- #\r
- # Append depex from dependent libraries, if not "BEFORE", "AFTER" expresion\r
- #\r
- for M in [self.Module] + self.DependentLibraryList:\r
- Inherited = False\r
- for D in M.DepexExpression[self.Arch, ModuleType]:\r
- if DepexExpressionString != '':\r
- DepexExpressionString += ' AND '\r
- DepexExpressionString += '('\r
- DepexExpressionString += D\r
- DepexExpressionString = DepexExpressionString.rstrip('END').strip()\r
- DepexExpressionString += ')'\r
- Inherited = True\r
- if Inherited:\r
- EdkLogger.verbose("DEPEX[%s] (+%s) = %s" % (self.Name, M.BaseName, DepexExpressionString))\r
- if 'BEFORE' in DepexExpressionString or 'AFTER' in DepexExpressionString:\r
- break\r
- if len(DepexExpressionString) > 0:\r
- EdkLogger.verbose('')\r
- RetVal[ModuleType] = DepexExpressionString\r
- return RetVal\r
+ return {self.ModuleType:DepexExpressionString}\r
\r
# Get the tiano core user extension, it is contain dependent library.\r
# @retval: a list contain tiano core userextension.\r