]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/DscBuildData.py
BaseTools: Handle the bytes and str difference
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / DscBuildData.py
index 13b2cef59ded1892e511fcd710b5acb9add86d3d..a96502b4bfaffa651e2e55740faa1af262c6f5cd 100644 (file)
@@ -156,7 +156,14 @@ def GetDependencyList(FileStack, SearchPathList):
                 continue\r
 \r
             if FileContent[0] == 0xff or FileContent[0] == 0xfe:\r
-                FileContent = unicode(FileContent, "utf-16")\r
+                FileContent = FileContent.decode('utf-16')\r
+                IncludedFileList = gIncludePattern.findall(FileContent)\r
+            else:\r
+                try:\r
+                    FileContent = str(FileContent)\r
+                    IncludedFileList = gIncludePattern.findall(FileContent)\r
+                except:\r
+                    pass\r
             IncludedFileList = gIncludePattern.findall(FileContent)\r
 \r
             for Inc in IncludedFileList:\r
@@ -1615,7 +1622,7 @@ class DscBuildData(PlatformBuildClassObject):
             FdfInfList = GlobalData.gFdfParser.Profile.InfList\r
         FdfModuleList = [PathClass(NormPath(Inf), GlobalData.gWorkspace, Arch=self._Arch) for Inf in FdfInfList]\r
         AllModulePcds = set()\r
-        ModuleSet = set(self._Modules.keys() + FdfModuleList)\r
+        ModuleSet = set(list(self._Modules.keys()) + FdfModuleList)\r
         for ModuleFile in ModuleSet:\r
             ModuleData = self._Bdb[ModuleFile, self._Arch, self._Target, self._Toolchain]\r
             AllModulePcds = AllModulePcds | ModuleData.PcdsName\r
@@ -1743,7 +1750,7 @@ class DscBuildData(PlatformBuildClassObject):
         except:\r
             EdkLogger.error('Build', COMMAND_FAILURE, 'Can not execute command: %s' % Command)\r
         Result = Process.communicate()\r
-        return Process.returncode, Result[0], Result[1]\r
+        return Process.returncode, Result[0].decode(encoding='utf-8', errors='ignore'), Result[1].decode(encoding='utf-8', errors='ignore')\r
 \r
     @staticmethod\r
     def IntToCString(Value, ValueSize):\r