## @file\r
# generate flash image\r
#\r
-# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
#\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
from Common.Misc import SaveFileOnChange\r
from Common.Misc import ClearDuplicatedInf\r
from Common.Misc import GuidStructureStringToGuidString\r
-from Common.Misc import CheckPcdDatum\r
-from Common.Misc import BuildOptionPcdValueFormat\r
from Common.BuildVersion import gBUILD_VERSION\r
from Common.MultipleWorkspace import MultipleWorkspace as mws\r
import FfsFileStatement\r
else:\r
EdkLogger.error("GenFds", OPTION_MISSING, "Missing active platform")\r
\r
+ GlobalData.BuildOptionPcd = Options.OptionPcd if Options.OptionPcd else {}\r
GenFdsGlobalVariable.ActivePlatform = PathClass(NormPath(ActivePlatform))\r
\r
if (Options.ConfDirectory):\r
# Get standard WORKSPACE/Conf, use the absolute path to the WORKSPACE/Conf\r
ConfDirectoryPath = mws.join(GenFdsGlobalVariable.WorkSpaceDir, 'Conf')\r
GenFdsGlobalVariable.ConfDir = ConfDirectoryPath\r
+ if not GlobalData.gConfDirectory:\r
+ GlobalData.gConfDirectory = GenFdsGlobalVariable.ConfDir\r
BuildConfigurationFile = os.path.normpath(os.path.join(ConfDirectoryPath, "target.txt"))\r
if os.path.isfile(BuildConfigurationFile) == True:\r
TargetTxt = TargetTxtClassObject.TargetTxtClassObject()\r
else:\r
parser.error("Option %s only allows one instance in command line!" % option)\r
\r
-def CheckBuildOptionPcd():\r
- for Arch in GenFdsGlobalVariable.ArchList:\r
- PkgList = GenFdsGlobalVariable.WorkSpace.GetPackageList(GenFdsGlobalVariable.ActivePlatform, Arch, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag)\r
- for i, pcd in enumerate(GlobalData.BuildOptionPcd):\r
- if type(pcd) is tuple:\r
- continue\r
- (pcdname, pcdvalue) = pcd.split('=')\r
- if not pcdvalue:\r
- EdkLogger.error('GenFds', OPTION_MISSING, "No Value specified for the PCD %s." % (pcdname))\r
- if '.' in pcdname:\r
- (TokenSpaceGuidCName, TokenCName) = pcdname.split('.')\r
- HasTokenSpace = True\r
- else:\r
- TokenCName = pcdname\r
- TokenSpaceGuidCName = ''\r
- HasTokenSpace = False\r
- TokenSpaceGuidCNameList = []\r
- FoundFlag = False\r
- PcdDatumType = ''\r
- NewValue = ''\r
- for package in PkgList:\r
- for key in package.Pcds:\r
- PcdItem = package.Pcds[key]\r
- if HasTokenSpace:\r
- if (PcdItem.TokenCName, PcdItem.TokenSpaceGuidCName) == (TokenCName, TokenSpaceGuidCName):\r
- PcdDatumType = PcdItem.DatumType\r
- NewValue = BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName, PcdDatumType, pcdvalue)\r
- FoundFlag = True\r
- else:\r
- if PcdItem.TokenCName == TokenCName:\r
- if not PcdItem.TokenSpaceGuidCName in TokenSpaceGuidCNameList:\r
- if len (TokenSpaceGuidCNameList) < 1:\r
- TokenSpaceGuidCNameList.append(PcdItem.TokenSpaceGuidCName)\r
- PcdDatumType = PcdItem.DatumType\r
- TokenSpaceGuidCName = PcdItem.TokenSpaceGuidCName\r
- NewValue = BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName, PcdDatumType, pcdvalue)\r
- FoundFlag = True\r
- else:\r
- EdkLogger.error(\r
- 'GenFds',\r
- PCD_VALIDATION_INFO_ERROR,\r
- "The Pcd %s is found under multiple different TokenSpaceGuid: %s and %s." % (TokenCName, PcdItem.TokenSpaceGuidCName, TokenSpaceGuidCNameList[0])\r
- )\r
-\r
- GlobalData.BuildOptionPcd[i] = (TokenSpaceGuidCName, TokenCName, NewValue)\r
-\r
-\r
## FindExtendTool()\r
#\r
# Find location of tools to process data\r
ToolOptionKey = None\r
KeyList = None\r
for ToolDef in ToolDefinition.items():\r
- if NameGuid == ToolDef[1]:\r
+ if NameGuid.lower() == ToolDef[1].lower() :\r
KeyList = ToolDef[0].split('_')\r
Key = KeyList[0] + \\r
'_' + \\r