# Using TokenSpaceGuidValue and Token to obtain PcdName from DEC file\r
#\r
def ObtainPcdName(Packages, TokenSpaceGuidValue, Token):\r
+ TokenSpaceGuidName = ''\r
+ PcdCName = ''\r
+ TokenSpaceGuidNameFound = False\r
+\r
for PackageDependency in Packages:\r
#\r
# Generate generic comment\r
Guid = PackageDependency.GetGuid()\r
Version = PackageDependency.GetVersion()\r
\r
+ Path = None\r
#\r
# find package path/name\r
# \r
Path = PkgInfo[3]\r
break\r
\r
- DecFile = None\r
- if Path not in GlobalData.gPackageDict:\r
- DecFile = Dec(Path)\r
- GlobalData.gPackageDict[Path] = DecFile\r
- else:\r
- DecFile = GlobalData.gPackageDict[Path]\r
-\r
- DecGuidsDict = DecFile.GetGuidSectionObject().ValueDict\r
- DecPcdsDict = DecFile.GetPcdSectionObject().ValueDict\r
-\r
- TokenSpaceGuidName = ''\r
- PcdCName = ''\r
- TokenSpaceGuidNameFound = False\r
-\r
- #\r
- # Get TokenSpaceGuidCName from Guids section \r
- #\r
- for GuidKey in DecGuidsDict:\r
- GuidList = DecGuidsDict[GuidKey]\r
- for GuidItem in GuidList:\r
- if TokenSpaceGuidValue.upper() == GuidItem.GuidString.upper():\r
- TokenSpaceGuidName = GuidItem.GuidCName\r
- TokenSpaceGuidNameFound = True\r
+ # The dependency package in workspace\r
+ if Path:\r
+ DecFile = None\r
+ if Path not in GlobalData.gPackageDict:\r
+ DecFile = Dec(Path)\r
+ GlobalData.gPackageDict[Path] = DecFile\r
+ else:\r
+ DecFile = GlobalData.gPackageDict[Path]\r
+\r
+ DecGuidsDict = DecFile.GetGuidSectionObject().ValueDict\r
+ DecPcdsDict = DecFile.GetPcdSectionObject().ValueDict\r
+\r
+ TokenSpaceGuidName = ''\r
+ PcdCName = ''\r
+ TokenSpaceGuidNameFound = False\r
+\r
+ #\r
+ # Get TokenSpaceGuidCName from Guids section\r
+ #\r
+ for GuidKey in DecGuidsDict:\r
+ GuidList = DecGuidsDict[GuidKey]\r
+ for GuidItem in GuidList:\r
+ if TokenSpaceGuidValue.upper() == GuidItem.GuidString.upper():\r
+ TokenSpaceGuidName = GuidItem.GuidCName\r
+ TokenSpaceGuidNameFound = True\r
+ break\r
+ if TokenSpaceGuidNameFound:\r
break\r
- if TokenSpaceGuidNameFound:\r
- break\r
- #\r
- # Retrieve PcdCName from Pcds Section\r
- #\r
- for PcdKey in DecPcdsDict:\r
- PcdList = DecPcdsDict[PcdKey]\r
- for PcdItem in PcdList:\r
- if TokenSpaceGuidName == PcdItem.TokenSpaceGuidCName and Token == PcdItem.TokenValue:\r
- PcdCName = PcdItem.TokenCName\r
- return TokenSpaceGuidName, PcdCName\r
+ #\r
+ # Retrieve PcdCName from Pcds Section\r
+ #\r
+ for PcdKey in DecPcdsDict:\r
+ PcdList = DecPcdsDict[PcdKey]\r
+ for PcdItem in PcdList:\r
+ if TokenSpaceGuidName == PcdItem.TokenSpaceGuidCName and Token == PcdItem.TokenValue:\r
+ PcdCName = PcdItem.TokenCName\r
+ return TokenSpaceGuidName, PcdCName\r
+\r
+ # The dependency package in ToBeInstalledDist\r
+ else:\r
+ for Dist in GlobalData.gTO_BE_INSTALLED_DIST_LIST:\r
+ for Package in Dist.PackageSurfaceArea.values():\r
+ if Guid == Package.Guid:\r
+ for GuidItem in Package.GuidList:\r
+ if TokenSpaceGuidValue.upper() == GuidItem.Guid.upper():\r
+ TokenSpaceGuidName = GuidItem.CName\r
+ TokenSpaceGuidNameFound = True\r
+ break\r
+ for PcdItem in Package.PcdList:\r
+ if TokenSpaceGuidName == PcdItem.TokenSpaceGuidCName and Token == PcdItem.Token:\r
+ PcdCName = PcdItem.CName\r
+ return TokenSpaceGuidName, PcdCName\r
\r
return TokenSpaceGuidName, PcdCName\r
\r