如何解决如何在Bazel中将生成的源放在私有包含路径中?
如果将genrule
输出放在cc_library
中,如何将其放在私有包含路径中?
假设我有一个file.c
,像这样:
#include <config.h>
这是一个说明问题的构建脚本:
genrule(
name = "config",outs = ["config.h"],cmd = "touch $@",)
cc_library(
name = "lib",srcs = [
":config","file.c",],copts = [
"-isystem",# <- what goes here?
],)
我可以使用includes
,但这会被我不想要的其他目标继承。
到genrule输出的实际路径将类似于bazel-out/k8-fastbuild/bin/...
,具体取决于配置。
解决方法
一个人可以在$(GENDIR)
中使用copts
“ make variable”:
cc_library(
name = "mylib",copts = ["-I","$(GENDIR)/path/to/package"],)
不幸的是,由于其中目前不支持$(RULEDIR)
变量,因此必须对路径进行硬编码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。