]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/MetaFileParser.py
BaseTools:Add [packages] section in dsc file
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / MetaFileParser.py
index 0a131fc76981fea60f8c4a4f97a3d6ed2bec167c..8a665b118ec89017b23893295cca41aa22d8bcca 100644 (file)
@@ -160,6 +160,7 @@ class MetaFileParser(object):
         self.MetaFile = FilePath\r
         self._FileDir = self.MetaFile.Dir\r
         self._Defines = {}\r
+        self._Packages = []\r
         self._FileLocalMacros = {}\r
         self._SectionsMacroDict = defaultdict(dict)\r
 \r
@@ -352,6 +353,13 @@ class MetaFileParser(object):
         # If the section information is needed later, it should be stored in database\r
         self._ValueList[0] = self._SectionName\r
 \r
+    ## [packages] section parser\r
+    @ParseMacro\r
+    def _PackageParser(self):\r
+        self._CurrentLine = CleanString(self._CurrentLine)\r
+        self._Packages.append(self._CurrentLine)\r
+        self._ValueList[0] = self._CurrentLine\r
+\r
     ## [defines] section parser\r
     @ParseMacro\r
     def _DefineParser(self):\r
@@ -849,6 +857,7 @@ class DscParser(MetaFileParser):
         TAB_LIBRARIES.upper()                       :   MODEL_EFI_LIBRARY_INSTANCE,\r
         TAB_LIBRARY_CLASSES.upper()                 :   MODEL_EFI_LIBRARY_CLASS,\r
         TAB_BUILD_OPTIONS.upper()                   :   MODEL_META_DATA_BUILD_OPTION,\r
+        TAB_PACKAGES.upper()                        :   MODEL_META_DATA_PACKAGE,\r
         TAB_PCDS_FIXED_AT_BUILD_NULL.upper()        :   MODEL_PCD_FIXED_AT_BUILD,\r
         TAB_PCDS_PATCHABLE_IN_MODULE_NULL.upper()   :   MODEL_PCD_PATCHABLE_IN_MODULE,\r
         TAB_PCDS_FEATURE_FLAG_NULL.upper()          :   MODEL_PCD_FEATURE_FLAG,\r
@@ -1340,6 +1349,7 @@ class DscParser(MetaFileParser):
             MODEL_META_DATA_DEFINE                          :   self.__ProcessDefine,\r
             MODEL_META_DATA_GLOBAL_DEFINE                   :   self.__ProcessDefine,\r
             MODEL_META_DATA_INCLUDE                         :   self.__ProcessDirective,\r
+            MODEL_META_DATA_PACKAGE                         :   self.__ProcessPackages,\r
             MODEL_META_DATA_CONDITIONAL_STATEMENT_IF        :   self.__ProcessDirective,\r
             MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE      :   self.__ProcessDirective,\r
             MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF     :   self.__ProcessDirective,\r
@@ -1643,6 +1653,9 @@ class DscParser(MetaFileParser):
                 self._ValueList = None\r
                 self._ContentIndex -= 1\r
 \r
+    def __ProcessPackages(self):\r
+        self._ValueList[0] = ReplaceMacro(self._ValueList[0], self._Macros)\r
+\r
     def __ProcessSkuId(self):\r
         self._ValueList = [ReplaceMacro(Value, self._Macros, RaiseError=True)\r
                            for Value in self._ValueList]\r
@@ -1721,6 +1734,7 @@ class DscParser(MetaFileParser):
         MODEL_META_DATA_COMPONENT                       :   _ComponentParser,\r
         MODEL_META_DATA_BUILD_OPTION                    :   _BuildOptionParser,\r
         MODEL_UNKNOWN                                   :   MetaFileParser._Skip,\r
+        MODEL_META_DATA_PACKAGE                         :   MetaFileParser._PackageParser,\r
         MODEL_META_DATA_USER_EXTENSION                  :   MetaFileParser._SkipUserExtension,\r
         MODEL_META_DATA_SECTION_HEADER                  :   MetaFileParser._SectionHeaderParser,\r
         MODEL_META_DATA_SUBSECTION_HEADER               :   _SubsectionHeaderParser,\r