BaseTools: SKU inheritance.

If the SkuB's parent SkuA is not in SKUID_IDENTIFIER, then
make SkuB inherit from SkuA as if the SKUID_INDENTIFIER
is ALL.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: ZhiqiangX Zhao <zhiqiangx.zhao@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py
index 9c9dce4..88ba415 100644
--- a/BaseTools/Source/Python/Workspace/DscBuildData.py
+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
@@ -1334,8 +1334,7 @@
 

         Pcds = AllPcds

         DefaultStoreMgr = DefaultStore(self.DefaultStores)

-        SkuIds = self.SkuIdMgr.AvailableSkuIdSet

-        SkuIds.update({TAB_DEFAULT:0})

+        SkuIds = self.SkuIds

         DefaultStores = {storename for pcdobj in AllPcds.values() for skuobj in pcdobj.SkuInfoList.values() for storename in skuobj.DefaultStoreDict}

 

         S_PcdSet = []

@@ -2145,7 +2144,7 @@
                 CApp = CApp + '  Initialize_%s_%s_%s_%s();\n' % (self.SkuIdMgr.SystemSkuId, TAB_DEFAULT_STORES_DEFAULT, Pcd.TokenSpaceGuidCName, Pcd.TokenCName)

             else:

                 for SkuName in self.SkuIdMgr.SkuOverrideOrder():

-                    if SkuName not in Pcd.SkuOverrideValues:

+                    if SkuName not in self.SkuIdMgr.AvailableSkuIdSet:

                         continue

                     for DefaultStoreName in Pcd.SkuOverrideValues[SkuName]:

                         CApp = CApp + '  Initialize_%s_%s_%s_%s();\n' % (SkuName, DefaultStoreName, Pcd.TokenSpaceGuidCName, Pcd.TokenCName)