From 0f228f19fb40ffe60b13962ff639917435c562a9 Mon Sep 17 00:00:00 2001 From: BobCF Date: Thu, 8 Mar 2018 13:56:21 +0800 Subject: BaseTools: Fixed Pcd from command line issue. Save the pcd command line value in Pcd object Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Bob Feng Cc: Liming Gao Reviewed-by: Liming Gao --- BaseTools/Source/Python/AutoGen/GenC.py | 15 ++++----------- BaseTools/Source/Python/AutoGen/GenMake.py | 28 +++++++++------------------- 2 files changed, 13 insertions(+), 30 deletions(-) (limited to 'BaseTools/Source/Python/AutoGen') diff --git a/BaseTools/Source/Python/AutoGen/GenC.py b/BaseTools/Source/Python/AutoGen/GenC.py index 3e98506cc8..481c4dda14 100644 --- a/BaseTools/Source/Python/AutoGen/GenC.py +++ b/BaseTools/Source/Python/AutoGen/GenC.py @@ -916,11 +916,8 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd): PatchPcdSizeVariableName = '_gPcd_BinaryPatch_Size_' + TokenCName FixPcdSizeTokenName = '_PCD_SIZE_' + TokenCName - if GlobalData.BuildOptionPcd: - for PcdItem in GlobalData.BuildOptionPcd: - if (Pcd.TokenSpaceGuidCName, TokenCName) == (PcdItem[0], PcdItem[1]): - Pcd.DefaultValue = PcdItem[2] - break + if Pcd.PcdValueFromComm: + Pcd.DefaultValue = Pcd.PcdValueFromComm if Pcd.Type in gDynamicExPcd: TokenNumber = int(Pcd.TokenValue, 0) @@ -1215,12 +1212,8 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd): PatchPcdSizeTokenName = '_PCD_PATCHABLE_' + TokenCName +'_SIZE' PatchPcdSizeVariableName = '_gPcd_BinaryPatch_Size_' + TokenCName - if GlobalData.BuildOptionPcd: - for PcdItem in GlobalData.BuildOptionPcd: - if (Pcd.TokenSpaceGuidCName, TokenCName) == (PcdItem[0], PcdItem[1]): - Pcd.DefaultValue = PcdItem[2] - break - + if Pcd.PcdValueFromComm: + Pcd.DefaultValue = Pcd.PcdValueFromComm # # Write PCDs # diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py index 1b0cf17e25..60bd625cd2 100644 --- a/BaseTools/Source/Python/AutoGen/GenMake.py +++ b/BaseTools/Source/Python/AutoGen/GenMake.py @@ -1551,25 +1551,15 @@ class TopLevelMakefile(BuildFile): if GlobalData.gIgnoreSource: ExtraOption += " --ignore-sources" - for index, option in enumerate(GlobalData.gCommand): - if "--pcd" == option and GlobalData.gCommand[index+1]: - pcdName, pcdValue = GlobalData.gCommand[index+1].split('=') - for Item in GlobalData.BuildOptionPcd: - if '.'.join(Item[0:2]) == pcdName: - pcdValue = Item[2] - if pcdValue.startswith('L') or pcdValue.startswith('"'): - pcdValue, Size = ParseFieldValue(pcdValue) - NewVal = '{' - for S in range(Size): - NewVal = NewVal + '0x%02X' % ((pcdValue >> S * 8) & 0xff) - NewVal += ',' - pcdValue = NewVal[:-1] + '}' - break - if pcdValue.startswith('{'): - pcdValue = 'H' + '"' + pcdValue + '"' - ExtraOption += " --pcd " + pcdName + '=' + pcdValue - else: - ExtraOption += " --pcd " + GlobalData.gCommand[index+1] + for pcd in GlobalData.BuildOptionPcd: + if pcd[2]: + pcdname = '.'.join(pcd[0:3]) + else: + pcdname = '.'.join(pcd[0:2]) + if pcd[3].startswith('{'): + ExtraOption += " --pcd " + pcdname + '=' + 'H' + '"' + pcd[3] + '"' + else: + ExtraOption += " --pcd " + pcdname + '=' + pcd[3] MakefileName = self._FILE_NAME_[self._FileType] SubBuildCommandList = [] -- cgit v1.2.3