if self._BuildOptions == None:\r
self._BuildOptions = sdict()\r
#\r
- # Retrieve build option for EDKII style module\r
+ # Retrieve build option for EDKII and EDK style module\r
#\r
- RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, EDKII_NAME]\r
- for ToolChainFamily, ToolChain, Option, Dummy1, Dummy2, Dummy3, Dummy4 in RecordList:\r
- self._BuildOptions[ToolChainFamily, ToolChain, EDKII_NAME] = Option\r
- #\r
- # Retrieve build option for EDK style module\r
- #\r
- RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, EDK_NAME] \r
- for ToolChainFamily, ToolChain, Option, Dummy1, Dummy2, Dummy3, Dummy4 in RecordList:\r
- self._BuildOptions[ToolChainFamily, ToolChain, EDK_NAME] = Option\r
+ for CodeBase in (EDKII_NAME, EDK_NAME):\r
+ RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, CodeBase]\r
+ for ToolChainFamily, ToolChain, Option, Dummy1, Dummy2, Dummy3, Dummy4 in RecordList:\r
+ CurKey = (ToolChainFamily, ToolChain, CodeBase)\r
+ #\r
+ # Only flags can be appended\r
+ #\r
+ if CurKey not in self._BuildOptions or not ToolChain.endswith('_FLAGS') or Option.startswith('='):\r
+ self._BuildOptions[CurKey] = Option\r
+ else:\r
+ self._BuildOptions[CurKey] += ' ' + Option\r
return self._BuildOptions\r
\r
def GetBuildOptionsByModuleType(self, Edk, ModuleType):\r
DriverType = '%s.%s' % (Edk, ModuleType)\r
RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, DriverType]\r
for ToolChainFamily, ToolChain, Option, Arch, Type, Dummy3, Dummy4 in RecordList:\r
- if Arch == self._Arch and Type == DriverType:\r
- options[ToolChainFamily, ToolChain, Edk] = Option\r
+ if Type == DriverType:\r
+ Key = (ToolChainFamily, ToolChain, Edk)\r
+ if Key not in options or not ToolChain.endswith('_FLAGS') or Option.startswith('='):\r
+ options[Key] = Option\r
+ else:\r
+ options[Key] += ' ' + Option\r
return self._ModuleTypeOptions[Edk, ModuleType]\r
\r
## Retrieve non-dynamic PCD settings\r
TokenSpaceGuid,\r
self._PCD_TYPE_STRING_[Type],\r
'',\r
- '',\r
+ InitialValue,\r
'',\r
MaxDatumSize,\r
{SkuName : SkuInfo},\r
if self._Header_ == None:\r
self._GetHeaderInfo()\r
if self._Guid == None:\r
- self._Guid = '00000000-0000-0000-000000000000'\r
+ self._Guid = '00000000-0000-0000-0000-000000000000'\r
return self._Guid\r
\r
## Retrieve module version\r
ToolChainFamily = Record[0]\r
ToolChain = Record[1]\r
Option = Record[2]\r
- if (ToolChainFamily, ToolChain) not in self._BuildOptions:\r
+ if (ToolChainFamily, ToolChain) not in self._BuildOptions or Option.startswith('='):\r
self._BuildOptions[ToolChainFamily, ToolChain] = Option\r
else:\r
# concatenate the option string if they're for the same tool\r