X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=BaseTools%2FSource%2FPython%2FCommon%2FGlobalData.py;h=fac7cde708f6d63e7ffec3c8d7d075489b486969;hp=492aa3996282bcadf17f8b173b9c0fd97086507a;hb=18ef4e713f2fb5d2f84d179b9861b4afee212f65;hpb=d0acc87a41d9aa25fe87eb096efa62afacd1f865 diff --git a/BaseTools/Source/Python/Common/GlobalData.py b/BaseTools/Source/Python/Common/GlobalData.py index 492aa39962..fac7cde708 100644 --- a/BaseTools/Source/Python/Common/GlobalData.py +++ b/BaseTools/Source/Python/Common/GlobalData.py @@ -1,48 +1,116 @@ -## @file -# This file is used to define common static strings used by INF/DEC/DSC files -# -# Copyright (c) 2007, Intel Corporation. All rights reserved.
-# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -import re - -gIsWindows = None - -gEdkCompatibilityPkg = "EdkCompatibilityPkg" -gWorkspace = "." -gEdkSource = "EdkCompatibilityPkg" -gEfiSource = "." -gEcpSource = "EdkCompatibilityPkg" - -gOptions = None -gCaseInsensitive = False -gAllFiles = None - -gGlobalDefines = {} -gPlatformDefines = {} -gActivePlatform = None -gCommandLineDefines = {} -gEdkGlobal = {} -gOverrideDir = {} - -# for debug trace purpose when problem occurs -gProcessingFile = '' -gBuildingModule = '' - -## Regular expression for matching macro used in DSC/DEC/INF file inclusion -gMacroRefPattern = re.compile("\$\(([A-Z][_A-Z0-9]*)\)", re.UNICODE) -gMacroDefPattern = re.compile("^(DEFINE|EDK_GLOBAL)[ \t]+") -gMacroNamePattern = re.compile("^[A-Z][A-Z0-9_]*$") -# C-style wide string pattern -gWideStringPattern = re.compile('(\W|\A)L"') -# -# A global variable for whether current build in AutoGen phase or not. -# -gAutoGenPhase = False - +## @file +# This file is used to define common static strings used by INF/DEC/DSC files +# +# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
+# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +import re + +gIsWindows = None + +gEdkCompatibilityPkg = "EdkCompatibilityPkg" +gWorkspace = "." +gEdkSource = "EdkCompatibilityPkg" +gEfiSource = "." +gEcpSource = "EdkCompatibilityPkg" + +gOptions = None +gCaseInsensitive = False +gAllFiles = None +gCommand = None +gSKUID_CMD = None + +gGlobalDefines = {} +gPlatformDefines = {} +# PCD name and value pair for fixed at build and feature flag +gPlatformPcds = {} +# PCDs with type that are not fixed at build and feature flag +gPlatformOtherPcds = {} +gActivePlatform = None +gCommandLineDefines = {} +gEdkGlobal = {} +gOverrideDir = {} +gCommandMaxLength = 4096 +# for debug trace purpose when problem occurs +gProcessingFile = '' +gBuildingModule = '' +gSkuids = [] +gDefaultStores = [] + +# definition for a MACRO name. used to create regular expressions below. +_MacroNamePattern = "[A-Z][A-Z0-9_]*" + +## Regular expression for matching macro used in DSC/DEC/INF file inclusion +gMacroRefPattern = re.compile("\$\(({})\)".format(_MacroNamePattern), re.UNICODE) +gMacroDefPattern = re.compile("^(DEFINE|EDK_GLOBAL)[ \t]+") +gMacroNamePattern = re.compile("^{}$".format(_MacroNamePattern)) + +# definition for a GUID. used to create regular expressions below. +_HexChar = r"[0-9a-fA-F]" +_GuidPattern = r"{Hex}{{8}}-{Hex}{{4}}-{Hex}{{4}}-{Hex}{{4}}-{Hex}{{12}}".format(Hex=_HexChar) + +## Regular expressions for GUID matching +gGuidPattern = re.compile(r'{}'.format(_GuidPattern)) +gGuidPatternEnd = re.compile(r'{}$'.format(_GuidPattern)) + +## Regular expressions for HEX matching +g4HexChar = re.compile(r'{}{{4}}'.format(_HexChar)) +gHexPattern = re.compile(r'0[xX]{}+'.format(_HexChar)) +gHexPatternAll = re.compile(r'0[xX]{}+$'.format(_HexChar)) + +## Regular expressions for string identifier checking +gIdentifierPattern = re.compile('^[a-zA-Z][a-zA-Z0-9_]*$', re.UNICODE) + +# +# A global variable for whether current build in AutoGen phase or not. +# +gAutoGenPhase = False + +# +# The Conf dir outside the workspace dir +# +gConfDirectory = '' + +gBuildDirectory = '' +# +# The relative default database file path +# +gDatabasePath = ".cache/build.db" + +# +# Build flag for binary build +# +gIgnoreSource = False + +# +# FDF parser +# +gFdfParser = None + +BuildOptionPcd = [] + +# +# Mixed PCD name dict +# +MixedPcd = {} + +# Structure Pcd dict +gStructurePcd = {} + +# Pcd name for the Pcd which used in the Conditional directives +gConditionalPcds = [] + +gUseHashCache = None +gBinCacheDest = None +gBinCacheSource = None +gPlatformHash = None +gPackageHash = {} +gModuleHash = {} +gEnableGenfdsMultiThread = False +gSikpAutoGenCache = set()