We are considering moving to Gradle as the build system for our embedded projects. We need to use the new native plugins (cpp-appliation) as opposed to the Software Model plugins as CLion only supports the new plugins. According to the State and future of the Gradle Software Model article, the Software Model is to be deprecated and the native support back-ported to the current model. This was to be done in stages, with the most basic support to be ported first and then the more advanced configuration support later. It appears that the basic support has been done (available in the CPP Application Plugin), but none of the more advanced support.
As we are dealing with embedded projects, we will need more than the basics before we can move to Gradle. We need at minimum to be able to define an alternate platform and toolchain (for cross-compiling). Toolchain support was mentioned in the Software Model future article, but no indication as to when it might be done. Is there a proposed timeline for having this support available?
We haven’t gotten to tackling how to declare/configure tool chains in the new set of plugins. Currently, they piggyback off of the existing support, so you can configure Gradle to use particular tool chains. This is still limited to building for the host platform, so cross compilation isn’t supported out of the box.
We’ve started making changes to declare “platform”-like attributes for applications and libraries (like Operating System), but we have more work to do.
I hope we can share an update soon on our blog with the current state and the plan forward soon. We think these sort of things are the remaining items necessary to deprecate the software model plugins and recommend the new plugins as a better choice.
I also tested the native plugins for C development recently.
Since your blog post asked for feedback, I think there are some really good ideas in Gradle, but as it we cannot still take Gradle into use. Our target architectures are armel and armhf (hard float), so for us cross compiling support is a must have.