]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools/GenMake: Sort generated makefile tool definitions
authorMichael D Kinney <michael.d.kinney@intel.com>
Fri, 23 Apr 2021 19:31:09 +0000 (12:31 -0700)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Tue, 27 Apr 2021 05:56:39 +0000 (05:56 +0000)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3353

Sort the tool definition content of generated makefiles to help
verify that makefile contents have not changed after BaseTools
code changes.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Yuwei Chen <yuwei.chen@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Yuwei Chen <yuwei.chen@intel.com>
BaseTools/Source/Python/AutoGen/GenMake.py

index 1cfac1cd82caab901d1096b5810d2972d5c19e10..961b2ab1c399692247074195d877a760cec12e75 100755 (executable)
@@ -1,7 +1,7 @@
 ## @file\r
 # Create makefile for MS nmake and GNU make\r
 #\r
-# Copyright (c) 2007 - 2020, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR>\r
 # Copyright (c) 2020, ARM Limited. All rights reserved.<BR>\r
 # SPDX-License-Identifier: BSD-2-Clause-Patent\r
 #\r
@@ -519,13 +519,15 @@ cleanlib:
         # tools definitions\r
         ToolsDef = []\r
         IncPrefix = self._INC_FLAG_[MyAgo.ToolChainFamily]\r
-        for Tool in MyAgo.BuildOption:\r
-            for Attr in MyAgo.BuildOption[Tool]:\r
+        for Tool in sorted(list(MyAgo.BuildOption)):\r
+            Appended = False\r
+            for Attr in sorted(list(MyAgo.BuildOption[Tool])):\r
                 Value = MyAgo.BuildOption[Tool][Attr]\r
                 if Attr == "FAMILY":\r
                     continue\r
                 elif Attr == "PATH":\r
                     ToolsDef.append("%s = %s" % (Tool, Value))\r
+                    Appended = True\r
                 else:\r
                     # Don't generate MAKE_FLAGS in makefile. It's put in environment variable.\r
                     if Tool == "MAKE":\r
@@ -542,7 +544,9 @@ cleanlib:
                                 Value = ' '.join(ValueList)\r
 \r
                     ToolsDef.append("%s_%s = %s" % (Tool, Attr, Value))\r
-            ToolsDef.append("")\r
+                    Appended = True\r
+            if Appended:\r
+                ToolsDef.append("")\r
 \r
         # generate the Response file and Response flag\r
         RespDict = self.CommandExceedLimit()\r