# Arg1: List of conditions to generate block for
# Arg2: List of variables containing rules to add
defineTest(addMMPRules) {
    unset(myConditions)
    unset(myVariables)
    unset(myIfDef)

    myConditions = $$eval($$1) default
    myVariables = $$eval($$2)
    myIfDef = if

    for(condition, $$list($$myConditions)) {
        contains(condition, default) {
            libBlock = "$${LITERAL_HASH}else"
        } else {
            libBlock = "$${LITERAL_HASH}$${myIfDef} defined($${condition})"
            myIfDef = elif
        }

        for(var, $$list($$myVariables)) {
            varVal = $$eval($${var}.$${condition})
            isEmpty(varVal) {
                # No value defined for current condition, so use default
                varVal = $$eval($${var}.default)
            }
            !isEmpty(varVal): libBlock += "$$join(varVal,$$escape_expand(\n))"
        }

        MMP_RULES += $$libBlock
    }
    MMP_RULES += "$${LITERAL_HASH}endif"
    export(MMP_RULES)
}
