我有一个基于 jamfile 的项目,其中一个构建步骤编译了一个自定义工具(称为“codegen”),我想在以后的构建步骤中使用它。codegen 工具相对于根目录构建在 projects/codegen/Jamfile.jam 中,可执行目标最终用以下行声明:
install codegen-tool : $(full-exe-target) : <location>$(install-dir) ;
在 Jamroot.jam 中,我有以下内容:
rule codegen ( target : source : properties * )
{
COMMAND on $(target) = projects/codegen//codegen-tool ;
DEPENDS $(target) : projects/codegen//codegen-tool ;
}
actions codegen bind COMMAND
{
$(COMMAND) $(<) $(>)
}
project.load projects/codegen//codegen-tool ;
local codegen-input = <blah> ;
local codegen-output = <blah> ;
make $(codegen-output) : $(codegen-input) : @codegen ;
alias codegen-output : $(codegen-output) ;
当我运行命令“b2 codegen-output”时,出现错误:
don't know how to make project projects/codegen//codegen-tool
但是运行命令“b2 projects/codegen//codegen-tool”是成功的。为什么我无法从 Jamroot.jam 引用 codegen-tool 目标?