]> git.proxmox.com Git - mirror_edk2.git/blobdiff - .pytool/CISettings.py
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / .pytool / CISettings.py
index 0c2dd0181aa2d3b3650e255da924d028d872513d..d87c8e838e61ecbdd94bd8ae5051816a34f03e68 100644 (file)
@@ -2,7 +2,7 @@
 #\r
 # Copyright (c) Microsoft Corporation.\r
 # Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>\r
-# Copyright (c) 2020, ARM Limited. All rights reserved.<BR>\r
+# Copyright (c) 2020 - 2021, ARM Limited. All rights reserved.<BR>\r
 # SPDX-License-Identifier: BSD-2-Clause-Patent\r
 ##\r
 import os\r
@@ -22,16 +22,24 @@ class Settings(CiBuildSettingsManager, UpdateSettingsManager, SetupSettingsManag
         self.ActualTargets = []\r
         self.ActualArchitectures = []\r
         self.ActualToolChainTag = ""\r
+        self.UseBuiltInBaseTools = None\r
+        self.ActualScopes = None\r
 \r
     # ####################################################################################### #\r
     #                             Extra CmdLine configuration                                 #\r
     # ####################################################################################### #\r
 \r
     def AddCommandLineOptions(self, parserObj):\r
-        pass\r
+        group = parserObj.add_mutually_exclusive_group()\r
+        group.add_argument("-force_piptools", "--fpt", dest="force_piptools", action="store_true", default=False, help="Force the system to use pip tools")\r
+        group.add_argument("-no_piptools", "--npt", dest="no_piptools", action="store_true", default=False, help="Force the system to not use pip tools")\r
 \r
     def RetrieveCommandLineOptions(self, args):\r
-        pass\r
+        super().RetrieveCommandLineOptions(args)\r
+        if args.force_piptools:\r
+            self.UseBuiltInBaseTools = True\r
+        if args.no_piptools:\r
+            self.UseBuiltInBaseTools = False\r
 \r
     # ####################################################################################### #\r
     #                        Default Support for this Ci Build                                #\r
@@ -41,9 +49,14 @@ class Settings(CiBuildSettingsManager, UpdateSettingsManager, SetupSettingsManag
         ''' return iterable of edk2 packages supported by this build.\r
         These should be edk2 workspace relative paths '''\r
 \r
-        return ("ArmVirtPkg",\r
+        return ("ArmPkg",\r
+                "ArmPlatformPkg",\r
+                "ArmVirtPkg",\r
                 "DynamicTablesPkg",\r
+                "EmbeddedPkg",\r
                 "EmulatorPkg",\r
+                "IntelFsp2Pkg",\r
+                "IntelFsp2WrapperPkg",\r
                 "MdePkg",\r
                 "MdeModulePkg",\r
                 "NetworkPkg",\r
@@ -52,10 +65,16 @@ class Settings(CiBuildSettingsManager, UpdateSettingsManager, SetupSettingsManag
                 "UefiCpuPkg",\r
                 "FmpDevicePkg",\r
                 "ShellPkg",\r
+                "SignedCapsulePkg",\r
+                "StandaloneMmPkg",\r
                 "FatPkg",\r
                 "CryptoPkg",\r
+                "PrmPkg",\r
                 "UnitTestFrameworkPkg",\r
-                "OvmfPkg"\r
+                "OvmfPkg",\r
+                "RedfishPkg",\r
+                "SourceLevelDebugPkg",\r
+                "UefiPayloadPkg"\r
                 )\r
 \r
     def GetArchitecturesSupported(self):\r
@@ -65,7 +84,8 @@ class Settings(CiBuildSettingsManager, UpdateSettingsManager, SetupSettingsManag
                 "X64",\r
                 "ARM",\r
                 "AARCH64",\r
-                "RISCV64")\r
+                "RISCV64",\r
+                "LOONGARCH64")\r
 \r
     def GetTargetsSupported(self):\r
         ''' return iterable of edk2 target tags supported by this build '''\r
@@ -126,19 +146,31 @@ class Settings(CiBuildSettingsManager, UpdateSettingsManager, SetupSettingsManag
 \r
     def GetActiveScopes(self):\r
         ''' return tuple containing scopes that should be active for this process '''\r
-        scopes = ("cibuild", "edk2-build", "host-based-test")\r
+        if self.ActualScopes is None:\r
+            scopes = ("cibuild", "edk2-build", "host-based-test")\r
 \r
-        self.ActualToolChainTag = shell_environment.GetBuildVars().GetValue("TOOL_CHAIN_TAG", "")\r
+            self.ActualToolChainTag = shell_environment.GetBuildVars().GetValue("TOOL_CHAIN_TAG", "")\r
 \r
-        if GetHostInfo().os.upper() == "LINUX" and self.ActualToolChainTag.upper().startswith("GCC"):\r
-            if "AARCH64" in self.ActualArchitectures:\r
-                scopes += ("gcc_aarch64_linux",)\r
-            if "ARM" in self.ActualArchitectures:\r
-                scopes += ("gcc_arm_linux",)\r
-            if "RISCV64" in self.ActualArchitectures:\r
-                scopes += ("gcc_riscv64_unknown",)\r
+            is_linux = GetHostInfo().os.upper() == "LINUX"\r
 \r
-        return scopes\r
+            if self.UseBuiltInBaseTools is None:\r
+                is_linux = GetHostInfo().os.upper() == "LINUX"\r
+                # try and import the pip module for basetools\r
+                try:\r
+                    import edk2basetools\r
+                    self.UseBuiltInBaseTools = True\r
+                except ImportError:\r
+                    self.UseBuiltInBaseTools = False\r
+                    pass\r
+\r
+            if self.UseBuiltInBaseTools == True:\r
+                scopes += ('pipbuild-unix',) if is_linux else ('pipbuild-win',)\r
+                logging.warning("Using Pip Tools based BaseTools")\r
+            else:\r
+                logging.warning("Falling back to using in-tree BaseTools")\r
+\r
+            self.ActualScopes = scopes\r
+        return self.ActualScopes\r
 \r
     def GetRequiredSubmodules(self):\r
         ''' return iterable containing RequiredSubmodule objects.\r
@@ -151,12 +183,16 @@ class Settings(CiBuildSettingsManager, UpdateSettingsManager, SetupSettingsManag
             "CryptoPkg/Library/OpensslLib/openssl", False))\r
         rs.append(RequiredSubmodule(\r
             "UnitTestFrameworkPkg/Library/CmockaLib/cmocka", False))\r
+        rs.append(RequiredSubmodule(\r
+            "UnitTestFrameworkPkg/Library/GoogleTestLib/googletest", False))\r
         rs.append(RequiredSubmodule(\r
             "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma", False))\r
         rs.append(RequiredSubmodule(\r
             "MdeModulePkg/Library/BrotliCustomDecompressLib/brotli", False))\r
         rs.append(RequiredSubmodule(\r
             "BaseTools/Source/C/BrotliCompress/brotli", False))\r
+        rs.append(RequiredSubmodule(\r
+            "RedfishPkg/Library/JsonLib/jansson", False))\r
         return rs\r
 \r
     def GetName(self):\r