Exemplo n.º 1
0
 def _GenPcds(self):
     if not GlobalData.gIS_BINARY_INF:
         Logger.Debug(2, "Generate %s ..." % DT.TAB_PCDS)
         #
         # Get all Pcds
         #
         PcdObj = self.Parser.InfPcdSection.Pcds
         KeysList = PcdObj.keys()
         #
         # Go through each arch
         #
         for (PcdType, PcdKey) in KeysList:
             PcdData = PcdObj[PcdType, PcdKey]
             for PcdItemObj in PcdData:
                 CommentList = PcdItemObj.GetHelpStringList()
                 if CommentList:
                     for CommentItem in CommentList:
                         Pcd = CommonObject.PcdObject()
                         Pcd.SetCName(PcdItemObj.GetCName())
                         Pcd.SetTokenSpaceGuidCName(PcdItemObj.GetTokenSpaceGuidCName())
                         Pcd.SetDefaultValue(PcdItemObj.GetDefaultValue())
                         Pcd.SetItemType(PcdType)
                         Pcd.SetValidUsage(CommentItem.GetUsageItem())
                         Pcd.SetFeatureFlag(PcdItemObj.GetFeatureFlagExp())
                         Pcd.SetSupArchList(ConvertArchList(PcdItemObj.GetSupportArchList()))
                         HelpTextObj = CommonObject.TextObject()
                         if self.UniFileClassObject:
                             HelpTextObj.SetLang(DT.TAB_LANGUAGE_EN_X)
                         HelpTextObj.SetString(CommentItem.GetHelpStringItem())
                         Pcd.SetHelpTextList([HelpTextObj])
                         PcdList = self.GetPcdList()
                         PcdList.append(Pcd)
             self.SetPcdList(PcdList)
Exemplo n.º 2
0
    def _GenAsBuiltPcds(self, PcdList, AsBuildIns):
        AsBuildPatchPcdList = []
        AsBuildPcdExList = []
        #
        # Pcd AsBuild Info
        #
        for PcdItem in PcdList:
            if PcdItem[0].upper() == DT.TAB_INF_PATCH_PCD.upper():
                PcdItemObj = PcdItem[1]
                Pcd = CommonObject.PcdObject()
                Pcd.SetCName(PcdItemObj.GetCName())
                Pcd.SetTokenSpaceGuidCName(PcdItemObj.GetTokenSpaceGuidCName())
                if PcdItemObj.GetTokenSpaceGuidValue(
                ) == '' and self.BinaryModule:
                    Logger.Error("\nMkPkg",
                                 PARSER_ERROR,
                                 ST.ERR_ASBUILD_PCD_TOKENSPACE_GUID_VALUE_MISS % \
                                 (PcdItemObj.GetTokenSpaceGuidCName()),
                                 self.GetFullPath(), RaiseError=True)
                else:
                    Pcd.SetTokenSpaceGuidValue(
                        PcdItemObj.GetTokenSpaceGuidValue())
                if (PcdItemObj.GetToken() == '' or PcdItemObj.GetDatumType()
                        == '') and self.BinaryModule:
                    Logger.Error("\nMkPkg",
                                 PARSER_ERROR,
                                 ST.ERR_ASBUILD_PCD_DECLARITION_MISS % \
                                 (PcdItemObj.GetTokenSpaceGuidCName() + '.' + PcdItemObj.GetCName()),
                                 self.GetFullPath(), RaiseError=True)
                Pcd.SetToken(PcdItemObj.GetToken())
                Pcd.SetDatumType(PcdItemObj.GetDatumType())
                Pcd.SetMaxDatumSize(PcdItemObj.GetMaxDatumSize())
                Pcd.SetDefaultValue(PcdItemObj.GetDefaultValue())
                Pcd.SetOffset(PcdItemObj.GetOffset())
                Pcd.SetItemType(PcdItem[0])
                Pcd.SetFeatureFlag(PcdItemObj.GetFeatureFlagExp())
                Pcd.SetSupArchList(
                    ConvertArchList(PcdItemObj.GetSupportArchList()))
                HelpTextObj = CommonObject.TextObject()
                HelpTextObj.SetString(PcdItemObj.GetHelpStringList())
                Pcd.SetHelpTextList([HelpTextObj])
                AsBuildPatchPcdList.append(Pcd)
            else:
                PcdItemObj = PcdItem[1]
                Pcd = CommonObject.PcdObject()
                Pcd.SetTokenSpaceGuidValue(PcdItemObj.GetTokenSpaceGuidValue())
                Pcd.SetToken(PcdItemObj.GetToken())
                Pcd.SetDatumType(PcdItemObj.GetDatumType())
                Pcd.SetMaxDatumSize(PcdItemObj.GetMaxDatumSize())
                Pcd.SetDefaultValue(PcdItemObj.GetDefaultValue())
                Pcd.SetItemType(PcdItem[0])
                Pcd.SetFeatureFlag(PcdItemObj.GetFeatureFlagExp())
                Pcd.SetSupArchList(
                    ConvertArchList(PcdItemObj.GetSupportArchList()))
                HelpTextObj = CommonObject.TextObject()
                HelpTextObj.SetString(PcdItemObj.GetHelpStringList())
                Pcd.SetHelpTextList([HelpTextObj])
                AsBuildPcdExList.append(Pcd)
        AsBuildIns.SetPatchPcdList(AsBuildPatchPcdList)
        AsBuildIns.SetPcdExList(AsBuildPcdExList)

        return AsBuildIns