How to hook a new IDL generator
I'm trying to understand how to add a new generator for the Ada language. I've been trying to make sense of the different CMake files in the different packages, ament, rosidl, etc. I've also checked the case of the rosidl_java_generator. Still, I have a general idea of what's happening but I'm failing to pin down the details. Two questions:
I see that the java case requires patching the CMakeLists.txt and package.xml of the rosidl_default_generators package. Is this mandatory? I.e., cannot one add a new generator in a new package without having to patch other people's packages?
Be it possible or not, I'm failing to understand when/how exactly a new generator is called and what information it receives. I guess at some point dependencies are added to the .msg files on some cmake targets, but I have not found where. Any help with these questions will be much appreciated, thanks.