Sync BaseTool trunk (version r2599) into EDKII BaseTools.
Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Heshen Chen <chen.heshen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14591 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -293,12 +293,13 @@ class WorkspaceAutoGen(AutoGen):
|
||||
Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]
|
||||
|
||||
DecPcds = {}
|
||||
DecPcdsKey = set()
|
||||
PGen = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
|
||||
Pkgs = PGen.PackageList
|
||||
for Pkg in Pkgs:
|
||||
for Pcd in Pkg.Pcds:
|
||||
DecPcds[Pcd[0], Pcd[1]] = Pkg.Pcds[Pcd]
|
||||
Platform.IsPlatformPcdDeclared(DecPcds)
|
||||
DecPcdsKey.add((Pcd[0], Pcd[1], Pcd[2]))
|
||||
|
||||
Platform.SkuName = self.SkuId
|
||||
for Name, Guid in PcdSet:
|
||||
@@ -310,7 +311,21 @@ class WorkspaceAutoGen(AutoGen):
|
||||
File = self.FdfProfile.PcdFileLineDict[Name, Guid][0],
|
||||
Line = self.FdfProfile.PcdFileLineDict[Name, Guid][1]
|
||||
)
|
||||
Platform.AddPcd(Name, Guid, PcdSet[Name, Guid])
|
||||
else:
|
||||
# Check whether Dynamic or DynamicEx PCD used in FDF file. If used, build break and give a error message.
|
||||
if (Name, Guid, TAB_PCDS_FIXED_AT_BUILD) in DecPcdsKey \
|
||||
or (Name, Guid, TAB_PCDS_PATCHABLE_IN_MODULE) in DecPcdsKey \
|
||||
or (Name, Guid, TAB_PCDS_FEATURE_FLAG) in DecPcdsKey:
|
||||
Platform.AddPcd(Name, Guid, PcdSet[Name, Guid])
|
||||
continue
|
||||
elif (Name, Guid, TAB_PCDS_DYNAMIC) in DecPcdsKey or (Name, Guid, TAB_PCDS_DYNAMIC_EX) in DecPcdsKey:
|
||||
EdkLogger.error(
|
||||
'build',
|
||||
PARSER_ERROR,
|
||||
"Using Dynamic or DynamicEx type of PCD [%s.%s] in FDF file is not allowed." % (Guid, Name),
|
||||
File = self.FdfProfile.PcdFileLineDict[Name, Guid][0],
|
||||
Line = self.FdfProfile.PcdFileLineDict[Name, Guid][1]
|
||||
)
|
||||
|
||||
Pa = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
|
||||
#
|
||||
|
@@ -2043,7 +2043,8 @@ def CreateHeaderCode(Info, AutoGenC, AutoGenH):
|
||||
if 'PcdLib' in Info.Module.LibraryClasses or Info.Module.Pcds:
|
||||
AutoGenH.Append("#include <Library/PcdLib.h>\n")
|
||||
|
||||
AutoGenH.Append('\nextern GUID gEfiCallerIdGuid;\n\n')
|
||||
AutoGenH.Append('\nextern GUID gEfiCallerIdGuid;')
|
||||
AutoGenH.Append('\nextern CHAR8 *gEfiCallerBaseName;\n\n')
|
||||
|
||||
if Info.IsLibrary:
|
||||
return
|
||||
@@ -2066,6 +2067,7 @@ def CreateHeaderCode(Info, AutoGenC, AutoGenH):
|
||||
# Publish the CallerId Guid
|
||||
#
|
||||
AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = %s;\n' % GuidStringToGuidStructureString(Info.Guid))
|
||||
AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "%s";\n' % Info.Name)
|
||||
|
||||
## Create common code for header file
|
||||
#
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
@@ -38,6 +38,9 @@ LF = u'\u000A'
|
||||
NULL = u'\u0000'
|
||||
TAB = u'\t'
|
||||
BACK_SPLASH = u'\\'
|
||||
DOBULE_QUOTED_SPLASH = u'\\"'
|
||||
SIGLE_QUOTED_SPLASH = u"\\'"
|
||||
TAB_BACK_SLASH = u"\\/"
|
||||
|
||||
gIncludePattern = re.compile("^#include +[\"<]+([^\"< >]+)[>\"]+$", re.MULTILINE | re.UNICODE)
|
||||
|
||||
@@ -334,11 +337,11 @@ class UniFileClassObject(object):
|
||||
Line = Line.replace(u'/language', u'#language')
|
||||
Line = Line.replace(u'/include', u'#include')
|
||||
|
||||
Line = Line.replace(u'\\\\', u'\u0006')
|
||||
Line = Line.replace(UNICODE_WIDE_CHAR, WIDE_CHAR)
|
||||
Line = Line.replace(UNICODE_NARROW_CHAR, NARROW_CHAR)
|
||||
Line = Line.replace(UNICODE_NON_BREAKING_CHAR, NON_BREAKING_CHAR)
|
||||
|
||||
Line = Line.replace(u'\\\\', u'\u0006')
|
||||
Line = Line.replace(u'\\r\\n', CR + LF)
|
||||
Line = Line.replace(u'\\n', CR + LF)
|
||||
Line = Line.replace(u'\\r', CR)
|
||||
@@ -346,7 +349,10 @@ class UniFileClassObject(object):
|
||||
Line = Line.replace(u'''\"''', u'''"''')
|
||||
Line = Line.replace(u'\t', u' ')
|
||||
Line = Line.replace(u'\u0006', u'\\')
|
||||
|
||||
Line = Line.replace(DOBULE_QUOTED_SPLASH, u'"')
|
||||
Line = Line.replace(SIGLE_QUOTED_SPLASH, u"'")
|
||||
Line = Line.replace(TAB_BACK_SLASH, u"/")
|
||||
|
||||
# if Line.find(u'\\x'):
|
||||
# hex = Line[Line.find(u'\\x') + 2 : Line.find(u'\\x') + 6]
|
||||
# hex = "u'\\u" + hex + "'"
|
||||
|
Reference in New Issue
Block a user