34 lines
993 B
Plaintext
34 lines
993 B
Plaintext
|
# 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)
|
||
|
}
|