是否有可能强制boost-build将子项目的include-path添加到主项目中?

时间:2014-03-04 14:12:09

标签: c++ boost bjam boost-build boost.build

我为子项目制作了bjam文件。该子项目包含一些源和标头。 构建的结果是静态库。我想从另一个项目中使用这个子项目。有没有办法避免明确指定子项目头的路径?

例如:

# Jamfile for sub-library
project sublib
     : requirements <include>../headers/include
     : source-location ../ ;

lib sublib : [ glob src/*.cpp ] : <link>static ;

我希望boost-build能够自动将上面的“../headers/include”添加到下一个jam-file中。但是现在我需要明确指定它

# Jamfile for my root project
use-project /sublib  : path_to_sublib/sublib-folder ;

project rootproject
: requirements <include>root_project_headers/
               <include>path_to_sublib/headers/include/ # explicit declaration
               <library>//sublib
               <define>_VARIADIC_MAX=10
     : source-location ../../ ;

exe root-executable : [ glob src/*.cpp ] ;

有可能吗?这些卡纸文件在这里简化了我的原始文件。这些文件对我有用。

P.S。我在文档中找到了usage-requirements属性,但是我找不到让它工作的方法。我尝试了我能想象到的所有变种。

1 个答案:

答案 0 :(得分:1)

子项目Jamfile

 lib subproj
    : subproj.cpp
    : <include>.
      <link>static
    :
    : <include>.
    ;

Project Jamfile

exe proj
    : <source files>
      /subproj//subproj
    ;

适合我。