O pré-processador C pode ser usado para dizer se existe um arquivo?
Eu tenho uma base de código muito grande (leia-se: milhares de módulos) que tem código compartilhado em vários projetos que são executados em diferentes sistemas operacionais com diferentes compiladores C ++. Escusado será dizer que a manutenção do processo de construção pode ser uma tarefa difícil.
Existem vários lugares na base de código onde seria possível limpar o código substancialmente se houvesse uma maneira de fazer com que o pré-processador ignorasse certas#includes
se o arquivo não existisse na pasta atual. Alguém sabe uma maneira de conseguir isso?
Atualmente, usamos um#ifdef
em volta do#include
no arquivo compartilhado, com um segundo arquivo específico do projeto que # define se#include
existe no projeto. Isso funciona, mas é feio. As pessoas muitas vezes esquecem de atualizar corretamente as definições quando adicionam ou removem arquivos do projeto. Pensei em escrever uma ferramenta de pré-compilação para manter esse arquivo atualizado, mas se houver uma maneira independente de plataforma para fazer isso com o pré-processador, prefiro fazê-lo dessa maneira. Alguma ideia?