从 shell 脚本访问 boost build/b2/bjam 的变量

问题描述 投票:0回答:1

我希望能够从 shell 访问在

jamroot
(或
jamfile
)内部计算的变量的值。

类似于 CMake 的 this

示例

jamroot

MY_VARIABLE=42

所需的解决方案:

b2 --print-variable=MY_VARIABLE # running in a directory below the jamroot
shell variables bjam boost-build b2
1个回答
0
投票

我没有找到满意的解决方案。

第一个黑客解决方案:需要修改
jamroot

在末尾添加 (即设置变量后):

import os ; local B2_DISPLAY_VARIABLE_AND_EXIT = [ os.environ B2_DISPLAY_VARIABLE_AND_EXIT ] ; if $(B2_DISPLAY_VARIABLE_AND_EXIT)-not-empty { echo $($(B2_DISPLAY_VARIABLE_AND_EXIT)) ; exit ; }
然后设置环境变量运行b2:

B2_DISPLAY_VARIABLE_AND_EXIT=MY_VARIABLE b2


第二个黑客解决方案:需要在

jamroot
 下面生成自定义文件

custom.jam

(使用 shell 生成):

echo $(MY_VARIABLE) ; exit ;
然后运行 b2: 

b2 -sJAMFILE=custom.jam

 然后 
rm custom.jam

JAMFILE

是一个特殊的
变量,由于某种原因在新文档中没有提及。

备注

如果变量是从

jamfile

 设置的,这些解决方案将不起作用。可以使用将在 
jamfile
 上调用的自定义目标来调整第一个解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.