ConanfileProbe

从Conan配方文件中提取依赖信息。更多...

属性

详细信息

ConanfileProbe让Qbs与Conan包管理器交互。它对Conan配方文件,如conanfile.pyconanfile.txt,运行conan install,并使用json生成器提取所有关于包依赖的元信息。该输出可以被用来设置产品的配置项或模块属性。ConanfileProbe也可以用来运行其他Conan生成器并检索它们的输出。

示例

在以下示例中,我们假设我们的项目包含一个conanfile.py。此文件描述了我们项目的所有依赖关系。预期依赖包导出元信息,供我们的项目使用。

包含由Conan生成的文件

Conan有一个内置的qbs生成器,它创建一个包含占位符产品的项目文件。这是访问依赖关系最简单的方法,但也是最不灵活的方法。它要求每个Conan包导出正确的元信息,并且只有当依赖关系是库时才有效。

import qbs.Probes

Project {
    Probes.ConanfileProbe {
        id: conan
        conanfilePath: project.sourceDirectory + "/conanfile.py"
        generators: "qbs"
    }

    references: conan.generatedFilesPath + "/conanbuildinfo.qbs"

    CppApplication {
        type: "application"
        files: "main.cpp"
        Depends { name: "mylib" }
    }
}

在产品中设置模块属性

当一个产品依赖于没有专用模块的Conan包时,包元信息可以直接输入到cpp模块中。

这种方法非常灵活。

import qbs.Probes

CppApplication {
    Probes.ConanfileProbe {
        id: conan
        conanfilePath: product.sourceDirectory + "/conanfile.py"
        options: ({opt1: "True"; opt2: "TheValue"})
    }
    cpp.includePaths: conan.dependencies["myLib"].include_paths
    cpp.libraryPaths: conan.dependencies["myLib"].lib_paths
    cpp.dynamicLibraries: conan.dependencies["mylib"].libs
}

配置配置文件

当多个产品依赖于一个或多个Conan包时,依赖信息可以被组合在一个配置文件中。这在Qbs模块对于某些包可用时,但需要初始化它们的某些属性时非常有用。否则,必须在全局配置文件中手动执行。

import qbs.Probes

Project {
    Probes.ConanfileProbe {
        id: conan
        conanfilePath: project.sourceDirectory + "/conanfile.py"
    }
    Profile {
        name: "arm-gcc"
        cpp.toolchainInstallPath: conan.dependencies["arm-none-eabi-gcc"].rootpath + "/bin"
        cpp.toolchainPrefix: "arm-linux-gnueabi-"
        qbs.toolchainType: "gcc"
    }
}

这允许完全自动化的依赖关系管理,包括编译工具链,在团队在异构环境中工作时非常有用。

属性文档

additionalArguments : stringList

附加的命令行参数,追加到 conan install 命令。

默认值:[]


conanfilePath : path

此探针使用的 conanfile.pyconanfile.txt 的路径。

此属性不能与 packageReference 同时设置。

默认值:未定义


[只读] dependencies : var

此属性包含与 json.dependencies 相同的信息,但 dependencies 是一个以包名为键的映射,便于访问。

默认值:未定义


executable : path

Conan 可执行文件名称或路径。

默认值:Windows 上为 "conan.exe",其他情况为 "conan"


[只读] generatedFilesPath : path

Conan 生成器在其中的文件夹路径。此探针的每个实例在 Project.buildDirectory 下创建一个唯一的文件夹。文件夹名称是提供给 conan install 的参数的哈希值。

默认值:未定义


generators : stringList

此探针要执行的所有康奈尔生成器。总是启用 JSON生成器。生成的文件写入到 generatedFilesPath 文件夹。

默认值:["json"]

另请参阅 可用生成器


[只读] json : var

作为 JavaScript 对象的解析输出为康奈尔的 JSON生成器

默认值:未定义


options : var

通过 -o 标志应用在 conan install 上的选项。此属性是形如 键:值 的对象。

示例

options: ({someOpt: "True", someOtherOpt: "TheValue"})

默认值:未定义


packageReference : string

康奈尔包的引用形式为 name/version@user/channel。如果您想检查本地缓存或远程上的现有包,请使用此属性。

此属性不能与 conanfilePath 同时设置。

默认值:未定义


settings : var

通过 -s 标志 applies to conan install。此属性是形式为 key:value 的对象。

示例

settings: ({os: "Linux", compiler: "gcc"})

默认值:未定义


verbose : var

设置為 true 以打印 `conan install` 的所有输出。如果此属性为 false,则仅打印错误输出。

默认值:false


©2023 Qt 公司有限公司。包含在本处的文档贡献是各自拥有者的版权。本处提供的文档是根据免费软件基金会发布的条款许可的GNUPublicDocumentationLicense版本1.3。Qt及其相关标志是芬兰以及/或世界上其他国家的Qt公司的商标。所有其他商标均为各自所有者的财产。