GenFds output message clarification for build ARCH.
[people/mcb30/basetools.git] / Source / Python / GenFds / FfsInfStatement.py
index 74e1cb1..968e8ba 100644 (file)
@@ -227,12 +227,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
     #   @retval list        Arch list\r
     #\r
     def __GetPlatformArchList__(self):\r
-        TargetArchList = GenFdsGlobalVariable.ArchList\r
-        if len(TargetArchList) == 0:\r
-            TargetArchList = GenFdsGlobalVariable.WorkSpace.BuildObject[GenFdsGlobalVariable.ActivePlatform, 'COMMON'].SupArchList\r
-        else:\r
-            TargetArchList = set(GenFdsGlobalVariable.WorkSpace.BuildObject[GenFdsGlobalVariable.ActivePlatform, 'COMMON'].SupArchList) & set(TargetArchList)\r
-\r
+        \r
         InfFileKey = os.path.normpath(self.InfFileName)\r
         DscArchList = []\r
         PlatformDataBase = GenFdsGlobalVariable.WorkSpace.BuildObject[GenFdsGlobalVariable.ActivePlatform, 'IA32']\r
@@ -250,11 +245,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
             if InfFileKey in (PlatformDataBase.Modules):\r
                 DscArchList.append ('IPF')\r
 \r
-        CurArchList = TargetArchList\r
-        if DscArchList != []:\r
-            CurArchList = set (TargetArchList) & set (DscArchList)\r
-        GenFdsGlobalVariable.VerboseLogger ("Valid target architecture(s) is : " + " ".join(CurArchList))\r
-        return list(CurArchList)\r
+        return DscArchList\r
 \r
     ## GetCurrentArch() method\r
     #\r
@@ -264,7 +255,16 @@ class FfsInfStatement(FfsInfStatementClassObject):
     #   @retval list        Arch list\r
     #\r
     def GetCurrentArch(self) :\r
-        CurArchList = self.__GetPlatformArchList__()\r
+        \r
+        TargetArchList = GenFdsGlobalVariable.ArchList\r
+            \r
+        PlatformArchList = self.__GetPlatformArchList__()\r
+        \r
+        CurArchList = TargetArchList\r
+        if PlatformArchList != []:\r
+            CurArchList = list(set (TargetArchList) & set (PlatformArchList))\r
+        GenFdsGlobalVariable.VerboseLogger ("Valid target architecture(s) is : " + " ".join(CurArchList))\r
+        \r
         ArchList = []\r
         if self.KeyStringList != []:\r
             for Key in self.KeyStringList:\r
@@ -281,9 +281,9 @@ class FfsInfStatement(FfsInfStatementClassObject):
             Arch = ArchList[0]\r
             return Arch\r
         elif len(ArchList) > 1:\r
-            EdkLogger.error("GenFds", GENFDS_ERROR, "Not able to determine ARCH for Module %s !" % self.InfFileName)\r
+            EdkLogger.error("GenFds", GENFDS_ERROR, "Module built under multiple ARCHs %s. Not able to determine which output to put into flash for Module %s !" % (str(ArchList), self.InfFileName))\r
         else:\r
-            EdkLogger.error("GenFds", GENFDS_ERROR, "Don't find legal ARCH in Module %s !" % self.InfFileName)\r
+            EdkLogger.error("GenFds", GENFDS_ERROR, "Module %s appears under ARCH %s in platform %s, but current target ARCH is %s, so NO build output could be put into flash." % (self.InfFileName, str(PlatformArchList), GenFdsGlobalVariable.ActivePlatform, str(TargetArchList)))\r
 \r
     ## __GetEFIOutPutPath__() method\r
     #\r