QbsDeps

QbsDeps 生成器会为每个依赖项生成必要的文件,以便能够使用 qbs Depends 项来定位依赖项。它可以像这样使用:

from conan import ConanFile

class App(ConanFile):
    settings = "os", "arch", "compiler", "build_type"
    requires = "hello/0.1"
    generators = "QbsDeps"

也可以在 generate() 方法中手动使用 QbsDeps

from conan import ConanFile
from conan.tools.qbs import QbsDeps

class App(ConanFile):
    settings = "os", "arch", "compiler", "build_type"
    requires = "hello/0.1"

    def generate(self):
        deps = QbsDeps(self)
        deps.generate()

可以使用 Depends 项添加对应用程序的依赖项

project.qbs
CppApplication {
    Depends { name: "hello"; version: "0.1" }
    files: "main.c"
    qbs.installPrefix: ""
    install: true
    qbsModuleProviders: "conan"
    moduleProviders.conan.installDirectory: "build"
}

请注意,我们正在将 qbsModuleProviders 属性设置为 "conan",以告知 Qbs 依赖项是由 Conan 生成的。我们还将 conan 模块提供程序的 installDirectory 属性设置为 "build",以告知提供程序在源目录中的 build 目录中查找生成的文件。也可以从命令行设置此值。

我们使用 conan install 命令安装依赖项。

$ conan install . --output-folder=build --build missing

最后,我们可以通过简单地调用 Qbs 来构建项目

$ qbs

请注意,当使用 QbsDeps 生成器时,Qbs 助手会自动设置 conan.installDirectory 属性。

另请参阅

参考

class QbsDeps(conanfile)

此类将在“conan-qbs-deps”文件夹中为每个依赖项生成一个 JSON 文件。每个 JSON 文件都包含 Qbs "conan" module provider 能够生成 Qbs 模块文件所需的信息。

参数:

conanfile – 当前配方对象。始终使用 self

property content

将所有依赖项信息作为 Python dict 对象返回,其中键是依赖项名称,值是包含依赖项属性的 dict。

generate()

此方法会将生成的文件保存到 conanfile.generators_folder 目录中的“conan-qbs-deps”目录。为每个依赖项或组件生成一个 JSON 文件。