* [Patch] BaseTools: Fix a bug use 'COMMON' as CodeBase in BuildOptions section
@ 2016-08-17 11:10 Yonghong Zhu
2016-08-19 5:26 ` Gao, Liming
0 siblings, 1 reply; 2+ messages in thread
From: Yonghong Zhu @ 2016-08-17 11:10 UTC (permalink / raw)
To: edk2-devel; +Cc: Liming Gao, Kurt Kennett
Current BaseTools query the BuildOptions not cover the case that use
'COMMON' as CodeBase, while DSC spec allow this usage. This Patch add
support for such 'common.DXE_RUNTIME_DRIVER' as the Scope2 in the query
Condition.
Cc: Liming Gao <liming.gao@intel.com>
Cc: Kurt Kennett <Kurt.Kennett@microsoft.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
BaseTools/Source/Python/Workspace/MetaFileTable.py | 8 +++++++-
BaseTools/Source/Python/Workspace/WorkspaceDatabase.py | 3 ++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/BaseTools/Source/Python/Workspace/MetaFileTable.py b/BaseTools/Source/Python/Workspace/MetaFileTable.py
index ab18070..aedcaca 100644
--- a/BaseTools/Source/Python/Workspace/MetaFileTable.py
+++ b/BaseTools/Source/Python/Workspace/MetaFileTable.py
@@ -339,11 +339,17 @@ class PlatformTable(MetaFileTable):
ValueString = "Value1,Value2,Value3,Scope1,Scope2,ID,StartLine"
if Scope1 != None and Scope1 != 'COMMON':
ConditionString += " AND (Scope1='%s' OR Scope1='COMMON')" % Scope1
if Scope2 != None and Scope2 != 'COMMON':
- ConditionString += " AND (Scope2='%s' OR Scope2='COMMON' OR Scope2='DEFAULT')" % Scope2
+ # Cover the case that CodeBase is 'COMMON' for BuildOptions section
+ if '.' in Scope2:
+ Index = Scope2.index('.')
+ NewScope = 'COMMON'+ Scope2[Index:]
+ ConditionString += " AND (Scope2='%s' OR Scope2='COMMON' OR Scope2='DEFAULT' OR Scope2='%s')" % (Scope2, NewScope)
+ else:
+ ConditionString += " AND (Scope2='%s' OR Scope2='COMMON' OR Scope2='DEFAULT')" % Scope2
if BelongsToItem != None:
ConditionString += " AND BelongsToItem=%s" % BelongsToItem
else:
ConditionString += " AND BelongsToItem<0"
diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
index 86d8c32..ceaa4b8 100644
--- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
+++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
@@ -800,13 +800,14 @@ class DscBuildData(PlatformBuildClassObject):
self._ModuleTypeOptions = sdict()
if (Edk, ModuleType) not in self._ModuleTypeOptions:
options = sdict()
self._ModuleTypeOptions[Edk, ModuleType] = options
DriverType = '%s.%s' % (Edk, ModuleType)
+ CommonDriverType = '%s.%s' % ('COMMON', ModuleType)
RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, DriverType]
for ToolChainFamily, ToolChain, Option, Arch, Type, Dummy3, Dummy4 in RecordList:
- if Type == DriverType:
+ if Type == DriverType or Type == CommonDriverType:
Key = (ToolChainFamily, ToolChain, Edk)
if Key not in options or not ToolChain.endswith('_FLAGS') or Option.startswith('='):
options[Key] = Option
else:
options[Key] += ' ' + Option
--
2.6.1.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Patch] BaseTools: Fix a bug use 'COMMON' as CodeBase in BuildOptions section
2016-08-17 11:10 [Patch] BaseTools: Fix a bug use 'COMMON' as CodeBase in BuildOptions section Yonghong Zhu
@ 2016-08-19 5:26 ` Gao, Liming
0 siblings, 0 replies; 2+ messages in thread
From: Gao, Liming @ 2016-08-19 5:26 UTC (permalink / raw)
To: Zhu, Yonghong, edk2-devel@lists.01.org
Reviewed-by: Liming Gao <liming.gao@intel.com>
> -----Original Message-----
> From: Zhu, Yonghong
> Sent: Wednesday, August 17, 2016 7:11 PM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>; Kurt Kennett
> <Kurt.Kennett@microsoft.com>
> Subject: [Patch] BaseTools: Fix a bug use 'COMMON' as CodeBase in
> BuildOptions section
>
> Current BaseTools query the BuildOptions not cover the case that use
> 'COMMON' as CodeBase, while DSC spec allow this usage. This Patch add
> support for such 'common.DXE_RUNTIME_DRIVER' as the Scope2 in the
> query
> Condition.
>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Kurt Kennett <Kurt.Kennett@microsoft.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
> BaseTools/Source/Python/Workspace/MetaFileTable.py | 8 +++++++-
> BaseTools/Source/Python/Workspace/WorkspaceDatabase.py | 3 ++-
> 2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/BaseTools/Source/Python/Workspace/MetaFileTable.py
> b/BaseTools/Source/Python/Workspace/MetaFileTable.py
> index ab18070..aedcaca 100644
> --- a/BaseTools/Source/Python/Workspace/MetaFileTable.py
> +++ b/BaseTools/Source/Python/Workspace/MetaFileTable.py
> @@ -339,11 +339,17 @@ class PlatformTable(MetaFileTable):
> ValueString = "Value1,Value2,Value3,Scope1,Scope2,ID,StartLine"
>
> if Scope1 != None and Scope1 != 'COMMON':
> ConditionString += " AND (Scope1='%s' OR Scope1='COMMON')" %
> Scope1
> if Scope2 != None and Scope2 != 'COMMON':
> - ConditionString += " AND (Scope2='%s' OR Scope2='COMMON' OR
> Scope2='DEFAULT')" % Scope2
> + # Cover the case that CodeBase is 'COMMON' for BuildOptions
> section
> + if '.' in Scope2:
> + Index = Scope2.index('.')
> + NewScope = 'COMMON'+ Scope2[Index:]
> + ConditionString += " AND (Scope2='%s' OR Scope2='COMMON' OR
> Scope2='DEFAULT' OR Scope2='%s')" % (Scope2, NewScope)
> + else:
> + ConditionString += " AND (Scope2='%s' OR Scope2='COMMON' OR
> Scope2='DEFAULT')" % Scope2
>
> if BelongsToItem != None:
> ConditionString += " AND BelongsToItem=%s" % BelongsToItem
> else:
> ConditionString += " AND BelongsToItem<0"
> diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
> b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
> index 86d8c32..ceaa4b8 100644
> --- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
> +++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
> @@ -800,13 +800,14 @@ class DscBuildData(PlatformBuildClassObject):
> self._ModuleTypeOptions = sdict()
> if (Edk, ModuleType) not in self._ModuleTypeOptions:
> options = sdict()
> self._ModuleTypeOptions[Edk, ModuleType] = options
> DriverType = '%s.%s' % (Edk, ModuleType)
> + CommonDriverType = '%s.%s' % ('COMMON', ModuleType)
> RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION,
> self._Arch, DriverType]
> for ToolChainFamily, ToolChain, Option, Arch, Type, Dummy3,
> Dummy4 in RecordList:
> - if Type == DriverType:
> + if Type == DriverType or Type == CommonDriverType:
> Key = (ToolChainFamily, ToolChain, Edk)
> if Key not in options or not ToolChain.endswith('_FLAGS') or
> Option.startswith('='):
> options[Key] = Option
> else:
> options[Key] += ' ' + Option
> --
> 2.6.1.windows.1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-08-19 5:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-17 11:10 [Patch] BaseTools: Fix a bug use 'COMMON' as CodeBase in BuildOptions section Yonghong Zhu
2016-08-19 5:26 ` Gao, Liming
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox