问题描述
在声明 cc_common.create_cc_toolchain_config_info 并提供 cxx_builtin_include_directories
时,我发现需要完全指定包含路径。我只知道 def _impl(ctx)
中 crosstool.bzl 文件中目录的相对路径,我如何才能完全展开?
例如
def _impl(ctx):
cxx_builtin_include_directories = ["relative/clang/include"]
return cc_common.create_cc_toolchain_config_info(
ctx = ctx,features = features,tool_paths = tool_paths,cxx_builtin_include_directories = cxx_builtin_include_directories,# ...
)
cc_toolchain_config = rule(
implementation = _impl,attrs = {},provides = [CcToolchainConfigInfo],)
如何将“relative/clang/include”扩展为真实路径?
解决方法
有一种特殊的语法可以做到这一点。它看起来像 "%package(@your_toolchain//relative/clang/include)%"
,其中 @your_toolchain
替换为您的存储库名称
这些指令在生成编译器命令行时会被扩展。我不知道除了 the source 之外的任何文件。