Как написать файл Bazel BUILD для этого Boost.Build Jamfile?

Я пытаюсь перейти с Boost.Build на систему сборки Bazel. Мне нужно написать Jamfile для каталога, который создает библиотеку.

Jamfile у меня есть

project : usage-requirements <include>$(PROJECT_INSTALL) 
<linkflags>-lboost_system
;

lib CommonDataStructures : [ glob *.cpp ] : <link>static ;

install libCommonDataStructures
  : CommonDataStructures
  : <install-type>LIB
    <variant>release:<location>"$(PROJECT_INSTALL)/lib"
    <variant>debug:<location>"$(PROJECT_INSTALL)/libdebug"
  : release debug
  ;

Как мне написать файл BUILD для Bazel?

1 ответ

Извините, но у меня нет опыта работы с Boost.Build, но я попробую.

Файл BUILD, вероятно, будет содержать только:

cc_library(
  name = "common_data_structures",
  srcs = glob(["*.cpp"]),
)

И чтобы построить это просто запустить bazel build //:common_data_structures, Bazel создаст как статическую библиотеку, так и разделяемую библиотеку, и когда от нее будут зависеть другие cc_library или cc_binary, по умолчанию они будут статически связаны. Посмотрите нашу документацию по правилам C++, чтобы увидеть все атрибуты. Было ли это полезно вообще?

Другие вопросы по тегам