【问题标题】:Building a makefile based dependency in a boost-build (b2) project在 boost-build (b2) 项目中构建基于 makefile 的依赖项
【发布时间】:2014-03-23 18:23:01
【问题描述】:
我正在使用 boost-build 来构建我的项目,但我添加了一个库作为使用 GNU make 构建的依赖项。如果我手动构建这个库,我可以使用这个简单的Jamfile 将它链接到我在 boost build 中的项目:
lib hts
:
: <link>static <file>lib/lib.a
:
: <include>lib_headers
;
如果lib/lib.a 不存在,有没有办法告诉boost-build 在目录上运行make?
【问题讨论】:
标签:
c++
boost
makefile
boost-build
【解决方案1】:
在 Boost 邮件列表的帮助下,我们提出了这个解决方案。首先,您创建一个使用 make 构建库的操作。然后你添加一个“make”目标来教 boost-build 如何使用你刚刚创建的动作来创建静态库。然后创建一个 boost-build 可以依赖的别名,并与 Jamfile 的其余部分很好地配合使用。
path-constant lib_dir : lib ;
actions external-make
{
cd $(lib_dir) && make
}
make lib.a : : @external-make : <location>lib_dir ;
alias hts
: lib.a
: <link>static
:
: <include>lib_headers
;
在您的构建中,您可以使用“hts”作为此库的目标。