Я хотел бы создать библиотеку 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
- создать некоторые правила импорта, чтобы я мог создавать двоичные файлы, которые связываются с этой библиотекой.
Это не похоже на правильный путь.Как правильно решить эту проблему?