mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=2455 BuildOption is used by TargetTxtClassObj.py GenFdsOption is used by GenFds.py When the GenFds tool is used alone (e.g. python3 -m GenFds.GenFds -h) With the OptionParser function, the first detected function prints the help message import TargetTxtClassObj to GenFds, The BuildOption will be executed and replace GenFdsOption We removed all objects associated with this problem that were created directly during the import process (e.g. BuildOption, BuildTarget = MyOptionParser(), TargetTxt = TargetTxtDict()) The Patch is going to fix this issue Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Bob Feng <bob.c.feng@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
124 lines
3.5 KiB
Python
Executable File
124 lines
3.5 KiB
Python
Executable File
## @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.<BR>
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
import re
|
|
|
|
gIsWindows = None
|
|
gWorkspace = "."
|
|
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 = {}
|
|
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)
|
|
## Regular expression for GUID c structure format
|
|
_GuidCFormatPattern = r"{{\s*0[xX]{Hex}{{1,8}}\s*,\s*0[xX]{Hex}{{1,4}}\s*,\s*0[xX]{Hex}{{1,4}}" \
|
|
r"\s*,\s*{{\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}" \
|
|
r"\s*,\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}" \
|
|
r"\s*,\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}" \
|
|
r"\s*,\s*0[xX]{Hex}{{1,2}}\s*,\s*0[xX]{Hex}{{1,2}}\s*}}\s*}}".format(Hex=_HexChar)
|
|
gGuidCFormatPattern = re.compile(r"{}".format(_GuidCFormatPattern))
|
|
|
|
#
|
|
# A global variable for whether current build in AutoGen phase or not.
|
|
#
|
|
gAutoGenPhase = False
|
|
|
|
#
|
|
# The Conf dir outside the workspace dir
|
|
#
|
|
gConfDirectory = ''
|
|
gCmdConfDir = ''
|
|
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 = {}
|
|
gPcdSkuOverrides={}
|
|
# Pcd name for the Pcd which used in the Conditional directives
|
|
gConditionalPcds = []
|
|
|
|
gUseHashCache = None
|
|
gBinCacheDest = None
|
|
gBinCacheSource = None
|
|
gPlatformHash = None
|
|
gPlatformHashFile = None
|
|
gPackageHash = None
|
|
gPackageHashFile = None
|
|
gModuleHashFile = None
|
|
gCMakeHashFile = None
|
|
gHashChainStatus = None
|
|
gModulePreMakeCacheStatus = None
|
|
gModuleMakeCacheStatus = None
|
|
gFileHashDict = None
|
|
gModuleAllCacheStatus = None
|
|
gModuleCacheHit = None
|
|
|
|
gEnableGenfdsMultiThread = True
|
|
gSikpAutoGenCache = set()
|
|
# Common lock for the file access in multiple process AutoGens
|
|
file_lock = None
|
|
|