Como add_custom_command () para o próprio processo de compilação do CMake?

Existe alguma maneira de fazer o equivalente a add_custom_command (executar um script externo quando um determinado arquivo for alterado), mas para algo que deve ser executado durante a execução do script CMake? (Ou seja, para geração de gráfico de dependência.)

Temos nossos arquivos de código-fonte divididos em várias sub-bibliotecas e existem arquivos de configuração que listam qual arquivo de origem acompanha qual biblioteca. (O formato desses arquivos de configuração é corrigido por outra ferramenta que usamos.) Atualmente, executamos um script externo personalizado que analisa esses arquivos de configuração e grava novos arquivos, que são carregados pelo processo de criação do CMake para fornecer a lista de nomes de arquivos para ser passado para add_library (). Isso significa que cada vez que um arquivo de origem é adicionado / removido, precisamos lembrar de executar novamente o comando prebuild, antes de executar o CMake e, em seguida, reiniciar o comando build.

Eu sei que o CMake pode reconhecer que precisa executar novamente, então espero que possamos fazer com que o CMake 1) reconheça que os arquivos de configuração foram alterados 2) execute novamente o analisador de configfile 3) carregue a nova lista de arquivos 4) use a nova lista de arquivos para regenerar a árvore de dependências 5) finalmente inicie o processo real de compilação / compilação com os novos arquivos incluídos. ... e tudo isso no comando de construção padrão, sem ter que executar manualmente o analisador de configfile externo ou executar novamente manualmente o comando CMake, e sem execução desnecessária quando o arquivo de configuração não foi alterado.

Na pesquisa, encontreiessa questão, onde é sugerido o uso de configure_file (), mas isso não aborda como chamar o script do analisador de configfile externo.

questionAnswers(1)

yourAnswerToTheQuestion