Treat "TARGET" as a special global macro. This can help to use single DSC file for...
authorqhuang8 <qhuang8@c2973edb-eda0-4c78-bc6a-9341b269661f>
Thu, 4 Mar 2010 02:48:34 +0000 (02:48 +0000)
committerqhuang8 <qhuang8@c2973edb-eda0-4c78-bc6a-9341b269661f>
Thu, 4 Mar 2010 02:48:34 +0000 (02:48 +0000)
git-svn-id: https://edk2-buildtools.svn.sourceforge.net/svnroot/edk2-buildtools/trunk/BaseTools@1911 c2973edb-eda0-4c78-bc6a-9341b269661f

Source/Python/build/build.py

index 3075410..e3a3dd9 100644 (file)
@@ -738,6 +738,16 @@ class Build():
         # parse target.txt, tools_def.txt, and platform file\r
         #self.RestoreBuildData()\r
         self.LoadConfiguration()\r
+        \r
+        #\r
+        # @attention Treat $(TARGET) in meta data files as special macro when it has only one build target.\r
+        # This is not a complete support for $(TARGET) macro as it can only support one build target in ONE\r
+        # invocation of build command. However, it should cover the frequent usage model that $(TARGET) macro\r
+        # is used in DSC files to specify different libraries & PCD setting for debug/release build.\r
+        #\r
+        if len(self.BuildTargetList) == 1:\r
+            self.Db._GlobalMacros.setdefault("TARGET", self.BuildTargetList[0])\r
+        \r
         self.InitBuild()\r
 \r
         # print current build environment and configuration\r