Fixed a bug which caused library module build failure.
authorjwang36 <jwang36@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 2 Apr 2008 02:43:02 +0000 (02:43 +0000)
committerjwang36 <jwang36@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 2 Apr 2008 02:43:02 +0000 (02:43 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1102 7335b38e-4728-0410-8992-fb3ffe349368

Source/Python/Workspace/WorkspaceBuild.py
Source/Python/Workspace/WorkspaceDatabase.py
Source/Python/build/build.py

index cf3e673..f423385 100644 (file)
@@ -134,6 +134,8 @@ class WorkspaceBuild(object):
 \r
                 for Key in Module.LibraryClasses:\r
                     ModulePath = Module.LibraryClasses[Key]\r
+                    if ModulePath == None or ModulePath == '':\r
+                        continue\r
                     self.Build[Arch].ModuleDatabase[ModulePath] = self.Db.BuildObject[ModulePath, MODEL_FILE_INF, Arch]\r
 \r
                 for Package in Module.Packages:\r
index 494d714..206829a 100644 (file)
@@ -286,7 +286,11 @@ class DscBuildData(PlatformBuildClassObject):
                 if ModuleFile in self._Modules:\r
                     continue\r
                 Module = self._Db.BuildObject[ModuleFile, MODEL_FILE_INF, self._Arch]\r
-                self._MergeModuleInfo(Module, ModuleId)\r
+                # only merge library classes and PCD for non-library module\r
+                if Module.LibraryClass == None or Module.LibraryClass == []:\r
+                    self._MergeModuleInfo(Module, ModuleId)\r
+                self._UpdateModulePcd(Module, ModuleId)\r
+                self._MergeModuleBuildOption(Module, ModuleId)\r
                 self._Modules.append(Module)\r
         return self._Modules\r
 \r
@@ -478,9 +482,6 @@ class DscBuildData(PlatformBuildClassObject):
                 if CName not in Module.Ppis:\r
                     Module.Ppis.append(CName)\r
 \r
-        self._UpdateModulePcd(Module, ModuleId)\r
-        self._MergeModuleBuildOption(Module, ModuleId)\r
-\r
     def _UpdateModulePcd(self, Module, ModuleId):\r
         for Name,Guid in Module.Pcds:\r
             PcdInModule = Module.Pcds[Name,Guid]\r
@@ -576,7 +577,7 @@ class DscBuildData(PlatformBuildClassObject):
             for Module in self.Modules:\r
                 for Key in Module.LibraryClasses:\r
                     Lib = Module.LibraryClasses[Key]\r
-                    if Lib in self._LibraryInstances:\r
+                    if Lib in [None, ''] or Lib in self._LibraryInstances:\r
                         continue\r
                     self._LibraryInstances.append(Lib)\r
         return self._LibraryInstances\r
index 7d3598f..1f7d6e4 100644 (file)
@@ -688,7 +688,7 @@ class Build():
             EdkLogger.verbose('%-24s = %s' % ("Max Thread Number", self.ThreadNumber))\r
 \r
         # establish build database, INF/DEC files will be parsed in this stage\r
-        self.Progress.Start("\nParsing files")\r
+        self.Progress.Start("\nParsing meta-files")\r
         try:\r
             if self.Fdf != None and self.Fdf != "":\r
                 FdfFile = os.path.join(self.WorkspaceDir, self.Fdf)\r