On 27 Apr 2014, at 2:31 am, Daz DeBoer <darrell.deb...@gradleware.com> wrote:
> Hi Rene > > I don't think the Visual C++ installation is 'configurable' in the same way > as GCC. As far as I'm aware, the set of compilers and target platforms for > Visual Studio is a known set, unlike GCC which can be built to cross-compile > for virtually any platform. > > So I think we're better off focusing on modelling the platform differences > that different Visual Studio versions can target, rather than adding this > level of user customisation which may or may not help. > > So I would hold off on switching to 'withInvocation', at least for now. There > are more important stories to tackle. Might want to just update the spec to > cover the work already completed, and leave a story for the 'withInvocation' > change. I agree. Let’s park this for later. > > Daz > > > On Fri, Apr 25, 2014 at 9:04 AM, Rene Groeschke <gra...@breskeby.com> wrote: > Hey guys, > > I'm currently working on improving the toolchain configuration. > > With my latest changes it is possible to tweak commandline arguments > also for visualcpp toolchain: > > model { > toolChains { > visualCpp(VisualCpp) { > cppCompiler.withArguments { args -> > args << "-DFRENCH" > } > } > } > } > > Furthermore I tweaked the AbstractGccToolchain to allow a custom > executable per targetplatform: > > model { > toolChains { > clang(Clang) { > target("arm"){ > cCompiler.executable = '/usr/bin/my-c-compiler' > } > } > } > platforms { > arm { > architecture "arm" // uses custom-c-compiler > } > i386 { > architecture "i386" // uses default clang > } > } > } > > I'm not sure if customizing the executable for a visualcpp toolchain is > necessary. I don't have a usecase for that in mind. > > In > https://github.com/gradle/gradle/blob/master/design-docs/continuous-delivery-for-c-plus-plus.md#story-improved-dsl-for-tool-chain-configuration > we replace the withArgument method with a "withInvocation" block: > > model { > toolChains { > gcc(Gcc) { > cppCompiler.withInvocation { > executable "my-cpp-compiler" > args.replace("-m32", "-march=i386") > } > } > } > } > > > This defers the configuration of the executable just before the > compilation is started. IMO has different pros & cons > > - we can react on the default selected executable (e.g. pipe all clang++ > calls via my own clang script) > - a possible expensive configuration is only done when compilation is > done in the build > - every toolchain evaluates if the necessary tools are available. in the > last example this would look for a clang executable when detecting > available toolchains, even though it is not used. > > I discussed the current need for "withInvocation" with Daz a while ago > and I'm not sure about the benefit of this atm. Are there usecases here > I havn't thought of? > > cheers, > René > > > > > -- > Darrell (Daz) DeBoer > Principal Software Engineer, Gradleware > > Join us for Gradle Summit 2014, June 12th and 13th in Santa Clara, CA: > http://www.gradlesummit.com -- Adam Murdoch Gradle Co-founder http://www.gradle.org VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting http://www.gradleware.com Join us for Gradle Summit 2014, June 12th and 13th in Santa Clara, CA: http://www.gradlesummit.com