Было бы лучше собрать все библиотеки напрямую с Bazel, тогда вы бы получили это поведение бесплатно. См. Миграция из Мавена в Базель .
Однако, если это не вариант, вы можете получить доступ к некоторым этой информации, используя Make Variables :
genrule(
name = "g",
outs = [
"g.txt",
],
cmd = "echo \"$(TARGET_CPU) $(COMPILATION_MODE) $(JAVA) $(JAVABASE)\" > $@",
toolchains = [
"@bazel_tools//tools/jdk:current_java_runtime",
],
)
Однако я не смог найти операционную систему в этих переменных.
Возможно, лучшая идея - использовать select
операторы:
genrule(
name = "f",
outs = [
"f.txt",
],
cmd = select({
"@bazel_tools//src/conditions:darwin": "echo 'macOS' > $@",
"//conditions:default": "echo 'Linux' > $@",
}),
)
Затем вы бы написали разные cmd
для каждой платформы.