Just wanted to mention a way that we are currently simulating keyword arguments:
rule my-rule ( arg1 : arg2 : options * )
{
local some-option = [ feature.get-values <some-option> : $(options) ] ;
if some-value in $(some-option)
{
do-some-special-thing $(arg1) ;
}
}
Which can then be called like so:
my-rule hello.cpp : hello.tr : <some-option>some-value <other-option>hello_world ;
It works really well as the build system supports it, however, I think it has a tendency
to confuse some developers as they are already confused about features/properties.
They tend to think the options passed are actually features/properties.
Aaron