Bob: target.txt is from Conf directory. build_rule.txt and tools_def.txt are specified in target.txt. Please take care this case that they may have the different file name.
And, Conf directory is relative to WORKSPACE and PACKAGES_PATH. Does this patch support it? Thanks Liming >-----Original Message----- >From: Feng, Bob C >Sent: Friday, June 28, 2019 3:07 PM >To: devel@edk2.groups.io >Cc: Gao, Liming <liming....@intel.com>; Feng, Bob C <bob.c.f...@intel.com> >Subject: [Patch 1/1] BaseTools: Singleton the object to handle build conf file > >BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1875 > >The build config files are target.txt, build rule, tooldef >During a build, the config is not changed, so the object to >handle them need to be singleton. > >Cc: Liming Gao <liming....@intel.com> >Signed-off-by: Bob Feng <bob.c.f...@intel.com> >--- > BaseTools/Source/Python/AutoGen/AutoGen.py | 33 ++---------- > .../Source/Python/AutoGen/BuildEngine.py | 22 ++++++++ > .../Python/Common/TargetTxtClassObject.py | 2 + > .../Python/Common/ToolDefClassObject.py | 6 ++- > BaseTools/Source/Python/GenFds/GenFds.py | 4 +- > .../Python/GenFds/GenFdsGlobalVariable.py | 54 ++++++++----------- > .../Source/Python/Workspace/DscBuildData.py | 8 +-- > BaseTools/Source/Python/build/build.py | 29 +++------- > 8 files changed, 62 insertions(+), 96 deletions(-) > >diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py >b/BaseTools/Source/Python/AutoGen/AutoGen.py >index e8e09dc8a366..a1f7f5641e09 100644 >--- a/BaseTools/Source/Python/AutoGen/AutoGen.py >+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py >@@ -22,11 +22,12 @@ from . import GenC > from . import GenMake > from . import GenDepex > from io import BytesIO > > from .StrGather import * >-from .BuildEngine import BuildRule >+from .BuildEngine import BuildRuleObj as BuildRule >+from .BuildEngine import >gDefaultBuildRuleFile,AutoGenReqBuildRuleVerNum > import shutil > from Common.LongFilePathSupport import CopyLongFilePath > from Common.BuildToolError import * > from Common.DataType import * > from Common.Misc import * >@@ -76,16 +77,10 @@ gEfiVarStoreGuidPattern = >re.compile("\s*guid\s*=\s*({.*?{.*?}\s*})") > > ## Mapping Makefile type > gMakeTypeMap = {TAB_COMPILER_MSFT:"nmake", "GCC":"gmake"} > > >-## Build rule configuration file >-gDefaultBuildRuleFile = 'build_rule.txt' >- >-## Build rule default version >-AutoGenReqBuildRuleVerNum = "0.1" >- > ## default file name for AutoGen > gAutoGenCodeFileName = "AutoGen.c" > gAutoGenHeaderFileName = "AutoGen.h" > gAutoGenStringFileName = "%(module_name)sStrDefs.h" > gAutoGenStringFormFileName = "%(module_name)sStrDefs.hpk" >@@ -1964,32 +1959,10 @@ class PlatformAutoGen(AutoGen): > ## Return the build options specific for EDKII modules in this platform > @cached_property > def EdkIIBuildOption(self): > return self._ExpandBuildOption(self.Platform.BuildOptions, EDKII_NAME) > >- ## Parse build_rule.txt in Conf Directory. >- # >- # @retval BuildRule object >- # >- @cached_property >- def BuildRule(self): >- BuildRuleFile = None >- if TAB_TAT_DEFINES_BUILD_RULE_CONF in >self.Workspace.TargetTxt.TargetTxtDictionary: >- BuildRuleFile = >self.Workspace.TargetTxt.TargetTxtDictionary[TAB_TAT_DEFINES_BUILD_RUL >E_CONF] >- if not BuildRuleFile: >- BuildRuleFile = gDefaultBuildRuleFile >- RetVal = BuildRule(BuildRuleFile) >- if RetVal._FileVersion == "": >- RetVal._FileVersion = AutoGenReqBuildRuleVerNum >- else: >- if RetVal._FileVersion < AutoGenReqBuildRuleVerNum : >- # If Build Rule's version is less than the version number >required by >the tools, halting the build. >- EdkLogger.error("build", AUTOGEN_ERROR, >- ExtraData="The version number [%s] of >build_rule.txt is less >than the version number required by the AutoGen.(the minimum required >version number is [%s])"\ >- % (RetVal._FileVersion, >AutoGenReqBuildRuleVerNum)) >- return RetVal >- > ## Summarize the packages used by modules in this platform > @cached_property > def PackageList(self): > RetVal = set() > for La in self.LibraryAutoGenList: >@@ -3143,11 +3116,11 @@ class ModuleAutoGen(AutoGen): > return RetVal > > @cached_property > def BuildRules(self): > RetVal = {} >- BuildRuleDatabase = self.PlatformInfo.BuildRule >+ BuildRuleDatabase = BuildRule > for Type in BuildRuleDatabase.FileTypeList: > #first try getting build rule by BuildRuleFamily > RuleObject = BuildRuleDatabase[Type, self.BuildType, self.Arch, >self.BuildRuleFamily] > if not RuleObject: > # build type is always module type, but ... >diff --git a/BaseTools/Source/Python/AutoGen/BuildEngine.py >b/BaseTools/Source/Python/AutoGen/BuildEngine.py >index 14e61140e7ba..bb9153447793 100644 >--- a/BaseTools/Source/Python/AutoGen/BuildEngine.py >+++ b/BaseTools/Source/Python/AutoGen/BuildEngine.py >@@ -18,10 +18,13 @@ from Common.LongFilePathSupport import >OpenLongFilePath as open > from Common.GlobalData import * > from Common.BuildToolError import * > from Common.Misc import tdict, PathClass > from Common.StringUtils import NormPath > from Common.DataType import * >+from Common.TargetTxtClassObject import TargetTxt >+gDefaultBuildRuleFile = 'build_rule.txt' >+AutoGenReqBuildRuleVerNum = '0.1' > > import Common.EdkLogger as EdkLogger > > ## Convert file type to file list macro name > # >@@ -581,10 +584,29 @@ class BuildRule: > _ExtraDependency : ParseCommonSubSection, > _Command : ParseCommonSubSection, > _UnknownSection : SkipSection, > } > >+def GetBuildRule(): >+ BuildRuleFile = None >+ if TAB_TAT_DEFINES_BUILD_RULE_CONF in TargetTxt.TargetTxtDictionary: >+ BuildRuleFile = >TargetTxt.TargetTxtDictionary[TAB_TAT_DEFINES_BUILD_RULE_CONF] >+ if not BuildRuleFile: >+ BuildRuleFile = gDefaultBuildRuleFile >+ RetVal = BuildRule(BuildRuleFile) >+ if RetVal._FileVersion == "": >+ RetVal._FileVersion = AutoGenReqBuildRuleVerNum >+ else: >+ if RetVal._FileVersion < AutoGenReqBuildRuleVerNum : >+ # If Build Rule's version is less than the version number >required by the >tools, halting the build. >+ EdkLogger.error("build", AUTOGEN_ERROR, >+ ExtraData="The version number [%s] of >build_rule.txt is less >than the version number required by the AutoGen.(the minimum required >version number is [%s])"\ >+ % (RetVal._FileVersion, >AutoGenReqBuildRuleVerNum)) >+ return RetVal >+ >+BuildRuleObj = GetBuildRule() >+ > # This acts like the main() function for the script, unless it is 'import'ed > into >another > # script. > if __name__ == '__main__': > import sys > EdkLogger.Initialize() >diff --git a/BaseTools/Source/Python/Common/TargetTxtClassObject.py >b/BaseTools/Source/Python/Common/TargetTxtClassObject.py >index 9d7673b41bb5..79a5acc01074 100644 >--- a/BaseTools/Source/Python/Common/TargetTxtClassObject.py >+++ b/BaseTools/Source/Python/Common/TargetTxtClassObject.py >@@ -144,10 +144,12 @@ class TargetTxtClassObject(object): > def TargetTxtDict(ConfDir): > Target = TargetTxtClassObject() > Target.LoadTargetTxtFile(os.path.normpath(os.path.join(ConfDir, >gDefaultTargetTxtFile))) > return Target > >+TargetTxt = TargetTxtDict(os.path.join(os.getenv("WORKSPACE"),"Conf")) >+ > ## > # > # This acts like the main() function for the script, unless it is 'import'ed > into >another > # script. > # >diff --git a/BaseTools/Source/Python/Common/ToolDefClassObject.py >b/BaseTools/Source/Python/Common/ToolDefClassObject.py >index 5d692ea13cfc..0bfa263270c3 100644 >--- a/BaseTools/Source/Python/Common/ToolDefClassObject.py >+++ b/BaseTools/Source/Python/Common/ToolDefClassObject.py >@@ -12,11 +12,11 @@ from __future__ import absolute_import > import Common.LongFilePathOs as os > import re > from . import EdkLogger > > from .BuildToolError import * >-from Common.TargetTxtClassObject import TargetTxtDict >+from Common.TargetTxtClassObject import TargetTxt > from Common.LongFilePathSupport import OpenLongFilePath as open > from Common.Misc import PathClass > from Common.StringUtils import NormPath > import Common.GlobalData as GlobalData > from Common import GlobalData >@@ -261,11 +261,11 @@ class ToolDefClassObject(object): > # @param ConfDir: Conf dir > # > # @retval ToolDef An instance of ToolDefClassObject() with loaded >tools_def.txt > # > def ToolDefDict(ConfDir): >- Target = TargetTxtDict(ConfDir) >+ Target = TargetTxt > ToolDef = ToolDefClassObject() > if TAB_TAT_DEFINES_TOOL_CHAIN_CONF in Target.TargetTxtDictionary: > ToolsDefFile = >Target.TargetTxtDictionary[TAB_TAT_DEFINES_TOOL_CHAIN_CONF] > if ToolsDefFile: > ToolDef.LoadToolDefFile(os.path.normpath(ToolsDefFile)) >@@ -273,10 +273,12 @@ def ToolDefDict(ConfDir): > ToolDef.LoadToolDefFile(os.path.normpath(os.path.join(ConfDir, >gDefaultToolsDefFile))) > else: > ToolDef.LoadToolDefFile(os.path.normpath(os.path.join(ConfDir, >gDefaultToolsDefFile))) > return ToolDef > >+ToolDef = ToolDefDict((os.path.join(os.getenv("WORKSPACE"),"Conf"))) >+ > ## > # > # This acts like the main() function for the script, unless it is 'import'ed > into >another > # script. > # >diff --git a/BaseTools/Source/Python/GenFds/GenFds.py >b/BaseTools/Source/Python/GenFds/GenFds.py >index 5888997761bb..51943411ad1f 100644 >--- a/BaseTools/Source/Python/GenFds/GenFds.py >+++ b/BaseTools/Source/Python/GenFds/GenFds.py >@@ -18,11 +18,11 @@ from glob import glob > from struct import unpack > from linecache import getlines > from io import BytesIO > > import Common.LongFilePathOs as os >-from Common.TargetTxtClassObject import TargetTxtClassObject >+from Common.TargetTxtClassObject import TargetTxt > from Common.DataType import * > import Common.GlobalData as GlobalData > from Common import EdkLogger > from Common.StringUtils import NormPath > from Common.Misc import DirCache, PathClass, >GuidStructureStringToGuidString >@@ -205,12 +205,10 @@ def GenFdsApi(FdsCommandDict, >WorkSpaceDataBase=None): > GenFdsGlobalVariable.ConfDir = ConfDirectoryPath > if not GlobalData.gConfDirectory: > GlobalData.gConfDirectory = GenFdsGlobalVariable.ConfDir > BuildConfigurationFile = >os.path.normpath(os.path.join(ConfDirectoryPath, "target.txt")) > if os.path.isfile(BuildConfigurationFile) == True: >- TargetTxt = TargetTxtClassObject() >- TargetTxt.LoadTargetTxtFile(BuildConfigurationFile) > # if no build target given in command line, get it from target.txt > if not GenFdsGlobalVariable.TargetName: > BuildTargetList = >TargetTxt.TargetTxtDictionary[TAB_TAT_DEFINES_TARGET] > if len(BuildTargetList) != 1: > EdkLogger.error("GenFds", OPTION_VALUE_INVALID, >ExtraData="Only allows one instance for Target.") >diff --git a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py >b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py >index c9c476cf6154..f49af9371b8d 100644 >--- a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py >+++ b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py >@@ -20,13 +20,13 @@ from array import array > > from Common.BuildToolError import COMMAND_FAILURE,GENFDS_ERROR > from Common import EdkLogger > from Common.Misc import SaveFileOnChange > >-from Common.TargetTxtClassObject import TargetTxtClassObject >-from Common.ToolDefClassObject import ToolDefClassObject, ToolDefDict >-from AutoGen.BuildEngine import BuildRule >+from Common.TargetTxtClassObject import TargetTxt >+from Common.ToolDefClassObject import ToolDef >+from AutoGen.BuildEngine import BuildRuleObj > import Common.DataType as DataType > from Common.Misc import PathClass > from Common.LongFilePathSupport import OpenLongFilePath as open > from Common.MultipleWorkspace import MultipleWorkspace as mws > import Common.GlobalData as GlobalData >@@ -93,35 +93,25 @@ class GenFdsGlobalVariable: > # > @staticmethod > def _LoadBuildRule(): > if GenFdsGlobalVariable.__BuildRuleDatabase: > return GenFdsGlobalVariable.__BuildRuleDatabase >- BuildConfigurationFile = >os.path.normpath(os.path.join(GenFdsGlobalVariable.ConfDir, "target.txt")) >- TargetTxt = TargetTxtClassObject() >- if os.path.isfile(BuildConfigurationFile) == True: >- TargetTxt.LoadTargetTxtFile(BuildConfigurationFile) >- if DataType.TAB_TAT_DEFINES_BUILD_RULE_CONF in >TargetTxt.TargetTxtDictionary: >- BuildRuleFile = >TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_BUILD_RULE_CO >NF] >- if not BuildRuleFile: >- BuildRuleFile = 'Conf/build_rule.txt' >- GenFdsGlobalVariable.__BuildRuleDatabase = >BuildRule(BuildRuleFile) >- ToolDefinitionFile = >TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_C >ONF] >- if ToolDefinitionFile == '': >- ToolDefinitionFile = "Conf/tools_def.txt" >- if os.path.isfile(ToolDefinitionFile): >- ToolDef = ToolDefClassObject() >- ToolDef.LoadToolDefFile(ToolDefinitionFile) >- ToolDefinition = ToolDef.ToolsDefTxtDatabase >- if DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY in ToolDefinition >\ >- and GenFdsGlobalVariable.ToolChainTag in >ToolDefinition[DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY] \ >- and >ToolDefinition[DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY][GenFdsGlo >balVariable.ToolChainTag]: >- GenFdsGlobalVariable.BuildRuleFamily = >ToolDefinition[DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY][GenFdsGlo >balVariable.ToolChainTag] >+ GenFdsGlobalVariable.__BuildRuleDatabase = BuildRuleObj >+ ToolDefinitionFile = >TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_C >ONF] >+ if ToolDefinitionFile == '': >+ ToolDefinitionFile = "Conf/tools_def.txt" >+ if os.path.isfile(ToolDefinitionFile): >+ ToolDefinition = ToolDef.ToolsDefTxtDatabase >+ if DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY in ToolDefinition \ >+ and GenFdsGlobalVariable.ToolChainTag in >ToolDefinition[DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY] \ >+ and >ToolDefinition[DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY][GenFdsGlo >balVariable.ToolChainTag]: >+ GenFdsGlobalVariable.BuildRuleFamily = >ToolDefinition[DataType.TAB_TOD_DEFINES_BUILDRULEFAMILY][GenFdsGlo >balVariable.ToolChainTag] > >- if DataType.TAB_TOD_DEFINES_FAMILY in ToolDefinition \ >- and GenFdsGlobalVariable.ToolChainTag in >ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY] \ >- and >ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY][GenFdsGlobalVariable. >ToolChainTag]: >- GenFdsGlobalVariable.ToolChainFamily = >ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY][GenFdsGlobalVariable. >ToolChainTag] >+ if DataType.TAB_TOD_DEFINES_FAMILY in ToolDefinition \ >+ and GenFdsGlobalVariable.ToolChainTag in >ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY] \ >+ and >ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY][GenFdsGlobalVariable. >ToolChainTag]: >+ GenFdsGlobalVariable.ToolChainFamily = >ToolDefinition[DataType.TAB_TOD_DEFINES_FAMILY][GenFdsGlobalVariable. >ToolChainTag] > return GenFdsGlobalVariable.__BuildRuleDatabase > > ## GetBuildRules > # @param Inf: object of InfBuildData > # @param Arch: current arch >@@ -834,11 +824,11 @@ class GenFdsGlobalVariable: > # @param KeyStringList Filter for inputs of section generation > # @param CurrentArchList Arch list > # @param NameGuid The Guid name > # > def FindExtendTool(KeyStringList, CurrentArchList, NameGuid): >- ToolDb = ToolDefDict(GenFdsGlobalVariable.ConfDir).ToolsDefTxtDatabase >+ ToolDb = ToolDef.ToolsDefTxtDatabase > # if user not specify filter, try to deduce it from global data. > if KeyStringList is None or KeyStringList == []: > Target = GenFdsGlobalVariable.TargetName > ToolChain = GenFdsGlobalVariable.ToolChainTag > if ToolChain not in ToolDb['TOOL_CHAIN_TAG']: >@@ -850,19 +840,19 @@ def FindExtendTool(KeyStringList, CurrentArchList, >NameGuid): > > if GenFdsGlobalVariable.GuidToolDefinition: > if NameGuid in GenFdsGlobalVariable.GuidToolDefinition: > return GenFdsGlobalVariable.GuidToolDefinition[NameGuid] > >- ToolDefinition = >ToolDefDict(GenFdsGlobalVariable.ConfDir).ToolsDefTxtDictionary >+ ToolDefinition = ToolDef.ToolsDefTxtDictionary > ToolPathTmp = None > ToolOption = None > ToolPathKey = None > ToolOptionKey = None > KeyList = None >- for ToolDef in ToolDefinition.items(): >- if NameGuid.lower() == ToolDef[1].lower(): >- KeyList = ToolDef[0].split('_') >+ for tool_def in ToolDefinition.items(): >+ if NameGuid.lower() == tool_def[1].lower(): >+ KeyList = tool_def[0].split('_') > Key = KeyList[0] + \ > '_' + \ > KeyList[1] + \ > '_' + \ > KeyList[2] >diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py >b/BaseTools/Source/Python/Workspace/DscBuildData.py >index 9f65ad54257d..bfd203aee805 100644 >--- a/BaseTools/Source/Python/Workspace/DscBuildData.py >+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py >@@ -17,12 +17,12 @@ from Common.StringUtils import * > from Common.DataType import * > from Common.Misc import * > from types import * > from Common.Expression import * > from CommonDataClass.CommonClass import SkuInfoClass >-from Common.TargetTxtClassObject import TargetTxtClassObject >-from Common.ToolDefClassObject import ToolDefClassObject >+from Common.TargetTxtClassObject import TargetTxt >+from Common.ToolDefClassObject import ToolDef > from .MetaDataTable import * > from .MetaFileTable import * > from .MetaFileParser import * > > from .WorkspaceCommon import GetDeclaredPcd >@@ -3259,19 +3259,15 @@ class DscBuildData(PlatformBuildClassObject): > @property > def ToolChainFamily(self): > self._ToolChainFamily = TAB_COMPILER_MSFT > BuildConfigurationFile = >os.path.normpath(os.path.join(GlobalData.gConfDirectory, "target.txt")) > if os.path.isfile(BuildConfigurationFile) == True: >- TargetTxt = TargetTxtClassObject() >- TargetTxt.LoadTargetTxtFile(BuildConfigurationFile) > ToolDefinitionFile = >TargetTxt.TargetTxtDictionary[DataType.TAB_TAT_DEFINES_TOOL_CHAIN_C >ONF] > if ToolDefinitionFile == '': > ToolDefinitionFile = "tools_def.txt" > ToolDefinitionFile = > os.path.normpath(mws.join(self.WorkspaceDir, >'Conf', ToolDefinitionFile)) > if os.path.isfile(ToolDefinitionFile) == True: >- ToolDef = ToolDefClassObject() >- ToolDef.LoadToolDefFile(ToolDefinitionFile) > ToolDefinition = ToolDef.ToolsDefTxtDatabase > if TAB_TOD_DEFINES_FAMILY not in ToolDefinition \ > or self._Toolchain not in > ToolDefinition[TAB_TOD_DEFINES_FAMILY] >\ > or not > ToolDefinition[TAB_TOD_DEFINES_FAMILY][self._Toolchain]: > self._ToolChainFamily = TAB_COMPILER_MSFT >diff --git a/BaseTools/Source/Python/build/build.py >b/BaseTools/Source/Python/build/build.py >index 8c3315619afa..5e13453a1254 100644 >--- a/BaseTools/Source/Python/build/build.py >+++ b/BaseTools/Source/Python/build/build.py >@@ -28,12 +28,12 @@ import threading > from optparse import OptionParser > from subprocess import * > from Common import Misc as Utils > > from Common.LongFilePathSupport import OpenLongFilePath as open >-from Common.TargetTxtClassObject import TargetTxtClassObject >-from Common.ToolDefClassObject import ToolDefClassObject >+from Common.TargetTxtClassObject import TargetTxt >+from Common.ToolDefClassObject import ToolDef > from Common.DataType import * > from Common.BuildVersion import gBUILD_VERSION > from AutoGen.AutoGen import * > from Common.BuildToolError import * > from Workspace.WorkspaceDatabase import WorkspaceDatabase >@@ -714,12 +714,12 @@ class Build(): > if self.SkuId: > GlobalData.gSKUID_CMD = self.SkuId > self.ConfDirectory = BuildOptions.ConfDirectory > self.SpawnMode = True > self.BuildReport = BuildReport(BuildOptions.ReportFile, >BuildOptions.ReportType) >- self.TargetTxt = TargetTxtClassObject() >- self.ToolDef = ToolDefClassObject() >+ self.TargetTxt = TargetTxt >+ self.ToolDef = ToolDef > self.AutoGenTime = 0 > self.MakeTime = 0 > self.GenFdsTime = 0 > GlobalData.BuildOptionPcd = BuildOptions.OptionPcd if >BuildOptions.OptionPcd else [] > #Set global flag for build mode >@@ -813,12 +813,12 @@ class Build(): > EdkLogger.quiet("%-16s = %s" % ("PREBUILD", self.Prebuild)) > if self.Postbuild: > EdkLogger.quiet("%-16s = %s" % ("POSTBUILD", self.Postbuild)) > if self.Prebuild: > self.LaunchPrebuild() >- self.TargetTxt = TargetTxtClassObject() >- self.ToolDef = ToolDefClassObject() >+ self.TargetTxt = TargetTxt >+ self.ToolDef = ToolDef > if not (self.LaunchPrebuildFlag and >os.path.exists(self.PlatformBuildPath)): > self.InitBuild() > > EdkLogger.info("") > os.chdir(self.WorkspaceDir) >@@ -826,27 +826,10 @@ class Build(): > ## Load configuration > # > # This method will parse target.txt and get the build configurations. > # > def LoadConfiguration(self): >- # >- # Check target.txt and tools_def.txt and Init them >- # >- BuildConfigurationFile = >os.path.normpath(os.path.join(GlobalData.gConfDirectory, >gBuildConfiguration)) >- if os.path.isfile(BuildConfigurationFile) == True: >- StatusCode = >self.TargetTxt.LoadTargetTxtFile(BuildConfigurationFile) >- >- ToolDefinitionFile = >self.TargetTxt.TargetTxtDictionary[TAB_TAT_DEFINES_TOOL_CHAIN_CONF] >- if ToolDefinitionFile == '': >- ToolDefinitionFile = gToolsDefinition >- ToolDefinitionFile = >os.path.normpath(mws.join(self.WorkspaceDir, >'Conf', ToolDefinitionFile)) >- if os.path.isfile(ToolDefinitionFile) == True: >- StatusCode = self.ToolDef.LoadToolDefFile(ToolDefinitionFile) >- else: >- EdkLogger.error("build", FILE_NOT_FOUND, >ExtraData=ToolDefinitionFile) >- else: >- EdkLogger.error("build", FILE_NOT_FOUND, >ExtraData=BuildConfigurationFile) > > # if no ARCH given in command line, get it from target.txt > if not self.ArchList: > self.ArchList = >self.TargetTxt.TargetTxtDictionary[TAB_TAT_DEFINES_TARGET_ARCH] > self.ArchList = tuple(self.ArchList) >-- >2.20.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#43589): https://edk2.groups.io/g/devel/message/43589 Mute This Topic: https://groups.io/mt/32239607/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-