我希望能够从 shell 访问在
jamroot
(或 jamfile
)内部计算的变量的值。
类似于 CMake 的 this。
示例
jamroot
:
MY_VARIABLE=42
所需的解决方案:
b2 --print-variable=MY_VARIABLE # running in a directory below the jamroot
我没有找到满意的解决方案。
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
上调用的自定义目标来调整第一个解决方案。