boost-build / bjam常量用于Jamroot的路径

时间:2012-07-03 18:32:19

标签: bjam boost-build

有没有办法获取Jamroot文件的位置,用作项目中另一个Jamfile的常量?

现在,我的Jamroot中有这个kludge:

constant HOME : [ os.environ HOME ] ;
constant MYPROJECT_ROOT : $(HOME)/src/myproject ;

然后我可能会在另一个Jamfile中执行类似的操作,以允许我在项目的根目录中包含带有路径的标题。

<include>$(MYPROJECT_ROOT)

这特别令人不满意,因为这意味着如果我与其他人共享此项目,他们必须将其保持在与$HOME完全相同的位置,否则他们必须更新Jamroot。

我对这种特定包含的聪明方式感兴趣(而不是我使用常量的无知的初学者方式)。但我也有兴趣以我的方式解决问题 - 将Jamroot位置变为常量 - 因为这在其他方面也可能有用。

1 个答案:

答案 0 :(得分:3)

使用path-constant规则。

path-constant MYPROJECT_ROOT : . ;

然后在子项目中,您可以使用$(MYPROJECT_ROOT)获取Jamroot的目录。

请注意,通常人们将此变量命名为TOP而不是MYPROJECT_ROOT,但这仅仅是一种惯例。