I see that Artifactory is in the process of adding conan.io to address the lack of C/C++ dependency management. I also see that cmake and several other tools are well supported by conan. Is there any chance that Gradle has looked at this solution for their native dependency management?
This has been on the roadmap for a long, long time. What is the current status of external/third party native dependency publishing and resolution for gradle’s native plugins? If not conan.io, is there another solution coming soon?
Thanks Kevin for sharing this with us. It does look like a very good idea. In the current state and from what I understand from conan.io, it would be possible to write a community plugin to support this. This would be the preferred direction.
Regarding the roadmap for native dependency management, we started breaking down the work required to achieve this. As a first step, we need to migrate the local dependency management to what is used in the JVM space as it’s much more flexible. Native heavily use variant dependency management which is currently been added to the JVM domain. Once we migrate, we will be able to connect and use the much more powerful API for remote dependency.
In its current state, it is possible and was achieved, to publish native artifact using ivy. Resolution is a bit more complicated as the ivy API is not easily accessible through Gradle. However, it is possible to use the ivy client directly to achieve the flexibility required. Quite some work need to be tackled before it can be used effortlessly.
JFrog Bintray just today announced support for Conan repositories and Conan is documented in Artifactory. Please develop Gradle to publish to and resolve from Conan repositories just as seemless as to and from Maven repositories. Since Gradle advertises support for native software, why not publish and resolve as done for Java software? I’ve spent more time than I care to admit writing custom tasks and dealing with classifiers.
Thanks for voicing your concern @justinpa_asg, we are looking into improving the dependency management for native. We can’t give an ETA at the moment but it’s on our roadmap.
You have no idea how much I want that support as well. However, that support will come as part of Nokee (https://nokee.dev). We are currently stabilizing some APIs that will help us address the whole toolchain/conan/nuget/vcpkg/etc stories. I hope we can get something to try by the end of the summer.
After reintroducing myself to Gradle Native support, I learned that you can use C++ dependencies from a Maven repository.
Strange, was my first thought.
Why not use Conan, was my second thought.
The documentation does mention that support for other repository types will come later.