When a custom compiler (as added by QMAKE_EXTRA_COMPILERS) produces as output a C++ source file with extension other than .cpp, and adds it to GENERATED_SOURCES variable, qmake vcxproj generator adds it to Generated Files folder of the project, but the file doesn't in fact get compiled.
For example, Google protobuf compiler (protoc) generates source files with .cc extensions.
The problem appears to be in VCXProjectWriter::outputFileConfig in msbuild_objectmodel.cc. There's a special case there (look for filePath.endsWith(".cpp") ) that generates ClCompile tag, while for other extensions CustomBuild tag is generated - but no actual custom action, so the file doesn't get compiled at all.
The logic here should probably agree with that of VcprojGenerator::hasBuiltinCompiler, which uses Option::cpp_ext to check for C++ sources.