summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/Workspace/InfBuildData.py
diff options
context:
space:
mode:
Diffstat (limited to 'BaseTools/Source/Python/Workspace/InfBuildData.py')
-rw-r--r--BaseTools/Source/Python/Workspace/InfBuildData.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/BaseTools/Source/Python/Workspace/InfBuildData.py b/BaseTools/Source/Python/Workspace/InfBuildData.py
index cd23065b0c..5b9b3d7b4f 100644
--- a/BaseTools/Source/Python/Workspace/InfBuildData.py
+++ b/BaseTools/Source/Python/Workspace/InfBuildData.py
@@ -1054,17 +1054,20 @@ class InfBuildData(ModuleBuildClassObject):
return True
return False
def CheckFeatureFlagPcd(self,Instance):
- Pcds = {}
- if GlobalData.gPlatformFinalPcds.get(self.Arch):
- Pcds = GlobalData.gPlatformFinalPcds[self.Arch].copy()
+ Pcds = GlobalData.gPlatformFinalPcds.copy()
if PcdPattern.search(Instance):
PcdTuple = tuple(Instance.split('.')[::-1])
if PcdTuple in self.Pcds:
- if not (self.Pcds[PcdTuple].Type == 'FeatureFlag' or self.Pcds[PcdTuple].Type == 'FixedAtBuild') and Instance not in Pcds:
+ if not (self.Pcds[PcdTuple].Type == 'FeatureFlag' or self.Pcds[PcdTuple].Type == 'FixedAtBuild'):
EdkLogger.error('build', FORMAT_INVALID,
- "\nit must be defined in a [PcdsFeatureFlag] or [PcdsFixedAtBuild] section of Dsc or Dec file or [FeaturePcd] or [FixedPcd] of Inf file",
+ "\nFeatureFlagPcd must be defined in a [PcdsFeatureFlag] or [PcdsFixedAtBuild] section of Dsc or Dec file",
File=str(self), ExtraData=Instance)
- Pcds[Instance] = self.Pcds[PcdTuple].DefaultValue
+ if not Instance in Pcds:
+ Pcds[Instance] = self.Pcds[PcdTuple].DefaultValue
+ else: #if PcdTuple not in self.Pcds:
+ EdkLogger.error('build', FORMAT_INVALID,
+ "\nFeatureFlagPcd must be defined in [FeaturePcd] or [FixedPcd] of Inf file",
+ File=str(self), ExtraData=Instance)
if Instance in Pcds:
if Pcds[Instance] == '0':
return False