mirror of https://github.com/acidanthera/audk.git
BaseTools: Library PCD type will inherit from the driver
If a PCD is not referenced in global PCD section of DSC file at all, but is referenced in module scope, then the default PCD type for libs should be the module scoped PCD type. Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=901 Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
This commit is contained in:
parent
74f59e9275
commit
5a444dfd7c
|
@ -432,6 +432,22 @@ class WorkspaceAutoGen(AutoGen):
|
||||||
if PcdInPlatform.Type:
|
if PcdInPlatform.Type:
|
||||||
BuildData.Pcds[key].Type = PcdInPlatform.Type
|
BuildData.Pcds[key].Type = PcdInPlatform.Type
|
||||||
BuildData.Pcds[key].Pending = False
|
BuildData.Pcds[key].Pending = False
|
||||||
|
else:
|
||||||
|
#Pcd used in Library, Pcd Type from reference module if Pcd Type is Pending
|
||||||
|
if BuildData.Pcds[key].Pending:
|
||||||
|
MGen = ModuleAutoGen(self, BuildData.MetaFile, Target, Toolchain, Arch, self.MetaFile)
|
||||||
|
if MGen and MGen.IsLibrary:
|
||||||
|
if MGen in PGen.LibraryAutoGenList:
|
||||||
|
ReferenceModules = MGen._ReferenceModules
|
||||||
|
for ReferenceModule in ReferenceModules:
|
||||||
|
if ReferenceModule.MetaFile in Platform.Modules:
|
||||||
|
RefPlatformModule = Platform.Modules[str(ReferenceModule.MetaFile)]
|
||||||
|
if key in RefPlatformModule.Pcds:
|
||||||
|
PcdInReferenceModule = RefPlatformModule.Pcds[key]
|
||||||
|
if PcdInReferenceModule.Type:
|
||||||
|
BuildData.Pcds[key].Type = PcdInReferenceModule.Type
|
||||||
|
BuildData.Pcds[key].Pending = False
|
||||||
|
break
|
||||||
|
|
||||||
if TAB_PCDS_DYNAMIC_EX in BuildData.Pcds[key].Type:
|
if TAB_PCDS_DYNAMIC_EX in BuildData.Pcds[key].Type:
|
||||||
if BuildData.IsBinaryModule:
|
if BuildData.IsBinaryModule:
|
||||||
|
|
Loading…
Reference in New Issue