## Retrieve [BuildOptions]\r
def _GetBuildOptions(self):\r
if self._BuildOptions == None:\r
+ OverrideTool = set()\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
+ if Option.startswith('='):\r
+ OverrideTool.add(CurKey)\r
+ #\r
+ # Only flags can be appended\r
+ #\r
+ if CurKey not in self._BuildOptions or not ToolChain.endswith('_FLAGS') or CurKey in OverrideTool:\r
+ self._BuildOptions[CurKey] = Option\r
+ else:\r
+ self._BuildOptions[CurKey] += ' ' + Option\r
return self._BuildOptions\r
\r
def GetBuildOptionsByModuleType(self, Edk, ModuleType):\r
self._ModuleTypeOptions = sdict()\r
if (Edk, ModuleType) not in self._ModuleTypeOptions:\r
options = sdict()\r
+ OverrideTool = set()\r
self._ModuleTypeOptions[Edk, ModuleType] = options\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
+ Key = (ToolChainFamily, ToolChain, Edk)\r
+ if Option.startswith('='):\r
+ OverrideTool.add(Key)\r
+ if Key not in options or not ToolChain.endswith('_FLAGS') or Key in OverrideTool:\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