BaseTools/Source/Python/Workspace/DscBuildData.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
If the PCD is not used in DSC file and user set
that PCD value from Command line, build will fail.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
---
BaseTools/Source/Python/Workspace/DscBuildData.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py
index 1da4f03ab8..6e3cd0f3f1 100644
--- a/BaseTools/Source/Python/Workspace/DscBuildData.py
+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
@@ -896,11 +896,12 @@ class DscBuildData(PlatformBuildClassObject):
else:
pcdobj = self._Pcds.get((pcd[1],pcd[0]))
if pcdobj:
pcdset.append((pcd[0],pcd[1], pcdobj.DefaultValue))
else:
- pcdset.append((pcd[0],pcd[1],pcd[3]))
+ pcdvalue = pcd[3] if len(pcd) == 4 else pcd[2]
+ pcdset.append((pcd[0],pcd[1],pcdvalue))
GlobalData.BuildOptionPcd = pcdset
def GetFieldValueFromComm(self,ValueStr,TokenSpaceGuidCName, TokenCName, FieldName):
PredictedFieldType = "VOID*"
if ValueStr.startswith('L'):
if not ValueStr[1]:
@@ -2163,14 +2164,18 @@ class DscBuildData(PlatformBuildClassObject):
for pcd in Pcds.values():
SkuInfoObj = pcd.SkuInfoList.values()[0]
pcdDecObject = self._DecPcds[pcd.TokenCName, pcd.TokenSpaceGuidCName]
+ pcd.DatumType = pcdDecObject.DatumType
# Only fix the value while no value provided in DSC file.
for sku in pcd.SkuInfoList.values():
if (sku.HiiDefaultValue == "" or sku.HiiDefaultValue == None):
sku.HiiDefaultValue = pcdDecObject.DefaultValue
+ for default_store in sku.DefaultStoreDict:
+ sku.DefaultStoreDict[default_store]=pcdDecObject.DefaultValue
+ pcd.DefaultValue = pcdDecObject.DefaultValue
if 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' not in pcd.SkuInfoList.keys():
valuefromDec = pcdDecObject.DefaultValue
SkuInfo = SkuInfoClass('DEFAULT', '0', SkuInfoObj.VariableName, SkuInfoObj.VariableGuid, SkuInfoObj.VariableOffset, valuefromDec,VariableAttribute=SkuInfoObj.VariableAttribute,DefaultStore={DefaultStore:valuefromDec})
pcd.SkuInfoList['DEFAULT'] = SkuInfo
elif 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' in pcd.SkuInfoList.keys():
--
2.14.3.windows.1
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Reviewed-by: Liming Gao <liming.gao@intel.com> >-----Original Message----- >From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of >BobCF >Sent: Tuesday, February 06, 2018 3:21 PM >To: edk2-devel@lists.01.org >Cc: Gao, Liming <liming.gao@intel.com> >Subject: [edk2] [Patch] BaseTools: Fixed Build failed issue. > >If the PCD is not used in DSC file and user set >that PCD value from Command line, build will fail. > >Contributed-under: TianoCore Contribution Agreement 1.1 >Signed-off-by: Bob Feng <bob.c.feng@intel.com> >Cc: Liming Gao <liming.gao@intel.com> >--- > BaseTools/Source/Python/Workspace/DscBuildData.py | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > >diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py >b/BaseTools/Source/Python/Workspace/DscBuildData.py >index 1da4f03ab8..6e3cd0f3f1 100644 >--- a/BaseTools/Source/Python/Workspace/DscBuildData.py >+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py >@@ -896,11 +896,12 @@ class DscBuildData(PlatformBuildClassObject): > else: > pcdobj = self._Pcds.get((pcd[1],pcd[0])) > if pcdobj: > pcdset.append((pcd[0],pcd[1], pcdobj.DefaultValue)) > else: >- pcdset.append((pcd[0],pcd[1],pcd[3])) >+ pcdvalue = pcd[3] if len(pcd) == 4 else pcd[2] >+ pcdset.append((pcd[0],pcd[1],pcdvalue)) > GlobalData.BuildOptionPcd = pcdset > def GetFieldValueFromComm(self,ValueStr,TokenSpaceGuidCName, >TokenCName, FieldName): > PredictedFieldType = "VOID*" > if ValueStr.startswith('L'): > if not ValueStr[1]: >@@ -2163,14 +2164,18 @@ class DscBuildData(PlatformBuildClassObject): > > > for pcd in Pcds.values(): > SkuInfoObj = pcd.SkuInfoList.values()[0] > pcdDecObject = self._DecPcds[pcd.TokenCName, >pcd.TokenSpaceGuidCName] >+ pcd.DatumType = pcdDecObject.DatumType > # Only fix the value while no value provided in DSC file. > for sku in pcd.SkuInfoList.values(): > if (sku.HiiDefaultValue == "" or sku.HiiDefaultValue == None): > sku.HiiDefaultValue = pcdDecObject.DefaultValue >+ for default_store in sku.DefaultStoreDict: >+ >sku.DefaultStoreDict[default_store]=pcdDecObject.DefaultValue >+ pcd.DefaultValue = pcdDecObject.DefaultValue > if 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' not in >pcd.SkuInfoList.keys(): > valuefromDec = pcdDecObject.DefaultValue > SkuInfo = SkuInfoClass('DEFAULT', '0', SkuInfoObj.VariableName, >SkuInfoObj.VariableGuid, SkuInfoObj.VariableOffset, >valuefromDec,VariableAttribute=SkuInfoObj.VariableAttribute,DefaultStore= >{DefaultStore:valuefromDec}) > pcd.SkuInfoList['DEFAULT'] = SkuInfo > elif 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' in >pcd.SkuInfoList.keys(): >-- >2.14.3.windows.1 > >_______________________________________________ >edk2-devel mailing list >edk2-devel@lists.01.org >https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
© 2016 - 2024 Red Hat, Inc.