]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/DecBuildData.py
BaseTools: Support multiple .h file
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / DecBuildData.py
index d0e77fa440d8ace7182b61f331af11a244d5c59f..2fd3820dcc8676902eeee4ad4b67a1597a0e8f94 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # This file is used to create a database used by build tool\r
 #\r
-# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2008 - 2017, Intel Corporation. All rights reserved.<BR>\r
 # (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
 # This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
@@ -376,13 +376,15 @@ class DecBuildData(PackageBuildClassObject):
             struct_pcd = StructurePcd()\r
             for item,LineNo in s_pcd_set[pcdname]:\r
                 if "<HeaderFiles>" in item.TokenCName:\r
-                    struct_pcd.StructuredPcdIncludeFile = item.DefaultValue\r
+                    struct_pcd.StructuredPcdIncludeFile.append(item.DefaultValue)\r
                 elif "<Packages>" in item.TokenCName:\r
                     dep_pkgs.append(item.DefaultValue)\r
                 elif item.DatumType == item.TokenCName:\r
                     struct_pcd.copy(item)\r
                     struct_pcd.TokenValue = struct_pcd.TokenValue.strip("{").strip()\r
                     struct_pcd.TokenSpaceGuidCName, struct_pcd.TokenCName = pcdname.split(".")\r
+                    struct_pcd.PcdDefineLineNo = LineNo\r
+                    struct_pcd.PkgPath = self.MetaFile.File\r
                 else:\r
                     struct_pcd.AddDefaultValue(item.TokenCName, item.DefaultValue,self.MetaFile.File,LineNo)\r
 \r
@@ -401,14 +403,15 @@ class DecBuildData(PackageBuildClassObject):
         #\r
         PcdDict = tdict(True, 3)\r
         # for summarizing PCD\r
-        PcdSet = set()\r
+        PcdSet = []\r
         # find out all PCDs of the 'type'\r
 \r
         StrPcdSet = []\r
         RecordList = self._RawData[Type, self._Arch]\r
         for TokenSpaceGuid, PcdCName, Setting, Arch, PrivateFlag, Dummy1, Dummy2 in RecordList:\r
             PcdDict[Arch, PcdCName, TokenSpaceGuid] = (Setting,Dummy2)\r
-            PcdSet.add((PcdCName, TokenSpaceGuid))\r
+            if not (PcdCName, TokenSpaceGuid) in PcdSet:\r
+                PcdSet.append((PcdCName, TokenSpaceGuid))\r
 \r
         for PcdCName, TokenSpaceGuid in PcdSet:\r
             #\r