Страница Buckaroo Wiki упоминает процесс:
Сначала запустите buckaroo init
, чтобы сгенерировать .buckconfig
и buckaroo_macros.bzl
.
Затем вам понадобитсяотредактировать два файла:
BUCK
- описывает сборку
buckaroo.toml
- описывает внешние зависимости
BUCK:
Следующий файл BUCK
упаковывает ваши заголовки, так что каждый файл может быть включен через #include <foo/*.hpp>
:
cxx_library(
name = 'foo',
header_namespace = '',
exported_headers = glob(['foo/*.hpp']),
visibility = ['PUBLIC'],
)
Это эквивалентно:
cxx_library(
name = 'foo',
header_namespace = '',
exported_headers = {
'foo/foo.hpp': 'foo/foo.hpp',
'foo/bar.hpp': 'foo/bar.hpp',
},
visibility = ['PUBLIC'],
)
Эта карта описывает, как путь, определенный в #include <a/b/c.h>
, сопоставляется с реальными файлами в файловой системе.Поскольку include-путь идентичен разметке вашей файловой системы, ключи и значения идентичны.
buckaroo.toml
Чтобы сделать установку вашего пакета удобной дляпотребителям, рекомендуется явно перечислить общедоступные пакеты, которые должны быть экспортированы по умолчанию, в разделе целей в buckaroo.toml
targets = [ "//:foo" ]
Если у вас есть внешние зависимости, вы можете установить их через buckaroo add URL@VERSION
и подключите зависимости в вашем файле BUCK
:
load('//:buckaroo_macros.bzl', 'buckaroo_deps')
cxx_library(
name = 'foo',
// ...
deps = buckaroo_deps(),
visibility = ['PUBLIC'],
)