]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Fixed an issue that build raise exception
authorFeng, Bob C <bob.c.feng@intel.com>
Fri, 2 Aug 2019 06:40:31 +0000 (14:40 +0800)
committerFeng, Bob C <bob.c.feng@intel.com>
Mon, 12 Aug 2019 02:40:24 +0000 (10:40 +0800)
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2047

Build raise exception if there is libraryclass
missing in dsc file and --pcd build option is used.

Build should report the missing libraryclass but not
a call stack.

This patch is going to fix it.

Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/Python/Workspace/DscBuildData.py

index 383aeaaa15c391a1f58b9898256fdc775d2058a3..d2b5ccbb7a304e3e9fce86eb32da7f0222e0dd17 100644 (file)
@@ -1075,13 +1075,10 @@ class DscBuildData(PlatformBuildClassObject):
                 GlobalData.BuildOptionPcd[i] = (TokenSpaceGuidCName, TokenCName, FieldName, pcdvalue, ("build command options", 1))\r
 \r
         if GlobalData.BuildOptionPcd:\r
+            inf_objs = [item for item in self._Bdb._CACHE_.values() if item.Arch == self.Arch and item.MetaFile.Ext.lower() == '.inf']\r
             for pcd in GlobalData.BuildOptionPcd:\r
                 (TokenSpaceGuidCName, TokenCName, FieldName, pcdvalue, _) = pcd\r
-                for BuildData in self._Bdb._CACHE_.values():\r
-                    if BuildData.Arch != self.Arch:\r
-                        continue\r
-                    if BuildData.MetaFile.Ext == '.dec' or BuildData.MetaFile.Ext == '.dsc':\r
-                        continue\r
+                for BuildData in inf_objs:\r
                     for key in BuildData.Pcds:\r
                         PcdItem = BuildData.Pcds[key]\r
                         if (TokenSpaceGuidCName, TokenCName) == (PcdItem.TokenSpaceGuidCName, PcdItem.TokenCName) and FieldName =="":\r