Могу ли я указать относительный путь подчинения в моей цели bazel?

Когда я указываю правила сборки в bazel, моими зависимостями являются либо полные пути (из корня репо), либо просто целевое имя (поскольку оно находится в том же каталоге):

cc_binary(
    name = "program",
    srcs = ["main.cpp"],
    deps = ["//a/full/path/to/the/library:lib",
            "foo"]
)

Предположим, я пишу правило сборки из каталога "the".
Я надеялся сделать что-то вроде этого:

cc_binary(
    name = "program",
    srcs = ["main.cpp"],
    deps = ["library:lib",
            "foo"]
)

Это не представляется возможным. Есть ли какой-то способ, где я могу указать цель глубже, начиная с местоположения файла BUILD?


person Trevor Hickey    schedule 08.06.2018    source источник


Ответы (1)


Вы не можете.

Относительные метки нельзя использовать для ссылки на цели в других пакетах; в этом случае всегда должно быть указано полное имя пакета

Из документации по меткам Bazel.

person Ittai    schedule 09.06.2018
comment
Вероятно, это хорошее решение со стороны bazel, но в некоторых ситуациях оно все же доставляет неудобства. - person Trevor Hickey; 09.06.2018