Bazel создает c ++ разделяемую библиотеку с soname - PullRequest
0 голосов
/ 28 ноября 2018

Я хотел бы создать библиотеку shared c ++ с Bazel, используя soname .

С помощью cmake я мог бы установить такие свойства, как:

set_target_properties(my-library
        PROPERTIES
                SOVERSION 3
                VERSION 3.2.0
        )

, который затем сгенерирует

libmy-library.so -> libmy-library.so.3
libmy-library.so.3 -> libmy-library.so.3.2.0
libmy-library.so.3.2.0

Однако в документации bazel я не могу найти ничего, что позволило бы мне сделать это легко.Я знаю, что мог бы напрямую определить имя и версию сонама и передать немного linkopts в файл сборки:

cc_binary(
    name = "libmy-library.so.3.2.0",
    srcs = ["my-library.cpp", "my-library.h"],
    linkshared = 1,
    linkopts = ["-Wl,-soname,libmy-library.so.3"],
)

, который выдает libmy-library.so.3.2.0 справильное имя, но не файл .so, поэтому потребуется много хаков, чтобы:

  • создать libmy-library.so.3 символическая ссылка
  • создать libmy-library.so symlink
  • создать некоторые правила импорта, чтобы я мог создавать двоичные файлы, которые связываются с этой библиотекой.

Это не похоже на правильный путь.Как правильно решить эту проблему?

...