mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-01 03:45:29 +00:00
In XSL a string variable can be nul, the empty string or a non-empty string. While `$var != ''` ensures that `var` is a non-empty string, `$var = ''` is true only when `var` holds the empty string. In other words, `$var = ''` and `$var != ''` can be both false if `var` evaluates to nul. As a result, the config.h/config.mk generating scripts does not use the given default value if the explicit value is nul. This patch fixes the incorrect comparison in the XSL scripts that handles default values, so that the default value behaves as expected. Tracked-On: #6355 Signed-off-by: Junjie Mao <junjie.mao@intel.com>
83 lines
2.4 KiB
XML
83 lines
2.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
<!-- Copyright (C) 2021 Intel Corporation. All rights reserved. -->
|
|
<!-- SPDX-License-Identifier: BSD-3-Clause -->
|
|
|
|
<xsl:stylesheet
|
|
version="1.0"
|
|
xmlns:xi="http://www.w3.org/2003/XInclude"
|
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
xmlns:math="http://exslt.org/math"
|
|
xmlns:exslt="http://exslt.org/common"
|
|
xmlns:acrn="http://projectacrn.org">
|
|
<xsl:include href="lib.xsl" />
|
|
<xsl:output method="text" />
|
|
|
|
<xsl:variable name="integer-suffix" select="'U'" />
|
|
|
|
<xi:include href="config_common.xsl" xpointer="xpointer(id('config_common')/*)" />
|
|
|
|
<xsl:template match="/acrn-offline-data">
|
|
<xsl:text>#ifndef CONFIG_H
</xsl:text>
|
|
<xsl:text>#define CONFIG_H
</xsl:text>
|
|
|
|
<xsl:apply-templates select="board-data/acrn-config" />
|
|
<xsl:apply-templates select="config-data/acrn-config" />
|
|
|
|
<xsl:text>#endif
</xsl:text>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="entry-by-key-value">
|
|
<xsl:param name="prefix" />
|
|
<xsl:param name="key" />
|
|
<xsl:param name="value" />
|
|
<xsl:param name="default" />
|
|
|
|
<xsl:text>#define </xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$prefix != ''">
|
|
<xsl:value-of select="$prefix" />
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:text>CONFIG_</xsl:text>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:value-of select="$key" />
|
|
<xsl:text> </xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$value != ''">
|
|
<xsl:value-of select="$value" />
|
|
<xsl:text>
</xsl:text>
|
|
</xsl:when>
|
|
<xsl:when test="$default != ''">
|
|
<xsl:text> </xsl:text>
|
|
<xsl:value-of select="$default" />
|
|
<xsl:text>
</xsl:text>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="boolean-by-key-value">
|
|
<xsl:param name="key" />
|
|
<xsl:param name="value" />
|
|
|
|
<xsl:if test="$value = 'y'">
|
|
<xsl:call-template name="entry-by-key-value">
|
|
<xsl:with-param name="key" select="$key" />
|
|
<xsl:with-param name="value" select="1" />
|
|
</xsl:call-template>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="string-by-key-value">
|
|
<xsl:param name="key" />
|
|
<xsl:param name="value" />
|
|
|
|
<xsl:call-template name="entry-by-key-value">
|
|
<xsl:with-param name="key" select="$key" />
|
|
<xsl:with-param name="value" select="concat('"', $value, '"')" />
|
|
</xsl:call-template>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|