Re: [edk2] [Patch] BaseTools: Support QuotedString for PREBUILD/POSTBUILD in DSC file

2016-12-01 Thread Gao, Liming
Reviewed-by: Liming Gao 

-Original Message-
From: Zhu, Yonghong 
Sent: Wednesday, November 30, 2016 4:24 PM
To: edk2-devel@lists.01.org
Cc: Gao, Liming 
Subject: [Patch] BaseTools: Support QuotedString for PREBUILD/POSTBUILD in DSC 
file

If the prebuild/postbuild script statement start with double quotations, 
current tool report error, while DSC spec allow this usage. so update tool to 
support it.

Cc: Liming Gao 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu 
---
 BaseTools/Source/Python/Workspace/WorkspaceDatabase.py | 16 ++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py 
b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
index 46179a3..e7bc87d 100644
--- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
+++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
@@ -229,13 +229,25 @@ class DscBuildData(PlatformBuildClassObject):
 ErrorCode, ErrorInfo = self._FlashDefinition.Validate('.fdf')
 if ErrorCode != 0:
 EdkLogger.error('build', ErrorCode, File=self.MetaFile, 
Line=Record[-1],
 ExtraData=ErrorInfo)
 elif Name == TAB_DSC_PREBUILD:
-self._Prebuild = PathClass(NormPath(Record[2], self._Macros), 
GlobalData.gWorkspace)
+PrebuildValue = Record[2]
+if Record[2][0] == '"':
+if Record[2][-1] != '"':
+EdkLogger.error('build', FORMAT_INVALID, 'Missing 
double quotes in the end of %s statement.' % TAB_DSC_PREBUILD,
+File=self.MetaFile, Line=Record[-1])
+PrebuildValue = Record[2][1:-1]
+self._Prebuild = PathClass(NormPath(PrebuildValue, 
+ self._Macros), GlobalData.gWorkspace)
 elif Name == TAB_DSC_POSTBUILD:
-self._Postbuild = PathClass(NormPath(Record[2], self._Macros), 
GlobalData.gWorkspace)
+PostbuildValue = Record[2]
+if Record[2][0] == '"':
+if Record[2][-1] != '"':
+EdkLogger.error('build', FORMAT_INVALID, 'Missing 
double quotes in the end of %s statement.' % TAB_DSC_POSTBUILD,
+File=self.MetaFile, Line=Record[-1])
+PostbuildValue = Record[2][1:-1]
+self._Postbuild = PathClass(NormPath(PostbuildValue, 
+ self._Macros), GlobalData.gWorkspace)
 elif Name == TAB_DSC_DEFINES_SUPPORTED_ARCHITECTURES:
 self._SupArchList = GetSplitValueList(Record[2], 
TAB_VALUE_SPLIT)
 elif Name == TAB_DSC_DEFINES_BUILD_TARGETS:
 self._BuildTargets = GetSplitValueList(Record[2])
 elif Name == TAB_DSC_DEFINES_SKUID_IDENTIFIER:
--
2.6.1.windows.1

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


[edk2] [Patch] BaseTools: Support QuotedString for PREBUILD/POSTBUILD in DSC file

2016-11-30 Thread Yonghong Zhu
If the prebuild/postbuild script statement start with double quotations,
current tool report error, while DSC spec allow this usage. so update
tool to support it.

Cc: Liming Gao 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu 
---
 BaseTools/Source/Python/Workspace/WorkspaceDatabase.py | 16 ++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py 
b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
index 46179a3..e7bc87d 100644
--- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
+++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
@@ -229,13 +229,25 @@ class DscBuildData(PlatformBuildClassObject):
 ErrorCode, ErrorInfo = self._FlashDefinition.Validate('.fdf')
 if ErrorCode != 0:
 EdkLogger.error('build', ErrorCode, File=self.MetaFile, 
Line=Record[-1],
 ExtraData=ErrorInfo)
 elif Name == TAB_DSC_PREBUILD:
-self._Prebuild = PathClass(NormPath(Record[2], self._Macros), 
GlobalData.gWorkspace)
+PrebuildValue = Record[2]
+if Record[2][0] == '"':
+if Record[2][-1] != '"':
+EdkLogger.error('build', FORMAT_INVALID, 'Missing 
double quotes in the end of %s statement.' % TAB_DSC_PREBUILD,
+File=self.MetaFile, Line=Record[-1])
+PrebuildValue = Record[2][1:-1]
+self._Prebuild = PathClass(NormPath(PrebuildValue, 
self._Macros), GlobalData.gWorkspace)
 elif Name == TAB_DSC_POSTBUILD:
-self._Postbuild = PathClass(NormPath(Record[2], self._Macros), 
GlobalData.gWorkspace)
+PostbuildValue = Record[2]
+if Record[2][0] == '"':
+if Record[2][-1] != '"':
+EdkLogger.error('build', FORMAT_INVALID, 'Missing 
double quotes in the end of %s statement.' % TAB_DSC_POSTBUILD,
+File=self.MetaFile, Line=Record[-1])
+PostbuildValue = Record[2][1:-1]
+self._Postbuild = PathClass(NormPath(PostbuildValue, 
self._Macros), GlobalData.gWorkspace)
 elif Name == TAB_DSC_DEFINES_SUPPORTED_ARCHITECTURES:
 self._SupArchList = GetSplitValueList(Record[2], 
TAB_VALUE_SPLIT)
 elif Name == TAB_DSC_DEFINES_BUILD_TARGETS:
 self._BuildTargets = GetSplitValueList(Record[2])
 elif Name == TAB_DSC_DEFINES_SKUID_IDENTIFIER:
-- 
2.6.1.windows.1

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