conan

Module provider for the Conan package manager. More...

Since: Qt 2.4

Properties

Detailed Description

This module provider allows integration with the Conan package manager.

Prerequisites

In order to use this provider, you will need Conan version 2.5.0 or higher. Earlier versions do not have the QbsDeps generator.

Example

For details on how to setup a project to use with Conan, see the l{https://github.com/qbs/qbs/blob/master/examples/protobuf/addressbook_conan}{addressbook_conan} folder in examples. First, you will need a conanfile as shown below.

[requires]
protobuf/3.21.12
[tool_requires]
protobuf/3.21.12
[generators]
QbsDeps

We use the text version for simplicity, but you can use the Python conanfile as well.

Next, set the qbsModuleProviders property to "conan":

import qbs.Host

CppApplication {
    consoleApplication: true
    condition: protobuf.cpp.present && qbs.targetPlatform === Host.platform()

    Depends { name: "cpp" }
    cpp.minimumMacosVersion: "11.0"

    Depends { name: "protobuf.cpp"; required: false }

    files: [
        "../shared/addressbook.proto",
        "main.cpp",
    ]
    qbsModuleProviders: "conan"
}

Install Conan dependencies and run the QbsDeps generator from the addressbook_conan dir:

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

This will create the ./build/qbs-deps directory contaning files for provider. Now you can pass the conan install directory to the provider:

$ qbs moduleProviders.conan.installDirectory:build

You should see the following output if everything is correct:

Build graph does not yet exist for configuration 'default'. Starting from scratch.
Resolving project for configuration default
Setting up Conan module 'protobuflib'
Setting up Conan module 'zlib'
...
Build done for configuration default.

Property Documentation

installDirectory : string

The path to the conan install installDirectory.

Qbs searches for files created by the QbsDeps generator in that directory.

If not set, the provider will not be run.

Default: undefined


© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.