I'm using a third party code generation tool that produces source files with a non-standard extension, and there is no option to change it. For simplicity I'll use the example of a .foo file generates a .bar file (a cpp source file).

I can add a custom cpp extension with:

type.register BAR : bar : CPP ;

Which builds things like source.bar in exe rules just like I expect.

And I can add a custom rule for the code generation with:

type.register FOO : foo ;
generators.register-standard test.baz : FOO : CPP ;

Which builds things like input.foo in exe rules like I expect (just with the wrong extension).

But when I try to combine them into:

type.register FOO : foo ;
type.register BAR : bar : CPP ;
generators.register-standard test.baz : FOO : BAR ;

Now input.foo in an exe rule doesn't do anything at all. No errors, it just never triggers any actions. Any suggestions?