VirtualRunEnv¶
VirtualRunEnv
是一个生成器,它生成一个启动器 conanrunenv .bat、.ps1 或 .sh 脚本,其中包含运行时环境的环境变量。
启动器包含运行时环境信息,即实际运行编译后的可执行文件和应用程序所需的环境信息。此信息从以下位置获取
与
host
上下文对应的依赖项的self.runenv_info
。也从包的
self.cpp_info
定义中自动推导出以定义PATH
。如果设置了
os
设置,则在非 Windows 主机上类似地推导出LD_LIBRARY_PATH
、DYLD_LIBRARY_PATH
和DYLD_FRAMEWORK_PATH
。
它可以在 conanfile 中按名称使用
class Pkg(ConanFile):
generators = "VirtualRunEnv"
[generators]
VirtualRunEnv
它也可以在 conanfile generate()
方法中完全实例化
from conan import ConanFile
from conan.tools.env import VirtualRunEnv
class Pkg(ConanFile):
settings = "os", "compiler", "arch", "build_type"
requires = "zlib/1.2.11", "bzip2/1.0.8"
def generate(self):
ms = VirtualRunEnv(self)
ms.generate()
生成的文件¶
conanrunenv-release-x86_64.(bat|ps1|sh):此文件包含环境变量(如 PATH、LD_LIBRARY_PATH 等)的实际定义,以及对应于
host
上下文和当前已安装配置的依赖项的runenv_info
。如果使用其他设置重复调用,将创建不同的文件。conanrun.(bat|ps1|sh):累积对一个或多个其他脚本的调用,以便为所有脚本提供一个方便的文件。这仅调用最新的特定配置,也就是说,如果首先为 Release 构建类型调用
conan install
,然后为 Debug 构建类型调用,则conanrun.(bat|ps1|sh)
脚本将调用 Debug 构建类型的文件。
执行这些文件之一后,将生成一个新的停用脚本,捕获当前环境,以便在需要时恢复环境。该文件也将按照当前活动配置命名,例如 deactivate_conanrunenv-release-x86_64.bat
。
注意
要创建 PowerShell 所需的 .ps1
文件,您需要使用 PowerShell 可执行文件的值设置 tools.env.virtualenv:powershell
配置(例如,powershell.exe
或 pwsh
)。请注意,自 Conan 2.11.0 起,将其设置为 True
或 False
已被弃用,不应再使用。
注意
可以通过将 --env-generation=false
传递给 conan install
命令来禁用为消费者自动生成这些文件。此功能是实验性的,可能会发生更改,禁用此文件可能会导致意外的运行时错误。
参考¶
- class VirtualRunEnv(conanfile, auto_generate=False)¶
计算运行时上下文的环境变量,并生成 conanrunenv .bat 或 .sh 脚本
- 参数:
conanfile – 当前 recipe 对象。始终使用
self
。
- environment()¶
返回一个
Environment
对象,其中包含运行上下文的环境变量。- 返回值:
一个
Environment
对象实例,其中包含获取的变量。
- vars(scope='run')¶
- 参数:
scope – 要使用的作用域。
- 返回值:
一个
EnvVars
实例,其中包含计算出的环境变量。
- generate(scope='run')¶
生成启动器脚本,激活运行上下文的变量。
- 参数:
scope – 要使用的作用域。