0

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

现在,我的 Jamroot 中有这个杂物:

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

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

<include>$(MYPROJECT_ROOT)

这尤其令人不满意,因为这意味着如果我与其他人共享此项目,他们必须将其保存在相对于他们的完全相同的位置,$HOME或者他们必须更新 Jamroot。

我对执行此特定包含的智能方法感兴趣(而不是我无知的初学者使用常量的方法)。但我也有兴趣按照我提出的方式解决问题——通过将 Jamroot 位置设置为常量——因为这在其他方面也可能有用。

4

1 回答 1

4

使用path-constant规则。

path-constant MYPROJECT_ROOT : . ;

然后在子项目中,您可以使用$(MYPROJECT_ROOT).

请注意,通常人们将此变量命名为 TOP 而不是 MYPROJECT_ROOT,但这只是一个约定。

于 2012-07-04T04:56:42.200 回答