BaseTools:Fix GenFds issue for BuildOption replace GenFdsOption
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>
This commit is contained in:
committed by
mergify[bot]
parent
072b9c2839
commit
4465cd124f
@ -26,7 +26,7 @@ from threading import Thread,Event,BoundedSemaphore
|
||||
import threading
|
||||
from subprocess import Popen,PIPE, STDOUT
|
||||
from collections import OrderedDict, defaultdict
|
||||
from Common.buildoptions import BuildOption,BuildTarget
|
||||
|
||||
from AutoGen.PlatformAutoGen import PlatformAutoGen
|
||||
from AutoGen.ModuleAutoGen import ModuleAutoGen
|
||||
from AutoGen.WorkspaceAutoGen import WorkspaceAutoGen
|
||||
@ -35,8 +35,9 @@ from AutoGen.AutoGenWorker import AutoGenWorkerInProcess,AutoGenManager,\
|
||||
from AutoGen import GenMake
|
||||
from Common import Misc as Utils
|
||||
|
||||
from Common.TargetTxtClassObject import TargetTxt
|
||||
from Common.ToolDefClassObject import ToolDef
|
||||
from Common.TargetTxtClassObject import TargetTxtDict
|
||||
from Common.ToolDefClassObject import ToolDefDict
|
||||
from buildoptions import MyOptionParser
|
||||
from Common.Misc import PathClass,SaveFileOnChange,RemoveDirectory
|
||||
from Common.StringUtils import NormPath
|
||||
from Common.MultipleWorkspace import MultipleWorkspace as mws
|
||||
@ -731,11 +732,13 @@ class Build():
|
||||
self.ConfDirectory = BuildOptions.ConfDirectory
|
||||
self.SpawnMode = True
|
||||
self.BuildReport = BuildReport(BuildOptions.ReportFile, BuildOptions.ReportType)
|
||||
self.TargetTxt = TargetTxt
|
||||
self.ToolDef = ToolDef
|
||||
self.AutoGenTime = 0
|
||||
self.MakeTime = 0
|
||||
self.GenFdsTime = 0
|
||||
TargetObj = TargetTxtDict()
|
||||
ToolDefObj = ToolDefDict((os.path.join(os.getenv("WORKSPACE"),"Conf")))
|
||||
self.TargetTxt = TargetObj.Target
|
||||
self.ToolDef = ToolDefObj.ToolDef
|
||||
GlobalData.BuildOptionPcd = BuildOptions.OptionPcd if BuildOptions.OptionPcd else []
|
||||
#Set global flag for build mode
|
||||
GlobalData.gIgnoreSource = BuildOptions.IgnoreSources
|
||||
@ -816,8 +819,10 @@ class Build():
|
||||
EdkLogger.quiet("%-16s = %s" % ("POSTBUILD", self.Postbuild))
|
||||
if self.Prebuild:
|
||||
self.LaunchPrebuild()
|
||||
self.TargetTxt = TargetTxt
|
||||
self.ToolDef = ToolDef
|
||||
TargetObj = TargetTxtDict()
|
||||
ToolDefObj = ToolDefDict((os.path.join(os.getenv("WORKSPACE"), "Conf")))
|
||||
self.TargetTxt = TargetObj.Target
|
||||
self.ToolDef = ToolDefObj.ToolDef
|
||||
if not (self.LaunchPrebuildFlag and os.path.exists(self.PlatformBuildPath)):
|
||||
self.InitBuild()
|
||||
|
||||
@ -2438,9 +2443,15 @@ def LogBuildTime(Time):
|
||||
else:
|
||||
return None
|
||||
def ThreadNum():
|
||||
OptionParser = MyOptionParser()
|
||||
if not OptionParser.BuildOption and not OptionParser.BuildTarget:
|
||||
OptionParser.GetOption()
|
||||
BuildOption, BuildTarget = OptionParser.BuildOption, OptionParser.BuildTarget
|
||||
ThreadNumber = BuildOption.ThreadNumber
|
||||
GlobalData.gCmdConfDir = BuildOption.ConfDirectory
|
||||
if ThreadNumber is None:
|
||||
ThreadNumber = TargetTxt.TargetTxtDictionary[TAB_TAT_DEFINES_MAX_CONCURRENT_THREAD_NUMBER]
|
||||
TargetObj = TargetTxtDict()
|
||||
ThreadNumber = TargetObj.Target.TargetTxtDictionary[TAB_TAT_DEFINES_MAX_CONCURRENT_THREAD_NUMBER]
|
||||
if ThreadNumber == '':
|
||||
ThreadNumber = 0
|
||||
else:
|
||||
@ -2475,7 +2486,10 @@ def Main():
|
||||
#
|
||||
# Parse the options and args
|
||||
#
|
||||
Option, Target = BuildOption, BuildTarget
|
||||
OptionParser = MyOptionParser()
|
||||
if not OptionParser.BuildOption and not OptionParser.BuildTarget:
|
||||
OptionParser.GetOption()
|
||||
Option, Target = OptionParser.BuildOption, OptionParser.BuildTarget
|
||||
GlobalData.gOptions = Option
|
||||
GlobalData.gCaseInsensitive = Option.CaseInsensitive
|
||||
|
||||
|
Reference in New Issue
Block a user