regras de repositório local

As funções a seguir podem ser carregadas de @bazel_tools//tools/build_defs/repo:local.bzl.

Regras para disponibilizar como repositórios os diretórios no sistema de arquivos local.

Configuração

Para usar essas regras em uma extensão de módulo, carregue-as no arquivo .bzl e, em seguida, chame-as do seu função de implementação de uma extensão. Por exemplo, para usar local_repository:

load("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")

def _my_extension_impl(mctx):
  local_repository(name = "foo", path = "foo")

my_extension = module_extension(implementation = _my_extension_impl)

Como alternativa, você pode chamar essas regras de repositório diretamente no arquivo MODULE.bazel usando use_repo_rule:

local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(name = "foo", path = "foo")

local_repository

load("@bazel//tools/build_defs/repo:local.bzl", "local_repository")

local_repository(name, path, repo_mapping)

Torna um diretório local que já contém arquivos do Bazel disponíveis como um repositório. Esse diretório já deve conter arquivos BUILD do Bazel e um arquivo de limite do repositório. Se ele não tiver esses arquivos, use new_local_repository.

ATRIBUTOS

name Nome; obrigatório

Um nome exclusivo para este repositório.

path String; obrigatório

O caminho para o diretório a ser disponibilizado como um repositório. O caminho pode ser absoluto ou relativo à raiz do espaço de trabalho.

repo_mapping Dicionário: String -> String; opcional

Somente no contexto "WORKSPACE": um dicionário do nome do repositório local para o nome do repositório global. Isso permite o controle da resolução de dependências do espaço de trabalho para dependências desse repositório. Por exemplo, uma entrada `"@foo": "@bar"` declara que, sempre que esse repositório depender de `@foo`, como uma dependência de `@foo//some:target`, ele deverá resolver essa dependência dentro do `@bar` declarado globalmente (`@bar//some:target`). Esse atributo _não_ tem suporte no contexto "MODULE.bazel" (ao invocar uma regra de repositório dentro da função de implementação de uma extensão de módulo).

new_local_repository

load("@bazel//tools/build_defs/repo:local.bzl", "new_local_repository")

new_local_repository(name, build_file, build_file_content, path, repo_mapping)

Torna um diretório local que não contém arquivos do Bazel disponíveis como um repositório. Esse diretório não precisa conter arquivos BUILD do Bazel ou um arquivo de limite de repositório. Eles serão criados por essa regra de repositório. Se o diretório já tiver arquivos do Bazel, use local_repository.

ATRIBUTOS

name Nome: obrigatório

Um nome exclusivo para este repositório.

build_file Rótulo: opcional

Um arquivo para usar como arquivo BUILD para este repositório. Exatamente um entre "build_file" e "build_file_content" precisa ser especificado. O arquivo abordado por esse rótulo não precisa ser chamado de BUILD, mas pode ser. Algo como "BUILD.new-repo-name" pode funcionar bem para diferenciá-lo dos arquivos BUILD reais.

build_file_content String; opcional

O conteúdo do arquivo BUILD a ser criado para este repositório. Exatamente um de "build_file" e "build_file_content" precisa ser especificado.

path String; obrigatório

O caminho para o diretório a ser disponibilizado como um repositório. O caminho pode ser absoluto ou relativo à raiz do espaço de trabalho.

repo_mapping Dictionary: String -> String; opcional

No contexto "WORKSPACE": um dicionário do nome do repositório local para o nome do repositório global. Isso permite o controle sobre a resolução de dependências do espaço de trabalho para dependências deste repositório. Por exemplo, uma entrada "@foo": "@bar" declara que, sempre que esse repositório depender de @foo (como uma dependência de @foo//some:target, ele precisa resolver essa dependência dentro de @bar declarado globalmente ("@bar//some:target"). Esse atributo _não_ tem suporte no contexto "MODULE.bazel" (ao invocar uma regra de repositório dentro da função de implementação de uma extensão de módulo).