我定义了一个生成覆盖文件的操作,它需要一些选项。
actions coverage {
echo coverage $(OPTIONS) >> $(<)
}
我需要一个规则来设置$(OPTIONS)
变量:
rule coverage ( targets * : sources * : properties * ) {
OPTIONS on $(targets) = ... # Get from environment variables
}
完成后,我可以使用规则生成覆盖文件:
make cov.xml : : @coverage ;
我想要的是第二条规则($(OPTIONS)
以不同的方式计算变量),它使用相同的动作。在不复制动作本身的情况下这可能吗?换句话说,是否可以将两个规则与同一个动作相关联?
我想要的是这样的:
actions coverage-from-features {
# AVOID HAVING TO REPEAT THIS
echo coverage $(OPTIONS) >> $(<)
}
rule coverage-from-features ( targets * : sources * : properties * ) {
OPTIONS on $(targets) = ... # Get from feature values
}
make cov2.xml : : @coverage-from-features ;
显然,无需重复操作命令本身(DRY 和所有这些)。