if Scope1 != None and Scope1 != 'COMMON':\r
ConditionString += " AND (Scope1='%s' OR Scope1='COMMON')" % Scope1\r
if Scope2 != None and Scope2 != 'COMMON':\r
- ConditionString += " AND (Scope2='%s' OR Scope2='COMMON' OR Scope2='DEFAULT')" % Scope2\r
+ # Cover the case that CodeBase is 'COMMON' for BuildOptions section\r
+ if '.' in Scope2:\r
+ Index = Scope2.index('.')\r
+ NewScope = 'COMMON'+ Scope2[Index:]\r
+ ConditionString += " AND (Scope2='%s' OR Scope2='COMMON' OR Scope2='DEFAULT' OR Scope2='%s')" % (Scope2, NewScope)\r
+ else:\r
+ ConditionString += " AND (Scope2='%s' OR Scope2='COMMON' OR Scope2='DEFAULT')" % Scope2\r
\r
if BelongsToItem != None:\r
ConditionString += " AND BelongsToItem=%s" % BelongsToItem\r
options = sdict()\r
self._ModuleTypeOptions[Edk, ModuleType] = options\r
DriverType = '%s.%s' % (Edk, ModuleType)\r
+ CommonDriverType = '%s.%s' % ('COMMON', 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 Type == DriverType:\r
+ if Type == DriverType or Type == CommonDriverType:\r
Key = (ToolChainFamily, ToolChain, Edk)\r
if Key not in options or not ToolChain.endswith('_FLAGS') or Option.startswith('='):\r
options[Key] = Option\r