If you have qt_add_qml_module() 2 or more times and OUTPUT_DIRECTORY is not specified then you get an error when running CMake.
fails to configure with the error:
Looking through the code in Qt6QmlMacros.cmake, I see that if OUTPUT_DIRECTORY is not provided, the default is the build root.
My suggestion to solve this issue is for the default to be changed to build-root/backing-target.
i.e. equivalent to me explicitly putting OUTPUT_DIRECTORY CommonAnimals and OUTPUT_DIRECTORY Bird respectively in my example above.
This would avoid directory clashes. I have been able to configure and build using this but there may be other side-effects I haven't considered.