【发布时间】:2021-04-16 15:29:49
【问题描述】:
我有一个 Bazel 项目(新的 tcmalloc),我正在尝试将其集成到一个典型的 GNU Make 项目中,该项目使用它自己的编译器/libc++ 构建。目标是不分叉上游项目。
如果我将所有 C++ 选项正确传递给 bazel(其中一组是 -nostdinc++ -I<path to libc++>),Bazel 很高兴 The include path '/home/vlovich/myproject/deps/toolchain/libc++/trunk/include' references a path outside of the execution root.(tcmalloc 是一个 git 子模块兄弟 @deps/tcmalloc)。可以通过给 Bazel 一个自定义脚本来调用这个“工作”,作为注入这些标志的编译器,这样 Bazel 就永远不会看到它们。但是,我只想定义一个工具链才能正常工作。
我已经阅读了我能找到的关于这个主题的所有文档,但我不清楚如何将所有这些文档粘合在一起。
特别不清楚我应该将工具链定义文件放在哪里,或者如何告诉 Bazel 找到这些定义。有没有办法给 bazel 一个用于查找工具链定义的目录?我是否希望创建一个顶级 WORKSPACE @/home/vlovich/myproject 并在那里注册 tcmalloc 和我的工具链,然后从 /home/vlovich/myproject 而不是 /home/vlovich/myproject/deps/tcmalloc 调用 bazel?
【问题讨论】:
标签: bazel