#\r
# This file contained the miscellaneous routines for GenMetaFile usage.\r
#\r
-# Copyright (c) 2011 - 2017, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
#\r
-# This program and the accompanying materials are licensed and made available \r
-# under the terms and conditions of the BSD License which accompanies this \r
-# distribution. The full text of the license may be found at \r
+# This program and the accompanying materials are licensed and made available\r
+# under the terms and conditions of the BSD License which accompanies this\r
+# distribution. The full text of the license may be found at\r
# http://opensource.org/licenses/bsd-license.php\r
#\r
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
# @param SectionDict: string of source file path/name\r
# @param Arch: string of source file family field\r
# @param ExternList: string of source file FeatureFlag field\r
-# \r
+#\r
def AddExternToDefineSec(SectionDict, Arch, ExternList):\r
LeftOffset = 31\r
for ArchList, EntryPoint, UnloadImage, Constructor, Destructor, FFE, HelpStringList in ExternList:\r
# 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
+ #\r
for PkgInfo in GlobalData.gWSPKG_LIST:\r
if Guid == PkgInfo[1]:\r
if (not Version) or (Version == PkgInfo[2]):\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
## _TransferDict\r
-# transfer dict that using (Statement, SortedArch) as key, \r
+# transfer dict that using (Statement, SortedArch) as key,\r
# (GenericComment, UsageComment) as value into a dict that using SortedArch as\r
-# key and NewStatement as value \r
+# key and NewStatement as value\r
#\r
def TransferDict(OrigDict, Type=None):\r
NewDict = {}\r
for Statement, SortedArch in OrigDict:\r
if len(Statement) > LeftOffset:\r
LeftOffset = len(Statement)\r
- \r
+\r
for Statement, SortedArch in OrigDict:\r
Comment = OrigDict[Statement, SortedArch]\r
#\r