Qbs

Qbs 构建助手是围绕 Qbs 构建工具的命令行调用的一个包装器。它将像 qbs resolveqbs buildqbs install 这样的调用抽象成 Python 方法调用。

此助手旨在用于 build()package() 方法中,当 Conan 直接构建包(创建、安装)时自动调用 Qbs 命令。

from conan import ConanFile
from conan.tools.qbs import Qbs, 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):
        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 – 当前配方对象。始终使用 self

  • project_file – 主项目文件的名称。如果未设置,Qbs 将尝试自动检测项目文件。

add_configuration(name, values)

为多配置构建添加构建配置。此 Qbs 功能很少需要,因为每个 conan 包只能包含一个配置,但是当创建应放入同一 Conan 包中的同一产品的多个版本时可能很有用。

参数:
  • name – 配置的名称。这对应于 qbs resolveqbs buildqbs install 命令的 config 参数。

  • values – 包含此配置的 Qbs 属性及其值的字典。

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() 方法。