}\r
\r
if (token.isDynamicPCD) {\r
- //\r
- // Check datum is equal the datum in dynamic information.\r
- // For dynamic PCD, you can do not write <Value> in sperated every <PcdBuildDefinition> in different <ModuleSA>,\r
- // But if you write, the <Value> must be same as the value in <DynamicPcdBuildDefinitions>.\r
- //\r
- if (!token.isSkuEnable() &&\r
- (token.getDefaultSku().type == DynamicTokenValue.VALUE_TYPE.DEFAULT_TYPE) &&\r
- (datum != null)) {\r
- if (!datum.equalsIgnoreCase(token.getDefaultSku().value)) {\r
- exceptionString = String.format("In the FPD file, for dynamic PCD %s in module %s, the datum in <ModuleSA> is "+\r
- "not equal to the datum type in <DynamicPcdBuildDefinitions>. This is "+\r
- "illega! You cannot set <Value> in <ModuleSA> for a dynamic PCD!",\r
- token.cName,\r
- moduleName);\r
- putError(exceptionString);\r
- //\r
- // Do not break preprocess, continues to analysis.\r
- // All errors will be summary to be shown.\r
- // \r
- continue;\r
- }\r
- }\r
-\r
if ((maxDatumSize != 0) &&\r
(maxDatumSize != token.datumSize)){\r
exceptionString = String.format("In the FPD file, for dynamic PCD %s in module %s, the max datum size is %d which "+\r
\r
token.skuData.add(skuInstance);\r
\r
- //\r
- // Judege wether is same of datum between module's information\r
- // and dynamic information.\r
- //\r
- if (datum != null) {\r
- if ((skuInstance.id == 0) &&\r
- !datum.toString().equalsIgnoreCase(skuInfoList.get(index).getValue().toString())) {\r
- exceptionString = "In the FPD file, for dynamic PCD " + token.cName + ", the value in module " + moduleName + " is " + datum.toString() + " but the "+\r
- "value of SKU 0 data in <DynamicPcdBuildDefinition> is " + skuInstance.value.value + ". They must be same!"+\r
- " Also, you cannot define a value for a dynamic PCD in the <ModuleSA> section!";\r
- putError(exceptionString);\r
- return null;\r
- }\r
- }\r
continue;\r
}\r
\r