# This file is used to define common static strings used by INF/DEC/DSC files\r
#\r
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
-# This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution. The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
import re\r
\r
gIsWindows = None\r
-\r
-gEdkCompatibilityPkg = "EdkCompatibilityPkg"\r
gWorkspace = "."\r
-gEdkSource = "EdkCompatibilityPkg"\r
-gEfiSource = "."\r
-gEcpSource = "EdkCompatibilityPkg"\r
-\r
gOptions = None\r
gCaseInsensitive = False\r
gAllFiles = None\r
gActivePlatform = None\r
gCommandLineDefines = {}\r
gEdkGlobal = {}\r
-gOverrideDir = {}\r
gCommandMaxLength = 4096\r
# for debug trace purpose when problem occurs\r
gProcessingFile = ''\r
\r
## Regular expressions for string identifier checking\r
gIdentifierPattern = re.compile('^[a-zA-Z][a-zA-Z0-9_]*$', re.UNICODE)\r
+## Regular expression for GUID c structure format\r
+_GuidCFormatPattern = r"{{\s*0[xX]{Hex}{{1,8}}\s*,\s*0[xX]{Hex}{{1,4}}\s*,\s*0[xX]{Hex}{{1,4}}" \\r
+ r"\s*,\s*{{\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}" \\r
+ r"\s*,\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}" \\r
+ r"\s*,\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}" \\r
+ r"\s*,\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}\s*}}\s*}}".format(Hex=_HexChar)\r
+gGuidCFormatPattern = re.compile(r"{}".format(_GuidCFormatPattern))\r
\r
#\r
# A global variable for whether current build in AutoGen phase or not.\r
#\r
gFdfParser = None\r
\r
-#\r
-# If a module is built more than once with different PCDs or library classes\r
-# a temporary INF file with same content is created, the temporary file is removed\r
-# when build exits.\r
-#\r
-gTempInfs = []\r
-\r
BuildOptionPcd = []\r
\r
#\r
\r
# Structure Pcd dict\r
gStructurePcd = {}\r
-\r
+gPcdSkuOverrides={}\r
# Pcd name for the Pcd which used in the Conditional directives\r
gConditionalPcds = []\r
\r
gBinCacheDest = None\r
gBinCacheSource = None\r
gPlatformHash = None\r
-gPackageHash = {}\r
-gModuleHash = {}\r
-gEnableGenfdsMultiThread = False\r
+gPlatformHashFile = None\r
+gPackageHash = None\r
+gPackageHashFile = None\r
+gModuleHashFile = None\r
+gCMakeHashFile = None\r
+gHashChainStatus = None\r
+gModulePreMakeCacheStatus = None\r
+gModuleMakeCacheStatus = None\r
+gFileHashDict = None\r
+gModuleAllCacheStatus = None\r
+gModuleCacheHit = None\r
+\r
+gEnableGenfdsMultiThread = True\r
+gSikpAutoGenCache = set()\r
+# Common lock for the file access in multiple process AutoGens\r
+file_lock = None\r
+\r