Как включить другие схемы плоских буферов в локальном рабочем пространстве Bazel? - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь использовать 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
...