Qbs

Qbs 构建辅助程序是 Qbs 构建工具命令行调用的包装器。 它将像 qbs resolveqbs buildqbs 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 resolveqbs buildqbs 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() 方法。