вывод 'external / name / x / lib / lib.so' не был создан с помощью bazel make - PullRequest
0 голосов
/ 03 октября 2019

Я пытался следовать примеру, предоставленному Сборка Makefile с использованием bazel post для создания внешнего пакета в посланнике. В файле WORKSPACE я добавил следующее:

new_git_repository(
    name = "name",
    remote = "remote.git",
    build_file = "//foo/bazel/external:x.BUILD",
)

И foo / bazel / external / x.BUILD имеет следующее содержимое:

load("@rules_foreign_cc//tools/build_defs:make.bzl", "make")

filegroup(
  name = "m_srcs",
  srcs = glob(["code/**"]),
)

make(
  name = "foo_bar",
  make_commands = ["make lib"],
  lib_source = ":m_srcs",
  shared_libraries = ["lib.so"],
)

, и я установил видимость в foo /bazel / BUILD as package(default_visibility = ["//visibility:public"])

При выполнении bazel build -s @name//:foo_bar я получаю ошибку, что external/name/x/lib/lib.so не был создан.

Я проверил bazel-bin/external/name/x/logs/GNUMake.log и make успешно завершился. Я вижу, что каталог BUILD_TMPDIR создал lib.so. Я думаю, что это должно было быть скопировано в EXT_BUILD_DEPS / lib, но я не уверен, почему это не было скопировано. Буду признателен за любые советы по устранению ошибки.

1 Ответ

0 голосов
/ 04 октября 2019

Изменена команда make для ручного копирования библиотеки в ожидаемую папку - make_commands = ["make libs; cp lib.so $INSTALLDIR/lib/lib.so"]

...