Compartilhar via


Conceito: Recursos padrão

Este artigo descreve o conceito de recursos padrão, suas implicações e estratégias para um gerenciamento eficaz.

Os recursos padrão são um conjunto de recursos incluídos automaticamente quando uma porta é instalada, a menos que explicitamente desabilitada. Esses recursos garantem que uma biblioteca mantenha um nível de linha de base de funcionalidade, mesmo quando a complexidade de seu gráfico de dependência aumenta.

Observação

Nem todas as portas contêm recursos padrão.

Função dos recursos padrão

Os recursos padrão fornecem uma experiência amigável, garantindo que funcionalidades essenciais estejam disponíveis em bibliotecas com recursos modulares.

Por exemplo, uma biblioteca capaz de extrair vários formatos de arquivo pode ter cada formato como um recurso opcional. Sem recursos padrão, a biblioteca pode não incluir nenhum algoritmo de extração pronto para uso, complicando o uso inicial.

Os pacotes instalados pelo vcpkg sempre incluirão seus recursos padrão, a menos que explicitamente solicitado de outra forma. Esse comportamento se aplica a pacotes exigidos diretamente pelo usuário por meio de um arquivo de manifesto ou chamada de instalação vcpkg e a pacotes necessários como dependências.

Desabilitando recursos padrão no modo de manifesto

Adicione o atributo a uma declaração de dependência para desabilitar a "default-features": false instalação de seus recursos padrão.

Desabilitar a instalação automática de recursos padrão só é possível para dependências solicitadas pelo usuário.

Se você quiser desabilitar os recursos padrão para uma dependência transitiva, será necessário promovê-la a uma dependência direta no manifesto do projeto.

Desabilitando recursos padrão no modo clássico

Adicione o recurso especial core como parte dos recursos solicitados dos pacotes que você deseja instalar.

Observação

Semelhante a como o modo manifesto funciona, se você quiser desabilitar os recursos padrão para uma dependência transitiva; você precisa promovê-lo a uma solicitação de instalação direta em sua linha de comando.

Exemplo 1: Incluindo uma biblioteca com recursos padrão

{
  "name": "my-application",
  "version": "0.15.2",
  "dependencies": [
    "extract-any"
  ]
}

Nesse cenário, extract-any é instalado com seus recursos padrão, garantindo funcionalidade imediata.

Exemplo 2: Desabilitando recursos padrão (modo de manifesto)

{
  "name": "my-application",
  "version": "0.15.2",
  "dependencies": [
    {
      "name": "extract-any",
      "default-features": false
    }
  ]
}

Aqui, extract-any é instalado sem seus recursos padrão, permitindo uma configuração personalizada.

Exemplo 3: Desabilitando recursos padrão (modo clássico)

vcpkg install extract-any[core]

Aqui, extract-any é instalado sem seus recursos padrão usando o recurso especial core .

Interações de recursos padrão

  1. Instalando uma porta com recursos padrão (comportamento padrão): vcpkg install extract-any instala extract-any com seus recursos padrão (extract-any[format-a]), devido à ausência de solicitações de recursos específicos.

  2. Especificando um recurso sem desabilitar padrões: vcpkg install extract-any[format-b] leva à instalação de extract-any com os recursos especificados (format-b) e padrão (format-a) (extract-any[format-a,format-b]).

  3. Desativando explicitamente os recursos padrão: vcpkg install extract-any[core] instala extract-any sem nenhum recurso padrão, pois [core] os exclui explicitamente.

  4. Dependências transitivas e recursos padrão: vcpkg install extract-any[format-b] portB podem resultar na extract-any[format-a,format-b] portB instalação se portB depender do extract-any[format-a], mas não desabilita extract-anyexplicitamente os recursos padrão do .

  5. Combinando portas com especificações de extract-any[format-a, format-b] portBrecursos variados: vcpkg install extract-any[format-b] portB instala , incluindo extract-anyrecursos padrão do , a menos que explicitamente excluído.

  6. Desativação abrangente dos recursos padrão: vcpkg install extract-any[core] portB garante que extract-any seja instalado apenas com os recursos explicitamente solicitados, excluindo os padrões.

Gerenciando recursos padrão

Para gerenciar com eficiência os recursos padrão em seus projetos:

  • Seja explícito: especifique apenas os recursos necessários. Use [core] para desabilitar os recursos padrão quando necessário.
  • Inspecionar dependências: use vcpkg depend-info <port> para entender as resoluções de dependência e ajustar suas configurações de acordo.
  • Utilize substituições e linhas de base: aproveite os recursos de controle de versão e linha de base para obter mais controle sobre as resoluções de dependência.

Para saber mais, consulte o seguinte:

Adotar uma estratégia clara para gerenciar recursos padrão ajudará a simplificar o gerenciamento de dependências do seu projeto, garantindo que você inclua apenas o necessário para a funcionalidade do seu aplicativo.