我想用 waf 构建一个库,但是以与目标名称不同的名称安装它。看来你可以做到
bld.shlib(..., install_path='${PREFIX}/lib')
但我需要能够执行以下操作:
bld.shlib(..., install_as='${PREFIX}/lib/xyz')
另外, bld.install_as() 不起作用,因为它似乎不接受任务作为目标,而且我不知道如何将任务变成代表目标的节点,所以以下内容也不起作用:
tgt = bld.shlib(...)
bld.install_as('foo', tgt)
或者,我需要能够禁用自动添加到库名称中的“lib”前缀,但仅适用于这个库 - 在构建期间并非适用于所有库,例如:
bld.shlib(..., libprefix='', install_path="${PREFIX}/lib/")
我知道您也可以设置 shlib_PATTERN,但这似乎会影响当前环境下的所有库。我们有一个非常复杂的构建,它使用许多不同的环境来同时构建调试/发布,所以仅仅克隆当前环境并更改标志也不起作用,因为它克隆了默认环境,而不是最终构建目标的环境下(因为我们在构建期间克隆每个环境的目标)。
有什么想法吗?谢谢!