Especificando as ferramentas de construção personalizada

A ferramenta de compilação personalizada fornece as informações necessárias para criar arquivos de entrada específicos ao sistema de compilação. Uma ferramenta de compilação personalizada Especifica uma lista de arquivos de entrada, um comando para executar, uma lista de arquivos de saída são gerados pelo comando e uma descrição opcional da ferramenta.

Para obter informações gerais sobre as ferramentas de compilação personalizada e etapas de compilação personalizada, consulte Noções básicas sobre as etapas de compilação personalizados e eventos de compilação.

Para especificar uma ferramenta de compilação personalizada

  1. Abra o projeto Property Pages caixa de diálogo. Para obter mais informações, consulte Definindo propriedades de projeto Visual C++.

  2. Clique em Propriedades de configuração para habilitar o configuração caixa. No configuração , selecione a configuração desejada especificar uma ferramenta de compilação personalizada.

  3. Em Solution Explorer, selecione o arquivo de entrada para a ferramenta de compilação personalizada.

    Se o Ferramenta de compilação personalizada pasta não aparece, a extensão de arquivo que você selecionou está associada com uma ferramenta padrão. Por exemplo, a ferramenta padrão para arquivos. c e. cpp é o compilador. Para substituir uma configuração de ferramenta padrão no Propriedades de configuração nó, na Geral pasta, no O tipo de Item propriedade, clique em Ferramenta de compilação personalizada. Clique em Aplicar e o Ferramenta de compilação personalizada nó é exibido.

  4. No Ferramenta de compilação personalizada nó, na Geral pasta, especifique as propriedades associadas a custom ferramenta de construção:

    • Em Dependências adicionais, especifique quaisquer arquivos adicionais além para a qual a ferramenta de compilação personalizada é definida (o arquivo associado com a ferramenta de compilação personalizada implicitamente é considerado uma entrada para a ferramenta). A necessidade de arquivos adicionais de entrada não é um requisito para a ferramenta de compilação personalizada. Se você tiver mais de uma entrada adicional, separe-os com ponto e vírgula.

      Se um Dependências adicionais data do arquivo é posterior ao arquivo de entrada, em seguida, a ferramenta de compilação personalizada for executada. Se todos os do Dependências adicionais arquivos são mais antigos que o arquivo de entrada e o arquivo de entrada é mais antigo que o saídas o arquivo de propriedade, em seguida, a ferramenta de compilação personalizada não é executado.

      Por exemplo, suponha que você tem uma ferramenta de compilação personalizados que leva o MyInput.x como entrada e gera MyInput.cpp e que o MyInput.x inclui um arquivo de cabeçalho MyHeader.h. Você pode especificar o MyHeader.h como uma dependência de entrada para MyInput.x e o sistema de compilação será construído MyInput.cpp quando estiver desatualizada em relação à MyInput.x ou MyHeader.h.

      Dependências de entrada também podem garantir que suas ferramentas de compilação personalizada é executado na ordem em que você precisá-los. No exemplo anterior, suponha que MyHeader.h é na verdade, a saída de uma ferramenta de compilação personalizada. Porque o MyHeader.h é uma dependência de MyInput.x, o sistema de compilação será, em primeiro lugar, monte Myheader.h antes de executar a ferramenta de compilação personalizada em MyInput.x.

    • Na a linha de comando, especifique um comando como se foram a especificação no prompt de comando. Especifique um comando válido ou um arquivo em lotes e qualquer necessária a entrada ou saída de arquivos. Especificar o call comando antes do nome de um arquivo em lotes para garantir que todos os comandos subseqüentes são executados em lote.

      Vários arquivos de entrada e saídos podem ser especificados simbolicamente com macros do MSBuild. Para obter mais informações sobreespecificar o local dos arquivos ou os nomes dos conjuntos de arquivos, consulte Macros para construir comandos e propriedades.

      Porque o '%' é um caractere reservado pelo MSBuild, se você especificar uma variável de ambiente substituir cada % escape de caractere com o %25 seqüência de escape hexadecimais. Por exemplo, substitua %WINDIR% com %25WINDIR%25. MSBuild substitui cada %25 seqüência com o % caractere antes que ele acesse a variável de ambiente.

    • Em Descrição, digite uma mensagem descritiva sobre a ferramenta de compilação personalizada. A mensagem é impressa para a saída janela quando o sistema de compilação processa essa 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 compilação personalizada não será executada. Se a ferramenta de compilação personalizada tem mais de uma saída, separe os nomes de arquivo com um ponto e vírgula.

      O nome do arquivo de saída deve ser o mesmo conforme especificado na a linha de comando propriedade. O sistema de compilação do projeto irá procurar o arquivo e verifique a sua data. Se o arquivo de saída é mais recente que o arquivo de entrada ou se o arquivo de saída não for encontrado, a ferramenta de compilação personalizada for executada. Se todos os do Dependências adicionais arquivos são mais antigos que o arquivo de entrada e o arquivo de entrada é mais antigo que o arquivo especificado na saídas propriedade, a ferramenta de compilação personalizada não é executada.

Se desejar que o sistema de compilação para operar em um arquivo de saída gerado pela ferramenta de compilação personalizada, você deve adicioná-lo manualmente o projeto. A ferramenta de compilação personalizada atualizará o arquivo durante a compilação.

Exemplo

Suponha que você deseja incluir no seu projeto em um arquivo chamado parser.l. Você deseja um analisador léxico para processar parser.l para produzir um arquivo. c que tem o mesmo nome de base (parser.c).

Primeiro, adicione parser.l e parser.c para o projeto. Se os arquivos ainda não existir, basta adicionar uma referência para os arquivos. Criar uma ferramenta de compilação personalizada para parser.l e digite o seguinte na comandos propriedade:

lexer %(FullPath) .\%(Filename).c

Este comando será executado o analisador léxico em parser.l e parser.c para o diretório de projeto de saída.

No saídas propriedade, digite o seguinte:

.\%(Filename).c

Quando você constrói o projeto, o sistema de compilação compara os carimbos de hora de parser.l e parser.c. Se parser.l é mais recente, ou se parser.c não existir, o sistema de compilação executa o valor da a linha de comando propriedade trazer parser.c atualizado. Desde que parser.c também foi adicionado ao projeto, o sistema de compilação compila, em seguida, parser.c.

Consulte também

Referência

Personalizações de compilação da solução de problemas

Outros recursos

Macros para construir comandos e propriedades