]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools: Fix incremental build bug on DynamicPcd Token Generation
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / AutoGen.py
index 736c1ae976333f3b3c345866555f006929ae4efe..fa6ec5608f84edcfdcdfa71a91a51f5b18829078 100644 (file)
@@ -670,6 +670,19 @@ class WorkspaceAutoGen(AutoGen):
         content += str(GlobalData.BuildOptionPcd)\r
         SaveFileOnChange(os.path.join(self.BuildDir, 'BuildOptions'), content, False)\r
 \r
+        #\r
+        # Create PcdToken Number file for Dynamic/DynamicEx Pcd.\r
+        #\r
+        PcdTokenNumber = 'PcdTokenNumber: '\r
+        if Pa.PcdTokenNumber:\r
+            if Pa.DynamicPcdList:\r
+                for Pcd in Pa.DynamicPcdList:\r
+                    PcdTokenNumber += os.linesep\r
+                    PcdTokenNumber += str((Pcd.TokenCName, Pcd.TokenSpaceGuidCName))\r
+                    PcdTokenNumber += ' : '\r
+                    PcdTokenNumber += str(Pa.PcdTokenNumber[Pcd.TokenCName, Pcd.TokenSpaceGuidCName])\r
+        SaveFileOnChange(os.path.join(self.BuildDir, 'PcdTokenNumber'), PcdTokenNumber, False)\r
+\r
         #\r
         # Get set of workspace metafiles\r
         #\r
@@ -724,6 +737,10 @@ class WorkspaceAutoGen(AutoGen):
         #\r
         AllWorkSpaceMetaFiles.add(os.path.join(self.BuildDir, 'BuildOptions'))\r
 \r
+        # add PcdToken Number file for Dynamic/DynamicEx Pcd\r
+        #\r
+        AllWorkSpaceMetaFiles.add(os.path.join(self.BuildDir, 'PcdTokenNumber'))\r
+\r
         for Arch in self.ArchList:\r
             Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]\r
             PGen = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)\r