2

我为一个子项目制作了 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 ] ;

可能吗?这些果酱文件是从我原来的文件中简化而来的。这些文件对我有用。

PS我在文档中找到了usage-requirements属性,但我没有找到让它工作的方法。我尝试了所有我能想象到的变体。

4

1 回答 1

1

子项目 Jamfile

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

项目 Jamfile

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

为我工作。

于 2014-11-14T11:35:44.853 回答