Index: engine.py =================================================================== --- engine.py (revision 75545) +++ engine.py (working copy) @@ -132,7 +132,12 @@ bjam_flags = reduce(operator.or_, (action_modifiers[flag] for flag in flags), 0) - bjam_interface.define_action(action_name, command, bound_list, bjam_flags) + # We allow command to be empty so that we can define 'action' as pure + # python function that would do some conditional logic and then relay + # to other actions. + assert command or function + if command: + bjam_interface.define_action(action_name, command, bound_list, bjam_flags) self.actions[action_name] = BjamAction(action_name, function)