O CMakeLists.txt pode depender de um arquivo analisado por uma função?

Sou um pouco novo no CMake, começando pela primeira vez com um projeto maior que consiste em muitos subprojetos.

Por razões específicas (descritas abaixo para os curiosos), eu já tenho um conjunto de arquivos de inclusão que contêm informações sobre os arquivos de origem necessários para cada destino do CMake (lib ou exe) - e, por enquanto, prefiro (re) usar esses arquivos (motivo também descrito abaixo)

Escrever uma função para analisar esses arquivos e adicionar seu conteúdo como arquivos de origem aos destinos foi uma tarefa surpreendentemente fácil.

Mas - agora o Problema: Obviamente, quero que cada um dos destinos CMakeLists.txt dependa do arquivo de inclusão específico, que gera a lista de arquivos de origem, para que as alterações no arquivo de inclusão sejam detectadas como se fossem alterações no CMakeLists.txt em si, mas simplesmente não consigo encontrar nenhuma referência sobre como fazer isso.

N.B .: Encontrei AddFileDependencies, mas é para adicionar dependências nos arquivos de origem, não no CMakeLists.txt. No entanto, o próprio CMake pode descobrir dependências para incluir o arquivo .cmake de alguma forma, então eu imaginei que deveria ser possível.

Antecedentes para os curiosos:
Para este projeto (várias bibliotecas usadas por vários destinos executáveis, todos organizados como subprojetos), eu estava usando o QMake (sem realmente usar o próprio Qt) para configurar makefiles. Com isso, consegui usar o Qt Creator enquanto ainda era capaz de gerar arquivos de solução / projeto do Visual Studioautomagicamente. Também estamos avaliando diferentes IDEs e a escolha ainda não foi feita. Mas o motivo mais importante para usar um gerador como o QMake / CMake não estava sendo forçado a configurar os arquivos do VS para todos esses subprojetos manualmente.

Embora às vezes eu precisasse enganar o QMake para fazer o que eu queria, as coisas correram muito bem - mesmo para a solução VS - exceto por uma coisa: o Visual Studio altera as dependências do Flex / Bison e outros arquivos usando regras de compilação personalizadas. Ele continua recompilando o Flex / Bison / outros arquivos dizendo "linha de comando alterada" - que eu desisti de tentar corrigir.

Por esse motivo, acho que tentaria o CMake como um gerador, o que parece muito promissor até agora - apesar de não ter suporte de cabeçalho pré-compilado no CMake, isso é ridículo atualmente (fora do tópico, eu sei).

Como o suporte ao Qt Creators CMake não é, de longe, tão bom quanto o suporte para projetos QMake, afirmei que usar a abordagem de análise dos arquivos .pri que contêm a lista de arquivos de origem me permitiria usar o QMake e o CMake lado a lado - especialmente porque o restante as configurações do projeto são bastante menos complicadas do que na maioria dos projetos de código aberto.

questionAnswers(2)

yourAnswerToTheQuestion