在boost-build(b2)项目中构建基于makefile的依赖项

时间:2014-03-23 18:23:01

标签: c++ boost makefile boost-build

我正在使用boost-build来构建我的项目,但我添加了一个库作为使用GNU make构建的依赖项。如果我手动构建这个库,我可以使用这个简单的Jamfile将它链接到我在boost构建中的项目:

lib hts
  : 
  : <link>static <file>lib/lib.a
  :
  : <include>lib_headers 
;

如果lib/lib.a不在那里,有没有办法告诉boost-build在目录上运行make?

1 个答案:

答案 0 :(得分:1)

在Boost邮件列表的帮助下,我们与这个解决方案一起来了。首先,您使用make创建一个用于构建库的操作。然后你添加一个&#34; make&#34;目标是教你如何使用你刚刚创建的动作创建静态库。然后你创建一个别名,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
;

在您的构建中,您可以使用&#34; hts&#34;作为这个图书馆的目标。