Qbs¶
Qbs
构建辅助程序是 Qbs 构建工具命令行调用的包装器。 它将像 qbs resolve
、qbs build
和 qbs install
这样的调用抽象成 Python 方法调用。
该辅助程序旨在 build()
和 package()
方法中使用,以便在 Conan 直接构建包(创建、安装)时自动调用 Qbs 命令。
from conan import ConanFile
from conan.tools.qbs import Qbs, QbsProfile, QbsDeps
class App(ConanFile):
settings = "os", "arch", "compiler", "build_type"
exports_sources = "*.h", "*.cpp", "*.qbs",
requires = "hello/0.1"
options = {"shared": [True, False], "fPIC": [True, False]}
default_options = {"shared": False, "fPIC": True}
def generate(self):
profile = QbsProfile(self)
profile.generate()
deps = QbsDeps(self)
deps.generate()
def build(self):
qbs = Qbs(self)
qbs.resolve()
qbs.build()
def package(self):
qbs = Qbs(self)
qbs.install()
参考¶
- class Qbs(conanfile, project_file=None)¶
Qbs 辅助程序与 QbsDeps 功能一起使用。 此类提供辅助方法,用于包装对 Qbs 工具的调用。
- 参数:
conanfile – 当前的 recipe 对象。 始终使用
self
。project_file – 主项目文件的名称。 如果未设置,Qbs 将尝试自动检测项目文件。
- add_configuration(name, values)¶
为多配置构建添加构建配置。 很少需要此 Qbs 功能,因为每个 conan 包只能包含一个配置,但当创建同一产品的多个版本,并且这些版本应放在同一个 Conan 包中时,此功能可能很有用。
- 参数:
name – 配置的名称。 这对应于
qbs resolve
、qbs build
和qbs install
命令的config
参数。values – 包含此配置的 Qbs 属性及其值的 dict。
- resolve(parallel=True)¶
包装
qbs resolve
调用。 如果使用了 QbsDeps 生成器,这还将设置 Qbs “conan” 模块提供程序的必要属性,从而自动向项目添加依赖项。 :param parallel: 是否使用多线程解析。 默认为True
。
- build(products=None)¶
包装
qbs build
调用。- 参数:
products – 要构建的产品名称列表。 如果未设置,则构建所有将 builtByDefault 设置为 true 的产品。 此参数对应于
qbs build
命令的--products
选项。
应在调用此方法之前调用 resolve() 方法。
- build_all()¶
包装
qbs build --all-products
调用。 此方法构建所有产品,即使它们的 builtByDefault 属性为 false。 应在调用此方法之前调用 resolve() 方法。
- install()¶
包装
qbs install
调用。 执行 Qbs 项目中标记为可安装的文件的安装。 应该在调用此方法之前调用 build() 或 build_all() 方法。