We have been working intensely for months for the Conan package manager to distribute Qt packages. Today, we are happy to provide you a technology preview.
Conan is a decentralized cross-platform package manager for C and C++. It is also a dependency manager, taking care of all transitive dependencies and their versions.
So far, there have been two official ways to get Qt: either using binary installers or building from sources. With Conan both can be achieved in a more convenient and automated way. This also makes it easier to use Qt as part of large number of dependencies and allows creating Qt builds for targets that are not supported in the pre-built binary packages.
One Conan package per Qt module git repository is provided. In the future, we may split e.g. qtbase into one Conan package per Qt module. Currently this is implemented for qtscxml. This will make even more fine grained usage of Qt possible.
The technology preview is based on Qt 6.2.2 content. All Qt 6.2.2 modules are supported, but currently only for the desktop platforms.
How to use?
The following animation shows, how to take Conan into use. The credentials for the Conan server are created using Qt Account portal. Full getting started instructions are available in https://wiki.qt.io/Using_Conan_for_Qt6.
After the initial setup, Conan can be used to search available Conan packages, how to install packages, and how to build the packages and package dependencies.
Look behind the scenes
Qt CI uses Conan to run the integrations and to produce the actual Conan packages. Qt CI uses an Artifactory instance as a storage, which is currently cloud-based with limited capacity, but the plan is to upgrade to an on-premises cluster with higher I/O capacity.
The same Artifactory instance serves also as a distribution server. Later a higher capacity cloud instance of Artifactory for distribution and CDN support is planned to be used. The Qt Conan packages are not available via the Conan Center repository (that however contains some Qt 6 packages provided by the community). We provide all modules separately as Conan packages, while Conan center has one monolithic Qt 6 Conan package. By using our own server, we are free to experiment. We also want to build Conan packages as integral part of the Qt CI system, where we integrate and test all our supported build configurations and platforms.
You can use our Conan server independent whether you are an open source or commercial user. To access the server, authentication is needed using the conan(.exe) client.
Now we are in the technology preview state and we hope to get a lot of feedback to make Conan as a first class citizen in Qt. So please let us know your thoughts in this blog post or in Jira. Please use the component Conan in your bug report to allow easy filtering.