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>
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
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
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
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