-## Check if gvien file exists or not\r
-#\r
-#\r
-def ValidFile2(AllFiles, File, Ext=None, Workspace='', EfiSource='', EdkSource='', Dir='.', OverrideDir=''):\r
- NewFile = File\r
- if Ext is not None:\r
- Dummy, FileExt = os.path.splitext(File)\r
- if FileExt.lower() != Ext.lower():\r
- return False, File\r
-\r
- # Replace the Edk macros\r
- if OverrideDir != '' and OverrideDir is not None:\r
- if OverrideDir.find('$(EFI_SOURCE)') > -1:\r
- OverrideDir = OverrideDir.replace('$(EFI_SOURCE)', EfiSource)\r
- if OverrideDir.find('$(EDK_SOURCE)') > -1:\r
- OverrideDir = OverrideDir.replace('$(EDK_SOURCE)', EdkSource)\r
-\r
- # Replace the default dir to current dir\r
- if Dir == '.':\r
- Dir = os.getcwd()\r
- Dir = Dir[len(Workspace) + 1:]\r
-\r
- # First check if File has Edk definition itself\r
- if File.find('$(EFI_SOURCE)') > -1 or File.find('$(EDK_SOURCE)') > -1:\r
- NewFile = File.replace('$(EFI_SOURCE)', EfiSource)\r
- NewFile = NewFile.replace('$(EDK_SOURCE)', EdkSource)\r
- NewFile = AllFiles[os.path.normpath(NewFile)]\r
- if NewFile is not None:\r
- return True, NewFile\r
-\r
- # Second check the path with override value\r
- if OverrideDir != '' and OverrideDir is not None:\r
- NewFile = AllFiles[os.path.normpath(os.path.join(OverrideDir, File))]\r
- if NewFile is not None:\r
- return True, NewFile\r
-\r
- # Last check the path with normal definitions\r
- File = os.path.join(Dir, File)\r
- NewFile = AllFiles[os.path.normpath(File)]\r
- if NewFile is not None:\r
- return True, NewFile\r
-\r
- return False, File\r
-\r
-## Check if gvien file exists or not\r
-#\r
-#\r
-def ValidFile3(AllFiles, File, Workspace='', EfiSource='', EdkSource='', Dir='.', OverrideDir=''):\r
- # Replace the Edk macros\r
- if OverrideDir != '' and OverrideDir is not None:\r
- if OverrideDir.find('$(EFI_SOURCE)') > -1:\r
- OverrideDir = OverrideDir.replace('$(EFI_SOURCE)', EfiSource)\r
- if OverrideDir.find('$(EDK_SOURCE)') > -1:\r
- OverrideDir = OverrideDir.replace('$(EDK_SOURCE)', EdkSource)\r
-\r
- # Replace the default dir to current dir\r
- # Dir is current module dir related to workspace\r
- if Dir == '.':\r
- Dir = os.getcwd()\r
- Dir = Dir[len(Workspace) + 1:]\r
-\r
- NewFile = File\r
- RelaPath = AllFiles[os.path.normpath(Dir)]\r
- NewRelaPath = RelaPath\r
-\r
- while(True):\r
- # First check if File has Edk definition itself\r
- if File.find('$(EFI_SOURCE)') > -1 or File.find('$(EDK_SOURCE)') > -1:\r
- File = File.replace('$(EFI_SOURCE)', EfiSource)\r
- File = File.replace('$(EDK_SOURCE)', EdkSource)\r
- NewFile = AllFiles[os.path.normpath(File)]\r
- if NewFile is not None:\r
- NewRelaPath = os.path.dirname(NewFile)\r
- File = os.path.basename(NewFile)\r
- #NewRelaPath = NewFile[:len(NewFile) - len(File.replace("..\\", '').replace("../", '')) - 1]\r
- break\r
-\r
- # Second check the path with override value\r
- if OverrideDir != '' and OverrideDir is not None:\r
- NewFile = AllFiles[os.path.normpath(os.path.join(OverrideDir, File))]\r
- if NewFile is not None:\r
- #NewRelaPath = os.path.dirname(NewFile)\r
- NewRelaPath = NewFile[:len(NewFile) - len(File.replace("..\\", '').replace("../", '')) - 1]\r
- break\r
-\r
- # Last check the path with normal definitions\r
- NewFile = AllFiles[os.path.normpath(os.path.join(Dir, File))]\r
- if NewFile is not None:\r
- break\r
-\r
- # No file found\r
- break\r
-\r
- return NewRelaPath, RelaPath, File\r
-\r
-\r
-def GetRelPath(Path1, Path2):\r
- FileName = os.path.basename(Path2)\r
- L1 = os.path.normpath(Path1).split(os.path.normpath('/'))\r
- L2 = os.path.normpath(Path2).split(os.path.normpath('/'))\r
- for Index in range(0, len(L1)):\r
- if L1[Index] != L2[Index]:\r
- FileName = '../' * (len(L1) - Index)\r
- for Index2 in range(Index, len(L2)):\r
- FileName = os.path.join(FileName, L2[Index2])\r
- break\r
- return os.path.normpath(FileName)\r
-\r
-\r