BaseTools: Fix the bug for Pcd used in command line's override
V2: remove the not used parameter i Fix the bug for Pcd used in command line not override the Pcd used in the [component] driver's sub-section. Case: DSC file: [PcdsFixedAtBuild] TokenSpaceGuid.PcdTest [Components] TestPkg/TestDriver.inf { <PcdsFixedAtBuild> TokenSpaceGuid.PcdTest|"b" } build command with --pcd TokenSpaceGuid.PcdTest="AAAABB" Then we found the Pcd value in the AutoGen.c file is incorrect, because of the incorrect logic that use the pcd in the [component] section to re-override it. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
@ -2120,6 +2120,13 @@ class PlatformAutoGen(AutoGen):
|
||||
if Module in self.Platform.Modules:
|
||||
PlatformModule = self.Platform.Modules[str(Module)]
|
||||
for Key in PlatformModule.Pcds:
|
||||
if GlobalData.BuildOptionPcd:
|
||||
for pcd in GlobalData.BuildOptionPcd:
|
||||
(TokenSpaceGuidCName, TokenCName, FieldName, pcdvalue, _) = pcd
|
||||
if (TokenCName, TokenSpaceGuidCName) == Key and FieldName =="":
|
||||
PlatformModule.Pcds[Key].DefaultValue = pcdvalue
|
||||
PlatformModule.Pcds[Key].PcdValueFromComm = pcdvalue
|
||||
break
|
||||
Flag = False
|
||||
if Key in Pcds:
|
||||
ToPcd = Pcds[Key]
|
||||
|
Reference in New Issue
Block a user