Я пытаюсь использовать flatbuffer_cc_library
в проекте c ++, который я строю с помощью bazel. Тем не менее, я не могу понять, как мне включить пути для работы. Мне нужно сослаться на схему flatbuffer в другом пакете и включить ее в мою схему. Обратите внимание, что структура моего проекта немного странная - все это происходит внутри локальной рабочей области bazel (отсюда и префикс external/project_name
) для пути. Все работает, если я задаю external/project_name
для include_paths
, но я предполагаю, что это не то, что я должен делать здесь, так как имя рабочей области может измениться.
Например:
plugin/BUILD.bazel
:
cc_library(
name = "plugin-types",
srcs = ["types.cpp"],
hdrs = ["types.hpp"],
deps = [":messages"],
)
flatbuffer_cc_library(
name = "messages",
srcs = [
"messages.fbs",
],
includes = [
"//core:messages.fbs",
],
visibility = ["//visibility:public"],
)
plugin/messages.fbs
:
include "core/messages.fbs";
namespace plugin;
//...
Я получаю что-то вроде
error: external/project_name/plugin/messages.fbs:1: 40: error: unable to load include file: core/messages.fbs