BaseTools/GenFds: enhance INF built arch filter

The bug is use FILE_GUID override to build the same module more than
once, GenFds report warning "xxx NOT found in DSC file; Is it really
a binary module?". The root cause is the module path with FILE_GUID
overridden has the file name FILE_GUIDmodule.inf, then
PlatformDataBase.Modules use FILE_GUIDmodule.inf as key which cause
__GetPlatformArchList__ return empty.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
diff --git a/BaseTools/Source/Python/GenFds/FfsInfStatement.py b/BaseTools/Source/Python/GenFds/FfsInfStatement.py
index bba42c7..b0b22d1 100644
--- a/BaseTools/Source/Python/GenFds/FfsInfStatement.py
+++ b/BaseTools/Source/Python/GenFds/FfsInfStatement.py
@@ -570,6 +570,16 @@
             if  PlatformDataBase != None:

                 if InfFileKey in PlatformDataBase.Modules:

                     DscArchList.append (Arch)

+                else:

+                    #

+                    # BaseTools support build same module more than once, the module path with FILE_GUID overridden has

+                    # the file name FILE_GUIDmodule.inf, then PlatformDataBase.Modules use FILE_GUIDmodule.inf as key,

+                    # but the path (self.MetaFile.Path) is the real path

+                    #

+                    for key in PlatformDataBase.Modules.keys():

+                        if InfFileKey == str((PlatformDataBase.Modules[key]).MetaFile.Path):

+                            DscArchList.append (Arch)

+                            break

 

         return DscArchList