CurrentFileDependencyList = DepDb[F]\r
else:\r
try:\r
- Fd = open(F.Path, 'rb')\r
- FileContent = Fd.read()\r
- Fd.close()\r
+ with open(F.Path, 'rb') as Fd:\r
+ FileContent = Fd.read(1)\r
+ Fd.seek(0)\r
+ if not FileContent:\r
+ continue\r
+ if FileContent[0] == 0xff or FileContent[0] == 0xfe:\r
+ FileContent2 = Fd.read()\r
+ FileContent2 = FileContent2.decode('utf-16')\r
+ IncludedFileList = gIncludePattern.findall(FileContent2)\r
+ else:\r
+ FileLines = Fd.readlines()\r
+ FileContent2 = [line for line in FileLines if str(line).lstrip("#\t ")[:8] == "include "]\r
+ simpleFileContent="".join(FileContent2)\r
+\r
+ IncludedFileList = gIncludePattern.findall(simpleFileContent)\r
except BaseException as X:\r
EdkLogger.error("build", FILE_OPEN_FAILURE, ExtraData=F.Path + "\n\t" + str(X))\r
- if len(FileContent) == 0:\r
- continue\r
- try:\r
- if FileContent[0] == 0xff or FileContent[0] == 0xfe:\r
- FileContent = FileContent.decode('utf-16')\r
- else:\r
- FileContent = FileContent.decode()\r
- except:\r
- # The file is not txt file. for example .mcb file\r
+ if not FileContent:\r
continue\r
- IncludedFileList = gIncludePattern.findall(FileContent)\r
\r
for Inc in IncludedFileList:\r
Inc = Inc.strip()\r