from Common.Misc import tdict, PathClass\r
from Common.StringUtils import NormPath\r
from Common.DataType import *\r
+from Common.TargetTxtClassObject import TargetTxt\r
+gDefaultBuildRuleFile = 'build_rule.txt'\r
+AutoGenReqBuildRuleVerNum = '0.1'\r
\r
import Common.EdkLogger as EdkLogger\r
\r
_UnknownSection : SkipSection,\r
}\r
\r
+def GetBuildRule():\r
+ BuildRuleFile = None\r
+ if TAB_TAT_DEFINES_BUILD_RULE_CONF in TargetTxt.TargetTxtDictionary:\r
+ BuildRuleFile = TargetTxt.TargetTxtDictionary[TAB_TAT_DEFINES_BUILD_RULE_CONF]\r
+ if not BuildRuleFile:\r
+ BuildRuleFile = gDefaultBuildRuleFile\r
+ RetVal = BuildRule(BuildRuleFile)\r
+ if RetVal._FileVersion == "":\r
+ RetVal._FileVersion = AutoGenReqBuildRuleVerNum\r
+ else:\r
+ if RetVal._FileVersion < AutoGenReqBuildRuleVerNum :\r
+ # If Build Rule's version is less than the version number required by the tools, halting the build.\r
+ EdkLogger.error("build", AUTOGEN_ERROR,\r
+ 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])"\\r
+ % (RetVal._FileVersion, AutoGenReqBuildRuleVerNum))\r
+ return RetVal\r
+\r
+BuildRuleObj = GetBuildRule()\r
+\r
# This acts like the main() function for the script, unless it is 'import'ed into another\r
# script.\r
if __name__ == '__main__':\r