]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Move PcdValueInit to platform build folder
authorBobCF <bob.c.feng@intel.com>
Mon, 22 Oct 2018 03:24:13 +0000 (11:24 +0800)
committerLiming Gao <liming.gao@intel.com>
Thu, 25 Oct 2018 00:15:19 +0000 (08:15 +0800)
PcdValueInit tool is platform scope.
It should be generated into Platform output directory.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bob C Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/Python/Workspace/DscBuildData.py

index d87496f25f1fd9de99c0b744e9cad05663f295f8..7070de14cb82c12fc63d9ab04df76e0df7bbfa54 100644 (file)
@@ -86,6 +86,12 @@ LIBS = $(LIB_PATH)\Common.lib
 !INCLUDE $(BASE_TOOLS_PATH)\Source\C\Makefiles\ms.app\r
 '''\r
 \r
+AppTarget = '''\r
+all: $(APPFILE)\r
+$(APPFILE): $(OBJECTS)\r
+%s\r
+'''\r
+\r
 PcdGccMakefile = '''\r
 MAKEROOT ?= $(EDK_TOOLS_PATH)/Source/C\r
 LIBS = -lCommon\r
@@ -2257,10 +2263,10 @@ class DscBuildData(PlatformBuildClassObject):
 \r
         MakeApp = PcdMakefileHeader\r
         if sys.platform == "win32":\r
-            MakeApp = MakeApp + 'APPNAME = %s\n' % (PcdValueInitName) + 'OBJECTS = %s\%s.obj\n' % (self.OutputPath, PcdValueInitName) + 'INC = '\r
+            MakeApp = MakeApp + 'APPFILE = %s\%s.exe\n' % (self.OutputPath, PcdValueInitName) + 'APPNAME = %s\n' % (PcdValueInitName) + 'OBJECTS = %s\%s.obj\n' % (self.OutputPath, PcdValueInitName) + 'INC = '\r
         else:\r
             MakeApp = MakeApp + PcdGccMakefile\r
-            MakeApp = MakeApp + 'APPNAME = %s\n' % (PcdValueInitName) + 'OBJECTS = %s/%s.o\n' % (self.OutputPath, PcdValueInitName) + \\r
+            MakeApp = MakeApp + 'APPFILE = %s/%s\n' % (self.OutputPath, PcdValueInitName) + 'APPNAME = %s\n' % (PcdValueInitName) + 'OBJECTS = %s/%s.o\n' % (self.OutputPath, PcdValueInitName) + \\r
                       'include $(MAKEROOT)/Makefiles/app.makefile\n' + 'INCLUDE +='\r
 \r
         IncSearchList = []\r
@@ -2336,6 +2342,9 @@ class DscBuildData(PlatformBuildClassObject):
 \r
         if sys.platform == "win32":\r
             MakeApp = MakeApp + PcdMakefileEnd\r
+            MakeApp = MakeApp + AppTarget % ("""\tcopy $(APPLICATION) $(APPFILE) /y """)\r
+        else:\r
+            MakeApp = MakeApp + AppTarget % ("""\tcp $(APPLICATION) $(APPFILE) """)\r
         MakeApp = MakeApp + '\n'\r
         IncludeFileFullPaths = []\r
         for includefile in IncludeFiles:\r
@@ -2359,12 +2368,11 @@ class DscBuildData(PlatformBuildClassObject):
         OutputValueFile = os.path.join(self.OutputPath, 'Output.txt')\r
         SaveFileOnChange(InputValueFile, InitByteValue, False)\r
 \r
-        PcdValueInitExe = PcdValueInitName\r
+        Dest_PcdValueInitExe = PcdValueInitName\r
         if not sys.platform == "win32":\r
-            PcdValueInitExe = os.path.join(os.getenv("EDK_TOOLS_PATH"), 'Source', 'C', 'bin', PcdValueInitName)\r
+            Dest_PcdValueInitExe = os.path.join(self.OutputPath, PcdValueInitName)\r
         else:\r
-            PcdValueInitExe = os.path.join(os.getenv("EDK_TOOLS_PATH"), 'Bin', 'Win32', PcdValueInitName) +".exe"\r
-\r
+            Dest_PcdValueInitExe = os.path.join(self.OutputPath, PcdValueInitName) +".exe"\r
         Messages = ''\r
         if sys.platform == "win32":\r
             MakeCommand = 'nmake -f %s' % (MakeFileName)\r
@@ -2374,6 +2382,7 @@ class DscBuildData(PlatformBuildClassObject):
             MakeCommand = 'make -f %s' % (MakeFileName)\r
             returncode, StdOut, StdErr = DscBuildData.ExecuteCommand (MakeCommand)\r
             Messages = StdErr\r
+\r
         Messages = Messages.split('\n')\r
         MessageGroup = []\r
         if returncode != 0:\r
@@ -2418,8 +2427,8 @@ class DscBuildData(PlatformBuildClassObject):
             else:\r
                 EdkLogger.error('Build', COMMAND_FAILURE, 'Can not execute command: %s' % MakeCommand)\r
 \r
-        if DscBuildData.NeedUpdateOutput(OutputValueFile, PcdValueInitExe, InputValueFile):\r
-            Command = PcdValueInitExe + ' -i %s -o %s' % (InputValueFile, OutputValueFile)\r
+        if DscBuildData.NeedUpdateOutput(OutputValueFile, Dest_PcdValueInitExe, InputValueFile):\r
+            Command = Dest_PcdValueInitExe + ' -i %s -o %s' % (InputValueFile, OutputValueFile)\r
             returncode, StdOut, StdErr = DscBuildData.ExecuteCommand (Command)\r
             if returncode != 0:\r
                 EdkLogger.warn('Build', COMMAND_FAILURE, 'Can not collect output from command: %s' % Command)\r