PcdItem = BuildData.Pcds[key]\r
if (TokenSpaceGuidCName, TokenCName) == (PcdItem.TokenSpaceGuidCName, PcdItem.TokenCName) and FieldName =="":\r
PcdItem.DefaultValue = pcdvalue\r
+ #In command line, the latter full assign value in commandLine should override the former field assign value.\r
+ #For example, --pcd Token.pcd.field="" --pcd Token.pcd=H"{}"\r
+ delete_assign = []\r
+ field_assign = {}\r
+ if GlobalData.BuildOptionPcd:\r
+ for pcdTuple in GlobalData.BuildOptionPcd:\r
+ TokenSpaceGuid, Token, Field = pcdTuple[0], pcdTuple[1], pcdTuple[2]\r
+ if Field:\r
+ if (TokenSpaceGuid, Token) not in field_assign:\r
+ field_assign[TokenSpaceGuid, Token] = []\r
+ field_assign[TokenSpaceGuid, Token].append(pcdTuple)\r
+ else:\r
+ if (TokenSpaceGuid, Token) in field_assign:\r
+ delete_assign.extend(field_assign[TokenSpaceGuid, Token])\r
+ field_assign[TokenSpaceGuid, Token] = []\r
+ for item in delete_assign:\r
+ GlobalData.BuildOptionPcd.remove(item)\r
\r
@staticmethod\r
def HandleFlexiblePcd(TokenSpaceGuidCName, TokenCName, PcdValue, PcdDatumType, GuidDict, FieldName=''):\r