Você só precisa aprender a linguagem CMake. É a linguagem dos arquivos CMakeListes.txt que estão em todo o projeto.
Esta linguagem especifica como construir o projeto. E essa linguagem é independente do QtCreator IDE que estamos usando. Então, você pode fazer builds sem o QtCreator e criar manualmente o CMakeListes.txt onde desejar.
Voltar para o problema:
Você pode usar 'add_subdirectory' e escrever CMakeListes.txt para cada subdiretório e acrescentar nomes de arquivos à variável QML_JS_FILES em cada CMakeListes.txt.
Mas você também pode fazer como os caras que desenvolvem o aplicativo principal: por exemplo, no ubuntu-terminal-app (o código-fonte está no link ) , eles usam uma inclusão recursiva em app / CMakeListes.txt:
file(GLOB_RECURSE QML_JS_FILES *.qml *.js)
em vez de não recursivo:
file(GLOB QML_JS_FILES *.qml *.js)
update: Sim, geralmente, os GLOBs não são recomendados, mas eles já estão nos modelos de projeto para simular algum tipo de comportamento 'automático'.