]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
This patch is going to:
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / WorkspaceDatabase.py
index 6ebb7ee87d5e4ed3d264a1da13de76323b341f25..638df1f6ede75f3f3b83cef119d98ef443d68d8d 100644 (file)
@@ -15,8 +15,7 @@
 # Import Modules\r
 #\r
 import sqlite3\r
-import os\r
-import os.path\r
+import Common.LongFilePathOs as os\r
 import pickle\r
 import uuid\r
 \r
@@ -2009,7 +2008,7 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Defs\r
 \r
     ## Retrieve binary files\r
-    def _GetBinaryFiles(self):\r
+    def _GetBinaries(self):\r
         if self._Binaries == None:\r
             self._Binaries = []\r
             RecordList = self._RawData[MODEL_EFI_BINARY_FILE, self._Arch, self._Platform]\r
@@ -2036,8 +2035,27 @@ class InfBuildData(ModuleBuildClassObject):
                 self._Binaries.append(File)\r
         return self._Binaries\r
 \r
+    ## Retrieve binary files with error check.\r
+    def _GetBinaryFiles(self):\r
+        Binaries = self._GetBinaries()\r
+        if GlobalData.gIgnoreSource and Binaries == []:\r
+            ErrorInfo = "The INF file does not contain any Binaries to use in creating the image\n"\r
+            EdkLogger.error('build', RESOURCE_NOT_AVAILABLE, ExtraData=ErrorInfo, File=self.MetaFile)\r
+\r
+        return Binaries\r
+    ## Check whether it exists the binaries with current ARCH in AsBuild INF\r
+    def _IsSupportedArch(self):\r
+        if self._GetBinaries() and not self._GetSourceFiles():\r
+            return True\r
+        else:\r
+            return False\r
     ## Retrieve source files\r
     def _GetSourceFiles(self):\r
+        #Ignore all source files in a binary build mode\r
+        if GlobalData.gIgnoreSource:\r
+            self._Sources = []\r
+            return self._Sources\r
+\r
         if self._Sources == None:\r
             self._Sources = []\r
             RecordList = self._RawData[MODEL_EFI_SOURCE_FILE, self._Arch, self._Platform]\r
@@ -2538,6 +2556,7 @@ class InfBuildData(ModuleBuildClassObject):
     Depex                   = property(_GetDepex)\r
     DepexExpression         = property(_GetDepexExpression)\r
     IsBinaryModule = property(_IsBinaryModule)\r
+    IsSupportedArch = property(_IsSupportedArch)\r
 \r
 ## Database\r
 #\r