## @file\r
# Common routines used by workspace\r
#\r
-# Copyright (c) 2012 - 2016, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2012 - 2017, Intel Corporation. All rights reserved.<BR>\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
from Common.DataType import SUP_MODULE_USER_DEFINED\r
from BuildClassObject import LibraryClassObject\r
import Common.GlobalData as GlobalData\r
+from Workspace.BuildClassObject import StructurePcd\r
\r
## Get all packages from platform for specified arch, target and toolchain\r
#\r
# @param Target: Current target\r
# @param Toolchain: Current toolchain\r
# @retval: A dictionary contains instances of PcdClassObject with key (PcdCName, TokenSpaceGuid)\r
+# @retval: A dictionary contains real GUIDs of TokenSpaceGuid\r
#\r
-def GetDeclaredPcd(Platform, BuildDatabase, Arch, Target, Toolchain):\r
+def GetDeclaredPcd(Platform, BuildDatabase, Arch, Target, Toolchain,additionalPkgs):\r
PkgList = GetPackageList(Platform, BuildDatabase, Arch, Target, Toolchain)\r
+ PkgList = set(PkgList)\r
+ PkgList |= additionalPkgs\r
DecPcds = {}\r
+ GuidDict = {}\r
for Pkg in PkgList:\r
+ Guids = Pkg.Guids\r
+ GuidDict.update(Guids)\r
for Pcd in Pkg.Pcds:\r
PcdCName = Pcd[0]\r
PcdTokenName = Pcd[1]\r
break\r
if (PcdCName, PcdTokenName) not in DecPcds.keys():\r
DecPcds[PcdCName, PcdTokenName] = Pkg.Pcds[Pcd]\r
- return DecPcds\r
+ return DecPcds, GuidDict\r
\r
## Get all dependent libraries for a module\r
#\r