summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BaseTools/Source/Python/AutoGen/AutoGen.py14
-rw-r--r--BaseTools/Source/Python/Workspace/WorkspaceDatabase.py14
2 files changed, 7 insertions, 21 deletions
diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py
index 7fb1a8889a..259abc519b 100644
--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
@@ -2000,7 +2000,6 @@ class PlatformAutoGen(AutoGen):
if Options.get((self.BuildRuleFamily, NowKey)) != None:
Options.pop((self.BuildRuleFamily, NowKey))
- OverrideOpt = set()
for Key in Options:
if ModuleStyle != None and len (Key) > 2:
# Check Module style is EDK or EDKII.
@@ -2026,9 +2025,7 @@ class PlatformAutoGen(AutoGen):
if Arch == "*" or Arch == self.Arch:
if Tool not in BuildOptions:
BuildOptions[Tool] = {}
- if Options[Key].startswith('='):
- OverrideOpt.add((Tool, Attr))
- if Attr != "FLAGS" or Attr not in BuildOptions[Tool] or (Tool, Attr) in OverrideOpt:
+ if Attr != "FLAGS" or Attr not in BuildOptions[Tool] or Options[Key].startswith('='):
BuildOptions[Tool][Attr] = Options[Key]
else:
# append options for the same tool
@@ -2037,7 +2034,6 @@ class PlatformAutoGen(AutoGen):
if FamilyMatch or FamilyIsNull:
return BuildOptions
- OverrideOpt = set()
for Key in Options:
if ModuleStyle != None and len (Key) > 2:
# Check Module style is EDK or EDKII.
@@ -2061,9 +2057,7 @@ class PlatformAutoGen(AutoGen):
if Arch == "*" or Arch == self.Arch:
if Tool not in BuildOptions:
BuildOptions[Tool] = {}
- if Options[Key].startswith('='):
- OverrideOpt.add((Tool, Attr))
- if Attr != "FLAGS" or Attr not in BuildOptions[Tool] or (Tool, Attr) in OverrideOpt:
+ if Attr != "FLAGS" or Attr not in BuildOptions[Tool] or Options[Key].startswith('='):
BuildOptions[Tool][Attr] = Options[Key]
else:
# append options for the same tool
@@ -2103,7 +2097,6 @@ class PlatformAutoGen(AutoGen):
PlatformModuleOptions.keys() + ModuleTypeOptions.keys() +
self.ToolDefinition.keys())
BuildOptions = {}
- OverrideTool = set()
for Tool in AllTools:
if Tool not in BuildOptions:
BuildOptions[Tool] = {}
@@ -2122,9 +2115,8 @@ class PlatformAutoGen(AutoGen):
BuildOptions[Tool][Attr] = ""
# check if override is indicated
if Value.startswith('='):
- OverrideTool.add((Tool, Attr))
BuildOptions[Tool][Attr] = Value[1:]
- elif (Tool, Attr) not in OverrideTool:
+ else:
BuildOptions[Tool][Attr] += " " + Value
if Module.AutoGenVersion < 0x00010005 and self.Workspace.UniFlag != None:
#
diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
index 9da6ac7a41..fd10c5dfb9 100644
--- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
+++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
@@ -753,7 +753,6 @@ class DscBuildData(PlatformBuildClassObject):
## Retrieve [BuildOptions]
def _GetBuildOptions(self):
if self._BuildOptions == None:
- OverrideTool = set()
self._BuildOptions = sdict()
#
# Retrieve build option for EDKII and EDK style module
@@ -762,12 +761,10 @@ class DscBuildData(PlatformBuildClassObject):
RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, CodeBase]
for ToolChainFamily, ToolChain, Option, Dummy1, Dummy2, Dummy3, Dummy4 in RecordList:
CurKey = (ToolChainFamily, ToolChain, CodeBase)
- if Option.startswith('='):
- OverrideTool.add(CurKey)
#
# Only flags can be appended
#
- if CurKey not in self._BuildOptions or not ToolChain.endswith('_FLAGS') or CurKey in OverrideTool:
+ if CurKey not in self._BuildOptions or not ToolChain.endswith('_FLAGS') or Option.startswith('='):
self._BuildOptions[CurKey] = Option
else:
self._BuildOptions[CurKey] += ' ' + Option
@@ -778,16 +775,13 @@ class DscBuildData(PlatformBuildClassObject):
self._ModuleTypeOptions = sdict()
if (Edk, ModuleType) not in self._ModuleTypeOptions:
options = sdict()
- OverrideTool = set()
self._ModuleTypeOptions[Edk, ModuleType] = options
DriverType = '%s.%s' % (Edk, ModuleType)
RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, DriverType]
for ToolChainFamily, ToolChain, Option, Arch, Type, Dummy3, Dummy4 in RecordList:
- if Arch == self._Arch and Type == DriverType:
+ if Type == DriverType:
Key = (ToolChainFamily, ToolChain, Edk)
- if Option.startswith('='):
- OverrideTool.add(Key)
- if Key not in options or not ToolChain.endswith('_FLAGS') or Key in OverrideTool:
+ if Key not in options or not ToolChain.endswith('_FLAGS') or Option.startswith('='):
options[Key] = Option
else:
options[Key] += ' ' + Option
@@ -2399,7 +2393,7 @@ class InfBuildData(ModuleBuildClassObject):
ToolChainFamily = Record[0]
ToolChain = Record[1]
Option = Record[2]
- if (ToolChainFamily, ToolChain) not in self._BuildOptions:
+ if (ToolChainFamily, ToolChain) not in self._BuildOptions or Option.startswith('='):
self._BuildOptions[ToolChainFamily, ToolChain] = Option
else:
# concatenate the option string if they're for the same tool