summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/Workspace
diff options
context:
space:
mode:
Diffstat (limited to 'BaseTools/Source/Python/Workspace')
-rw-r--r--BaseTools/Source/Python/Workspace/DscBuildData.py1
-rw-r--r--BaseTools/Source/Python/Workspace/InfBuildData.py15
-rw-r--r--BaseTools/Source/Python/Workspace/WorkspaceCommon.py5
3 files changed, 10 insertions, 11 deletions
diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py
index fc1e773417..a9fdc5cafa 100644
--- a/BaseTools/Source/Python/Workspace/DscBuildData.py
+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
@@ -976,6 +976,7 @@ class DscBuildData(PlatformBuildClassObject):
if (TokenSpaceGuid + '.' + PcdCName) in GlobalData.gPlatformPcds:
if GlobalData.gPlatformPcds[TokenSpaceGuid + '.' + PcdCName] != ValueList[Index]:
GlobalData.gPlatformPcds[TokenSpaceGuid + '.' + PcdCName] = ValueList[Index]
+ GlobalData.gPlatformFinalPcds[TokenSpaceGuid + '.' + PcdCName] = ValueList[Index]
return ValueList
def _FilterPcdBySkuUsage(self, Pcds):
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
diff --git a/BaseTools/Source/Python/Workspace/WorkspaceCommon.py b/BaseTools/Source/Python/Workspace/WorkspaceCommon.py
index 6564a34ba7..53027a0e30 100644
--- a/BaseTools/Source/Python/Workspace/WorkspaceCommon.py
+++ b/BaseTools/Source/Python/Workspace/WorkspaceCommon.py
@@ -75,11 +75,6 @@ def GetDeclaredPcd(Platform, BuildDatabase, Arch, Target, Toolchain, additionalP
break
if (PcdCName, PcdTokenName) not in DecPcds:
DecPcds[PcdCName, PcdTokenName] = Pkg.Pcds[Pcd]
- if not GlobalData.gPlatformFinalPcds.get(Arch):
- GlobalData.gPlatformFinalPcds[Arch] = OrderedDict()
- for Name,Guid in DecPcds:
- if DecPcds[Name,Guid].Type == 'FeatureFlag' or DecPcds[Name, Guid].Type == 'FixedAtBuild':
- GlobalData.gPlatformFinalPcds[Arch]['%s.%s'%(Guid, Name)]=DecPcds[Name, Guid].DefaultValue
return DecPcds, GuidDict
## Get all dependent libraries for a module