[edk2] [Patch] BaseTools: Fix the bug for CArray PCD override in command line

Yonghong Zhu posted 1 patch 7 years, 5 months ago
Failed in applying to current master (apply log)
BaseTools/Source/Python/AutoGen/AutoGen.py | 29 ++---------------------------
BaseTools/Source/Python/AutoGen/GenMake.py | 12 ++++++++++--
BaseTools/Source/Python/Common/Misc.py     | 26 ++++++++++++++++++++++++++
BaseTools/Source/Python/GenFds/GenFds.py   | 26 +-------------------------
4 files changed, 39 insertions(+), 54 deletions(-)
[edk2] [Patch] BaseTools: Fix the bug for CArray PCD override in command line
Posted by Yonghong Zhu 7 years, 5 months ago
This patch updated the CArray PCD override format from B"{}" to H"{}"
which align to build spec. Besides, it also do the clean up for the
function BuildOptionPcdValueFormat.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Source/Python/AutoGen/AutoGen.py | 29 ++---------------------------
 BaseTools/Source/Python/AutoGen/GenMake.py | 12 ++++++++++--
 BaseTools/Source/Python/Common/Misc.py     | 26 ++++++++++++++++++++++++++
 BaseTools/Source/Python/GenFds/GenFds.py   | 26 +-------------------------
 4 files changed, 39 insertions(+), 54 deletions(-)

diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py
index 8d8957b..736c1ae 100644
--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
@@ -414,20 +414,20 @@ class WorkspaceAutoGen(AutoGen):
                         for key in package.Pcds:
                             PcdItem = package.Pcds[key]
                             if HasTokenSpace:
                                 if (PcdItem.TokenCName, PcdItem.TokenSpaceGuidCName) == (TokenCName, TokenSpaceGuidCName):
                                     PcdDatumType = PcdItem.DatumType
-                                    NewValue = self._BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName, PcdDatumType, pcdvalue)
+                                    NewValue = BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName, PcdDatumType, pcdvalue)
                                     FoundFlag = True
                             else:
                                 if PcdItem.TokenCName == TokenCName:
                                     if not PcdItem.TokenSpaceGuidCName in TokenSpaceGuidCNameList:
                                         if len (TokenSpaceGuidCNameList) < 1:
                                             TokenSpaceGuidCNameList.append(PcdItem.TokenSpaceGuidCName)
                                             PcdDatumType = PcdItem.DatumType
                                             TokenSpaceGuidCName = PcdItem.TokenSpaceGuidCName
-                                            NewValue = self._BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName, PcdDatumType, pcdvalue)
+                                            NewValue = BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName, PcdDatumType, pcdvalue)
                                             FoundFlag = True
                                         else:
                                             EdkLogger.error(
                                                     'build',
                                                      AUTOGEN_ERROR,
@@ -695,35 +695,10 @@ class WorkspaceAutoGen(AutoGen):
         with open(os.path.join(self.BuildDir, 'AutoGen'), 'w+') as file:
             for f in AllWorkSpaceMetaFiles:
                 print >> file, f
         return True
 
-    def _BuildOptionPcdValueFormat(self, TokenSpaceGuidCName, TokenCName, PcdDatumType, Value):
-        if PcdDatumType == 'VOID*':
-            if Value.startswith('L'):
-                if not Value[1]:
-                    EdkLogger.error('build', OPTION_VALUE_INVALID, 'For Void* type PCD, when specify the Value in the command line, please use the following format: "string", L"string", B"{...}"')
-                Value = Value[0] + '"' + Value[1:] + '"'
-            elif Value.startswith('B'):
-                if not Value[1]:
-                    EdkLogger.error('build', OPTION_VALUE_INVALID, 'For Void* type PCD, when specify the Value in the command line, please use the following format: "string", L"string", B"{...}"')
-                Value = Value[1:]
-            else:
-                if not Value[0]:
-                    EdkLogger.error('build', OPTION_VALUE_INVALID, 'For Void* type PCD, when specify the Value in the command line, please use the following format: "string", L"string", B"{...}"')
-                Value = '"' + Value + '"'
-
-        IsValid, Cause = CheckPcdDatum(PcdDatumType, Value)
-        if not IsValid:
-            EdkLogger.error('build', FORMAT_INVALID, Cause, ExtraData="%s.%s" % (TokenSpaceGuidCName, TokenCName))
-        if PcdDatumType == 'BOOLEAN':
-            Value = Value.upper()
-            if Value == 'TRUE' or Value == '1':
-                Value = '1'
-            elif Value == 'FALSE' or Value == '0':
-                Value = '0'
-        return  Value
 
     def _GetMetaFiles(self, Target, Toolchain, Arch):
         AllWorkSpaceMetaFiles = set()
         #
         # add fdf
diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py
index ac24bd8..0f3ddd5 100644
--- a/BaseTools/Source/Python/AutoGen/GenMake.py
+++ b/BaseTools/Source/Python/AutoGen/GenMake.py
@@ -1,9 +1,9 @@
 ## @file
 # Create makefile for MS nmake and GNU make
 #
-# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2017, 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
 # http://opensource.org/licenses/bsd-license.php
 #
@@ -1451,11 +1451,19 @@ class TopLevelMakefile(BuildFile):
             ExtraOption += " --ignore-sources"
 
         if GlobalData.BuildOptionPcd:
             for index, option in enumerate(GlobalData.gCommand):
                 if "--pcd" == option and GlobalData.gCommand[index+1]:
-                    ExtraOption += " --pcd " + GlobalData.gCommand[index+1]
+                    pcdName, pcdValue = GlobalData.gCommand[index+1].split('=')
+                    if pcdValue.startswith('H'):
+                        pcdValue = 'H' + '"' + pcdValue[1:] + '"'
+                        ExtraOption += " --pcd " + pcdName + '=' + pcdValue
+                    elif pcdValue.startswith('L'):
+                        pcdValue = 'L' + '"' + pcdValue[1:] + '"'
+                        ExtraOption += " --pcd " + pcdName + '=' + pcdValue
+                    else:
+                        ExtraOption += " --pcd " + GlobalData.gCommand[index+1]
 
         MakefileName = self._FILE_NAME_[self._FileType]
         SubBuildCommandList = []
         for A in PlatformInfo.ArchList:
             Command = self._MAKE_TEMPLATE_[self._FileType] % {"file":os.path.join("$(BUILD_DIR)", A, MakefileName)}
diff --git a/BaseTools/Source/Python/Common/Misc.py b/BaseTools/Source/Python/Common/Misc.py
index 390ef36..dbb711e 100644
--- a/BaseTools/Source/Python/Common/Misc.py
+++ b/BaseTools/Source/Python/Common/Misc.py
@@ -2060,10 +2060,36 @@ def PackRegistryFormatGuid(Guid):
                 int(Guid[4][-6:-4], 16),
                 int(Guid[4][-4:-2], 16),
                 int(Guid[4][-2:], 16)
                 )
 
+def BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName, PcdDatumType, Value):
+    if PcdDatumType == 'VOID*':
+        if Value.startswith('L'):
+            if not Value[1]:
+                EdkLogger.error("build", FORMAT_INVALID, 'For Void* type PCD, when specify the Value in the command line, please use the following format: "string", L"string", H"{...}"')
+            Value = Value[0] + '"' + Value[1:] + '"'
+        elif Value.startswith('H'):
+            if not Value[1]:
+                EdkLogger.error("build", FORMAT_INVALID, 'For Void* type PCD, when specify the Value in the command line, please use the following format: "string", L"string", H"{...}"')
+            Value = Value[1:]
+        else:
+            if not Value[0]:
+                EdkLogger.error("build", FORMAT_INVALID, 'For Void* type PCD, when specify the Value in the command line, please use the following format: "string", L"string", H"{...}"')
+            Value = '"' + Value + '"'
+
+    IsValid, Cause = CheckPcdDatum(PcdDatumType, Value)
+    if not IsValid:
+        EdkLogger.error("build", FORMAT_INVALID, Cause, ExtraData="%s.%s" % (TokenSpaceGuidCName, TokenCName))
+    if PcdDatumType == 'BOOLEAN':
+        Value = Value.upper()
+        if Value == 'TRUE' or Value == '1':
+            Value = '1'
+        elif Value == 'FALSE' or Value == '0':
+            Value = '0'
+    return  Value
+
 ##
 #
 # 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 aa8c041..277da35 100644
--- a/BaseTools/Source/Python/GenFds/GenFds.py
+++ b/BaseTools/Source/Python/GenFds/GenFds.py
@@ -37,10 +37,11 @@ from Common.String import *
 from Common.Misc import DirCache, PathClass
 from Common.Misc import SaveFileOnChange
 from Common.Misc import ClearDuplicatedInf
 from Common.Misc import GuidStructureStringToGuidString
 from Common.Misc import CheckPcdDatum
+from Common.Misc import BuildOptionPcdValueFormat
 from Common.BuildVersion import gBUILD_VERSION
 from Common.MultipleWorkspace import MultipleWorkspace as mws
 
 ## Version and Copyright
 versionNumber = "1.0" + ' ' + gBUILD_VERSION
@@ -406,35 +407,10 @@ def CheckBuildOptionPcd():
                                             "The Pcd %s is found under multiple different TokenSpaceGuid: %s and %s." % (TokenCName, PcdItem.TokenSpaceGuidCName, TokenSpaceGuidCNameList[0])
                                             )
 
             GlobalData.BuildOptionPcd[i] = (TokenSpaceGuidCName, TokenCName, NewValue)
 
-def BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName, PcdDatumType, Value):
-    if PcdDatumType == 'VOID*':
-        if Value.startswith('L'):
-            if not Value[1]:
-                EdkLogger.error('GenFds', OPTION_VALUE_INVALID, 'For Void* type PCD, when specify the Value in the command line, please use the following format: "string", L"string", B"{...}"')
-            Value = Value[0] + '"' + Value[1:] + '"'
-        elif Value.startswith('B'):
-            if not Value[1]:
-                EdkLogger.error('GenFds', OPTION_VALUE_INVALID, 'For Void* type PCD, when specify the Value in the command line, please use the following format: "string", L"string", B"{...}"')
-            Value = Value[1:]
-        else:
-            if not Value[0]:
-                EdkLogger.error('GenFds', OPTION_VALUE_INVALID, 'For Void* type PCD, when specify the Value in the command line, please use the following format: "string", L"string", B"{...}"')
-            Value = '"' + Value + '"'
-
-    IsValid, Cause = CheckPcdDatum(PcdDatumType, Value)
-    if not IsValid:
-        EdkLogger.error('build', FORMAT_INVALID, Cause, ExtraData="%s.%s" % (TokenSpaceGuidCName, TokenCName))
-    if PcdDatumType == 'BOOLEAN':
-        Value = Value.upper()
-        if Value == 'TRUE' or Value == '1':
-            Value = '1'
-        elif Value == 'FALSE' or Value == '0':
-            Value = '0'
-    return  Value
 
 ## FindExtendTool()
 #
 #  Find location of tools to process data
 #
-- 
2.6.1.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [Patch] BaseTools: Fix the bug for CArray PCD override in command line
Posted by Gao, Liming 7 years, 5 months ago
Reviewed-by: Liming Gao <liming.gao@intel.com>

>-----Original Message-----
>From: Zhu, Yonghong
>Sent: Friday, May 12, 2017 1:12 PM
>To: edk2-devel@lists.01.org
>Cc: Gao, Liming <liming.gao@intel.com>
>Subject: [Patch] BaseTools: Fix the bug for CArray PCD override in command
>line
>
>This patch updated the CArray PCD override format from B"{}" to H"{}"
>which align to build spec. Besides, it also do the clean up for the
>function BuildOptionPcdValueFormat.
>
>Cc: Liming Gao <liming.gao@intel.com>
>Contributed-under: TianoCore Contribution Agreement 1.0
>Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
>---
> BaseTools/Source/Python/AutoGen/AutoGen.py | 29 ++-------------------------
>--
> BaseTools/Source/Python/AutoGen/GenMake.py | 12 ++++++++++--
> BaseTools/Source/Python/Common/Misc.py     | 26
>++++++++++++++++++++++++++
> BaseTools/Source/Python/GenFds/GenFds.py   | 26 +-------------------------
> 4 files changed, 39 insertions(+), 54 deletions(-)
>
>diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py
>b/BaseTools/Source/Python/AutoGen/AutoGen.py
>index 8d8957b..736c1ae 100644
>--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
>+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
>@@ -414,20 +414,20 @@ class WorkspaceAutoGen(AutoGen):
>                         for key in package.Pcds:
>                             PcdItem = package.Pcds[key]
>                             if HasTokenSpace:
>                                 if (PcdItem.TokenCName, PcdItem.TokenSpaceGuidCName)
>== (TokenCName, TokenSpaceGuidCName):
>                                     PcdDatumType = PcdItem.DatumType
>-                                    NewValue =
>self._BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName,
>PcdDatumType, pcdvalue)
>+                                    NewValue =
>BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName,
>PcdDatumType, pcdvalue)
>                                     FoundFlag = True
>                             else:
>                                 if PcdItem.TokenCName == TokenCName:
>                                     if not PcdItem.TokenSpaceGuidCName in
>TokenSpaceGuidCNameList:
>                                         if len (TokenSpaceGuidCNameList) < 1:
>
>TokenSpaceGuidCNameList.append(PcdItem.TokenSpaceGuidCName)
>                                             PcdDatumType = PcdItem.DatumType
>                                             TokenSpaceGuidCName =
>PcdItem.TokenSpaceGuidCName
>-                                            NewValue =
>self._BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName,
>PcdDatumType, pcdvalue)
>+                                            NewValue =
>BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName,
>PcdDatumType, pcdvalue)
>                                             FoundFlag = True
>                                         else:
>                                             EdkLogger.error(
>                                                     'build',
>                                                      AUTOGEN_ERROR,
>@@ -695,35 +695,10 @@ class WorkspaceAutoGen(AutoGen):
>         with open(os.path.join(self.BuildDir, 'AutoGen'), 'w+') as file:
>             for f in AllWorkSpaceMetaFiles:
>                 print >> file, f
>         return True
>
>-    def _BuildOptionPcdValueFormat(self, TokenSpaceGuidCName,
>TokenCName, PcdDatumType, Value):
>-        if PcdDatumType == 'VOID*':
>-            if Value.startswith('L'):
>-                if not Value[1]:
>-                    EdkLogger.error('build', OPTION_VALUE_INVALID, 'For Void* type
>PCD, when specify the Value in the command line, please use the following
>format: "string", L"string", B"{...}"')
>-                Value = Value[0] + '"' + Value[1:] + '"'
>-            elif Value.startswith('B'):
>-                if not Value[1]:
>-                    EdkLogger.error('build', OPTION_VALUE_INVALID, 'For Void* type
>PCD, when specify the Value in the command line, please use the following
>format: "string", L"string", B"{...}"')
>-                Value = Value[1:]
>-            else:
>-                if not Value[0]:
>-                    EdkLogger.error('build', OPTION_VALUE_INVALID, 'For Void* type
>PCD, when specify the Value in the command line, please use the following
>format: "string", L"string", B"{...}"')
>-                Value = '"' + Value + '"'
>-
>-        IsValid, Cause = CheckPcdDatum(PcdDatumType, Value)
>-        if not IsValid:
>-            EdkLogger.error('build', FORMAT_INVALID, Cause, ExtraData="%s.%s" %
>(TokenSpaceGuidCName, TokenCName))
>-        if PcdDatumType == 'BOOLEAN':
>-            Value = Value.upper()
>-            if Value == 'TRUE' or Value == '1':
>-                Value = '1'
>-            elif Value == 'FALSE' or Value == '0':
>-                Value = '0'
>-        return  Value
>
>     def _GetMetaFiles(self, Target, Toolchain, Arch):
>         AllWorkSpaceMetaFiles = set()
>         #
>         # add fdf
>diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py
>b/BaseTools/Source/Python/AutoGen/GenMake.py
>index ac24bd8..0f3ddd5 100644
>--- a/BaseTools/Source/Python/AutoGen/GenMake.py
>+++ b/BaseTools/Source/Python/AutoGen/GenMake.py
>@@ -1,9 +1,9 @@
> ## @file
> # Create makefile for MS nmake and GNU make
> #
>-# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
>+# Copyright (c) 2007 - 2017, 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
> # http://opensource.org/licenses/bsd-license.php
> #
>@@ -1451,11 +1451,19 @@ class TopLevelMakefile(BuildFile):
>             ExtraOption += " --ignore-sources"
>
>         if GlobalData.BuildOptionPcd:
>             for index, option in enumerate(GlobalData.gCommand):
>                 if "--pcd" == option and GlobalData.gCommand[index+1]:
>-                    ExtraOption += " --pcd " + GlobalData.gCommand[index+1]
>+                    pcdName, pcdValue = GlobalData.gCommand[index+1].split('=')
>+                    if pcdValue.startswith('H'):
>+                        pcdValue = 'H' + '"' + pcdValue[1:] + '"'
>+                        ExtraOption += " --pcd " + pcdName + '=' + pcdValue
>+                    elif pcdValue.startswith('L'):
>+                        pcdValue = 'L' + '"' + pcdValue[1:] + '"'
>+                        ExtraOption += " --pcd " + pcdName + '=' + pcdValue
>+                    else:
>+                        ExtraOption += " --pcd " + GlobalData.gCommand[index+1]
>
>         MakefileName = self._FILE_NAME_[self._FileType]
>         SubBuildCommandList = []
>         for A in PlatformInfo.ArchList:
>             Command = self._MAKE_TEMPLATE_[self._FileType] %
>{"file":os.path.join("$(BUILD_DIR)", A, MakefileName)}
>diff --git a/BaseTools/Source/Python/Common/Misc.py
>b/BaseTools/Source/Python/Common/Misc.py
>index 390ef36..dbb711e 100644
>--- a/BaseTools/Source/Python/Common/Misc.py
>+++ b/BaseTools/Source/Python/Common/Misc.py
>@@ -2060,10 +2060,36 @@ def PackRegistryFormatGuid(Guid):
>                 int(Guid[4][-6:-4], 16),
>                 int(Guid[4][-4:-2], 16),
>                 int(Guid[4][-2:], 16)
>                 )
>
>+def BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName,
>PcdDatumType, Value):
>+    if PcdDatumType == 'VOID*':
>+        if Value.startswith('L'):
>+            if not Value[1]:
>+                EdkLogger.error("build", FORMAT_INVALID, 'For Void* type PCD,
>when specify the Value in the command line, please use the following format:
>"string", L"string", H"{...}"')
>+            Value = Value[0] + '"' + Value[1:] + '"'
>+        elif Value.startswith('H'):
>+            if not Value[1]:
>+                EdkLogger.error("build", FORMAT_INVALID, 'For Void* type PCD,
>when specify the Value in the command line, please use the following format:
>"string", L"string", H"{...}"')
>+            Value = Value[1:]
>+        else:
>+            if not Value[0]:
>+                EdkLogger.error("build", FORMAT_INVALID, 'For Void* type PCD,
>when specify the Value in the command line, please use the following format:
>"string", L"string", H"{...}"')
>+            Value = '"' + Value + '"'
>+
>+    IsValid, Cause = CheckPcdDatum(PcdDatumType, Value)
>+    if not IsValid:
>+        EdkLogger.error("build", FORMAT_INVALID, Cause, ExtraData="%s.%s" %
>(TokenSpaceGuidCName, TokenCName))
>+    if PcdDatumType == 'BOOLEAN':
>+        Value = Value.upper()
>+        if Value == 'TRUE' or Value == '1':
>+            Value = '1'
>+        elif Value == 'FALSE' or Value == '0':
>+            Value = '0'
>+    return  Value
>+
> ##
> #
> # 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 aa8c041..277da35 100644
>--- a/BaseTools/Source/Python/GenFds/GenFds.py
>+++ b/BaseTools/Source/Python/GenFds/GenFds.py
>@@ -37,10 +37,11 @@ from Common.String import *
> from Common.Misc import DirCache, PathClass
> from Common.Misc import SaveFileOnChange
> from Common.Misc import ClearDuplicatedInf
> from Common.Misc import GuidStructureStringToGuidString
> from Common.Misc import CheckPcdDatum
>+from Common.Misc import BuildOptionPcdValueFormat
> from Common.BuildVersion import gBUILD_VERSION
> from Common.MultipleWorkspace import MultipleWorkspace as mws
>
> ## Version and Copyright
> versionNumber = "1.0" + ' ' + gBUILD_VERSION
>@@ -406,35 +407,10 @@ def CheckBuildOptionPcd():
>                                             "The Pcd %s is found under multiple different
>TokenSpaceGuid: %s and %s." % (TokenCName,
>PcdItem.TokenSpaceGuidCName, TokenSpaceGuidCNameList[0])
>                                             )
>
>             GlobalData.BuildOptionPcd[i] = (TokenSpaceGuidCName, TokenCName,
>NewValue)
>
>-def BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName,
>PcdDatumType, Value):
>-    if PcdDatumType == 'VOID*':
>-        if Value.startswith('L'):
>-            if not Value[1]:
>-                EdkLogger.error('GenFds', OPTION_VALUE_INVALID, 'For Void* type
>PCD, when specify the Value in the command line, please use the following
>format: "string", L"string", B"{...}"')
>-            Value = Value[0] + '"' + Value[1:] + '"'
>-        elif Value.startswith('B'):
>-            if not Value[1]:
>-                EdkLogger.error('GenFds', OPTION_VALUE_INVALID, 'For Void* type
>PCD, when specify the Value in the command line, please use the following
>format: "string", L"string", B"{...}"')
>-            Value = Value[1:]
>-        else:
>-            if not Value[0]:
>-                EdkLogger.error('GenFds', OPTION_VALUE_INVALID, 'For Void* type
>PCD, when specify the Value in the command line, please use the following
>format: "string", L"string", B"{...}"')
>-            Value = '"' + Value + '"'
>-
>-    IsValid, Cause = CheckPcdDatum(PcdDatumType, Value)
>-    if not IsValid:
>-        EdkLogger.error('build', FORMAT_INVALID, Cause, ExtraData="%s.%s" %
>(TokenSpaceGuidCName, TokenCName))
>-    if PcdDatumType == 'BOOLEAN':
>-        Value = Value.upper()
>-        if Value == 'TRUE' or Value == '1':
>-            Value = '1'
>-        elif Value == 'FALSE' or Value == '0':
>-            Value = '0'
>-    return  Value
>
> ## FindExtendTool()
> #
> #  Find location of tools to process data
> #
>--
>2.6.1.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel