Especificando ferramentas de compilação personalizadas
Uma ferramenta de criação personalizado fornece o sistema de compilação as informações necessárias para criar arquivos de entrada específicos. Uma ferramenta de criação personalizado especifica um comando a ser executado, uma lista de arquivos de entrada, uma lista de arquivos de saída que são gerados pelo comando, e uma descrição opcional da ferramenta.
Para obter informações gerais sobre as ferramentas personalizadas de compilação e das etapas de criação personalizado, consulte Noções básicas de etapas e eventos de compilação personalizados.
Para especificar uma ferramenta de criação personalizado
Abra a caixa de diálogo Páginas de Propriedade do projeto. Para obter mais informações, consulte Propriedades do projeto do Visual C++ de configuração.
Clique em Propriedades de Configuração para habilitar a caixa de Configuração . Na caixa de Configuração , selecione a configuração a qual você deseja especificar uma ferramenta de criação personalizado.
Em Gerenciador de Soluções, selecione o arquivo de entrada para a ferramenta de criação personalizado.
Se a pasta de Ferramenta de Compilação Personalizada não aparecer, a extensão do arquivo que você selecionou é associada a uma ferramenta padrão. Por exemplo, a ferramenta padrão para .c e arquivos .cpp é o compilador. Para substituir uma ferramenta padrão que define, no nó de Propriedades de Configuração , na pasta de Geral , na propriedade de Tipo de Item , clique em Ferramenta de Compilação Personalizada. Clique em Aplicar e o nó de Ferramenta de Compilação Personalizada são exibidos.
No nó de Ferramenta de Compilação Personalizada , na pasta de Geral , especifique as propriedades associadas com a ferramenta de criação personalizado:
Em Dependências Adicionais, especifique outros arquivos além do para que a ferramenta de criação personalizado está sendo definida (o arquivo associado com a ferramenta de criação personalizado é considerado implicitamente uma entrada para a ferramenta). Ter arquivos de entrada adicionais não é um requisito para uma ferramenta de criação personalizado. Se você tiver mais de uma entrada adicional, separe-os com ponto-e-vírgula.
Se a data de um arquivo de Dependências Adicionais for posterior ao arquivo de entrada, a ferramenta de criação personalizado é executada. Se todos os arquivos de Dependências Adicionais sejam mais antigos do que o arquivo de entrada, e o arquivo de entrada for mais antigo que o arquivo de propriedade de Saídas , a ferramenta de criação personalizado não será executada.
Por exemplo, suponhamos que você tenha uma ferramenta de criação personalizado que usem MyInput.x como entrada e gerenciar MyInput.cpp, e que MyInput.x inclui um arquivo de cabeçalho, MyHeader.h. Você pode especificar MyHeader.h como uma dependência de entrada a MyInput.x, e o sistema de compilação criará MyInput.cpp quando estiver expirado em relação a MyInput.x ou a MyHeader.h.
As dependências de entrada também podem garantir que sua execução personalizada das ferramentas de criação na ordem você precisa das. No exemplo anterior, suponha que MyHeader.h é realmente a saída de uma ferramenta de criação personalizado. Como MyHeader.h é uma dependência de MyInput.x, o sistema de compilação criará primeiro Myheader.h antes de executar a ferramenta de criação personalizado em MyInput.x.
Em Linha de Comando, especifique um comando como se você especificou no prompt de comando. Especifique um comando ou um arquivo em lotes válido, e qualquer entrada ou de saída arquivos necessários. Especifique o comando do lote de call antes do nome de um arquivo em lotes garantir que todos os comandos subsequentes serão executados.
A vários arquivos de entrada e de saída podem ser especificados simbolicamente com macros de MSBuild. Para obter mais informações sobre que especificam o local dos arquivos, ou os nomes dos conjuntos de arquivos, consulte Macros para compilar comandos e propriedades.
Como o caractere “%” é permitido por MSBuild, se você especificar uma variável de ambiente substituir cada caractere de escape de % com a sequência de escape hexadecimal de %25 . Por exemplo, substitua %WINDIR% com %25WINDIR%25. MSBuild substitui cada sequência de %25 com o caractere de % antes de acessar a variável de ambiente.
Em Descrição, digite uma mensagem descritivas sobre essa ferramenta personalizado de compilação. A mensagem será impressa à janela de Saída quando o sistema de compilação processa esta ferramenta.
Em Saídas, especifique o nome do arquivo de saída. Essa é uma entrada necessária; sem um valor para essa propriedade, a ferramenta de criação personalizado não será executado. Se uma ferramenta de criação personalizado tiver mais de uma saída, nomes de arquivos separados por um ponto-e-vírgula.
O nome do arquivo de saída deve ser o mesmo que é especificado na propriedade de Linha de Comando . O sistema de construção do projeto procurará o arquivo e verificará a data. Se o arquivo de saída for mais novo que o arquivo de entrada ou se o arquivo de saída não está localizado, a ferramenta de criação personalizado é executada. Se todos os arquivos de Dependências Adicionais sejam mais antigos do que o arquivo de entrada, e o arquivo de entrada for mais antigo que o arquivo especificado na propriedade de Saídas , a ferramenta de criação personalizado não será executada.
Se desejar que o sistema de compilação para funcionar em um arquivo de saída gerado pela ferramenta de criação personalizado, você deve adicioná-la manualmente ao projeto. A ferramenta de criação personalizado atualizará o arquivo durante a compilação.
Exemplo
Assuma que você quer incluir em seu projeto um arquivo chamado parser.l. Você desejar um analisador léxica para processar parser.l para gerar o arquivo de C.A. que tem o mesmo nome de base (parser.c).
Primeiro, você adiciona parser.l e parser.c ao projeto. Se os arquivos ainda não existem, você adiciona apenas uma referência aos arquivos. Você cria uma ferramenta de criação personalizado para parser.l e digite o seguinte na propriedade de Comandos :
lexer %(FullPath) .\%(Filename).c
Este comando executará o analisador léxica em parser.l e a saída parser.c para o diretório do projeto.
Na propriedade de Saídas , digite o seguinte:
.\%(Filename).c
Quando você cria o projeto, o sistema de compilação compara os carimbos de data/hora de parser.l e de parser.c. Se parser.l for mais recente, ou se parser.c não existir, o sistema de compilação executa o valor da propriedade de Linha de Comando para trazer parser.c atualizado. Desde que parser.c também foi adicionado ao projeto, o sistema de construção a seguir cria parser.c.
Consulte também
Referência
Solucionando problemas de personalizações da compilação