]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Support multiple .h file
authorFeng, Bob C <bob.c.feng@intel.com>
Mon, 29 Jan 2018 06:09:36 +0000 (14:09 +0800)
committerLiming Gao <liming.gao@intel.com>
Thu, 1 Feb 2018 01:21:45 +0000 (09:21 +0800)
for structure Pcd declaration in DEC file.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/Python/Workspace/BuildClassObject.py
BaseTools/Source/Python/Workspace/DecBuildData.py
BaseTools/Source/Python/Workspace/DscBuildData.py
BaseTools/Source/Python/Workspace/MetaFileParser.py

index 3afb27a9c0f2ee8798d47d741a8afda8f0694f43..0e1161c96f647effc9d7e730ee2159548b76b611 100644 (file)
@@ -115,7 +115,7 @@ class StructurePcd(PcdClassObject):
         if validlists is None: validlists=[]\r
         if expressions is None : expressions=[]\r
         super(StructurePcd, self).__init__(Name, Guid, Type, DatumType, Value, Token, MaxDatumSize, SkuInfoList, IsOverrided, GuidValue, validateranges, validlists, expressions)\r
-        self.StructuredPcdIncludeFile = StructuredPcdIncludeFile\r
+        self.StructuredPcdIncludeFile = [] if StructuredPcdIncludeFile is None else StructuredPcdIncludeFile\r
         self.PackageDecs = Packages\r
         self.DefaultStoreName = [default_store]\r
         self.DefaultValues = collections.OrderedDict({})\r
index f6b908dee6d50344f8dc32bc737a9ac29b897f84..2fd3820dcc8676902eeee4ad4b67a1597a0e8f94 100644 (file)
@@ -376,7 +376,7 @@ 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
index 8c5afb5bf488d701d42abb078305d081bf7aff81..84f7b6a23749743bbbb8ee2a0f856924f9b81e72 100644 (file)
@@ -1470,10 +1470,10 @@ class DscBuildData(PlatformBuildClassObject):
         Includes = {}\r
         for PcdName in StructuredPcds:\r
             Pcd = StructuredPcds[PcdName]\r
-            IncludeFile = Pcd.StructuredPcdIncludeFile\r
-            if IncludeFile not in Includes:\r
-                Includes[IncludeFile] = True\r
-                CApp = CApp + '#include <%s>\n' % (IncludeFile)\r
+            for IncludeFile in Pcd.StructuredPcdIncludeFile:\r
+                if IncludeFile not in Includes:\r
+                    Includes[IncludeFile] = True\r
+                    CApp = CApp + '#include <%s>\n' % (IncludeFile)\r
         CApp = CApp + '\n'\r
 \r
         for PcdName in StructuredPcds:\r
index c928cef70f15eeee99a8e5d240d02765c686e7be..57642de4ee73ed2ef8af08b1b93f201613efc953 100644 (file)
@@ -1893,22 +1893,24 @@ class DecParser(MetaFileParser):
             if "|" not in self._CurrentLine:\r
                 if "<HeaderFiles>" == self._CurrentLine:\r
                     self._include_flag = True\r
+                    self._package_flag = False\r
                     self._ValueList = None\r
                     return\r
                 if "<Packages>" == self._CurrentLine:\r
                     self._package_flag = True\r
                     self._ValueList = None\r
+                    self._include_flag = False\r
                     return\r
 \r
                 if self._include_flag:\r
                     self._ValueList[1] = "<HeaderFiles>_" + md5.new(self._CurrentLine).hexdigest()\r
                     self._ValueList[2] = self._CurrentLine\r
-                    self._include_flag = False\r
                 if self._package_flag and "}" != self._CurrentLine:\r
                     self._ValueList[1] = "<Packages>_" + md5.new(self._CurrentLine).hexdigest()\r
                     self._ValueList[2] = self._CurrentLine\r
                 if self._CurrentLine == "}":\r
                     self._package_flag = False\r
+                    self._include_flag = False\r
                     self._ValueList = None\r
                     return\r
             else:\r