This is somewhat fixed now. The GCC toolchain no longer complains if it can’t find a compiler that isn’t required to build the binaries. There’s still no way to tweak the objective-c and objective-c++ compilers, but I don’t think this affects you. I’ll add this configuration mechanism soon.
On 7 Mar 2014, at 9:04 am, Xavier Ducrohet <x...@google.com> wrote: > great, thanks! > > > On Thu, Mar 6, 2014 at 1:46 PM, Adam Murdoch <adam.murd...@gradleware.com> > wrote: > > On 7 Mar 2014, at 8:24 am, Xavier Ducrohet <x...@google.com> wrote: > >> Thanks Daz, >> >> Is there time to fix this in 1.12? > > Yes there is. I’ll fix it soon. > >> >> I'll create a script that temporarily create those files so that I can move >> forward. >> >> thanks again. >> >> >> On Thu, Mar 6, 2014 at 1:19 PM, Daz DeBoer <darrell.deb...@gradleware.com> >> wrote: >> On Thu, Mar 6, 2014 at 2:10 PM, Xavier Ducrohet <x...@google.com> wrote: >> ok so with progress made on the other thread, I'm running into new problems. >> I'll keep on this thread since it's more relevant. >> >> with: >> toolChains { >> gcc(Gcc) { >> path >> '/path/to/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin' >> getCCompiler().executable = 'x86_64-linux-g++' >> getCppCompiler().executable = 'x86_64-linux-g++' >> getLinker().executable = 'x86_64-linux-ld' >> getAssembler().executable = 'x86_64-linux-as' >> } >> >> building fails with: >> >> * What went wrong: >> Execution failed for task ':compileLinux32MksdcardExecutableMksdcardC'. >> > No tool chain is available to build for platform 'linux32': >> - Tool chain 'gcc' (GNU GCC): >> - Could not find Objective-C++ compiler 'g++'. Searched in: >> /usr/local/google/home/xav/dev/ext/idea133/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin >> >> It looks like it's still looking for "g++" instead of the compiler >> executable I set. I'm also a bit confused with the message mentioning >> "Objective-C++". >> >> >> Well that's a pretty sucky experience :). We've added Objective-C++ support >> for GCC, but in doing so we've made it a requirement that each GCC tool >> chain have an objective-c and objective-c++ compiler. These are named 'gcc' >> and 'g++' by default, but there's no equivalent mechanism to set the >> executable for them. >> >> Your best bet would be to create empty files named 'g++' and 'gcc' in the >> same directory. Or symlink the real compilers to those names. Apologies for >> the inconvenience. >> Daz >> >> On Thu, Mar 6, 2014 at 12:14 PM, Xavier Ducrohet <x...@google.com> wrote: >> Hi Daz, >> >> I'm not seeing any message about my toolchain not being available. When I >> try to build the MacOS exe on linux it does complain with: >> >> Execution failed for task ':compileDarwin32MksdcardExecutableMksdcardC'. >> > No tool chain is available to build for platform 'darwin32': >> - Tool chain 'visualCpp' (Visual Studio): Visual Studio is not available >> on this operating system. >> - Tool chain 'gcc' (GNU GCC): Don't know how to build for platform >> 'darwin32'. >> - Tool chain 'clang' (Clang): Could not find C++ compiler 'clang++' in >> system path. >> >> I'm using Gradle 1.11, and I hadn't realized GccTool can customize the >> executable! >> >> My build.gradle file now looks like: >> >> model { >> toolchains { >> gcc(Gcc) { >> path >> '/path/to/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6' >> cCompiler.executable = 'x86_64-linux-g++' >> cppCompiler.executable = 'x86_64-linux-g++' >> linker.executable = 'x86_64-linux-ld' >> assembler.executable = 'x86_64-linux-as' >> } >> } >> } >> >> and it's still not doing anything. The --info still doesn't show any special >> output about my config being broken (or even used in anyway). >> >> Am I correctly replacing the default toolchain or just adding a new one >> that's lower priority than the default? >> >> >> On Thu, Mar 6, 2014 at 11:59 AM, Daz DeBoer <darrell.deb...@gradleware.com> >> wrote: >> On Thu, Mar 6, 2014 at 12:37 PM, Xavier Ducrohet <x...@google.com> wrote: >> From the example in the docs: >> >> model { >> toolChains { >> gcc(Gcc) { >> // Uncomment to use a GCC install that is not in the PATH >> // path "/usr/bin/gcc" >> } >> } >> } >> >> and the DSL documentation, it seems the only configuration for a GCC >> toolchain is the "path". >> >> I've tried to use it but it seems like it always revert to my install GCC >> that's present in the path. >> >> Looking at the info output it shows: >> >> Starting process 'command '/usr/bin/g++''. Working directory: /usr/bin >> Command: /usr/bin/g++ -dM -E - >> Successfully started process 'command '/usr/bin/g++'' >> Found C++ compiler with version 4 >> >> Yes, this is likely Gradle executing the compiler to get the version string. >> >> But it doesn't show the same for my custom toolchain, so it seems like it's >> not even trying to use it. >> >> If you actually try to build something, you should get a message describing >> why the tool chain is not available. Are you not seeing that? >> Perhaps just define an executable with a windows platform, and see what gets >> reported. >> >> >> One thing though is that my custom toolchain doesn't have a g++ entry in its >> "bin" folder. Instead it has "i686-linux-g++". Is this the source of the >> problem? >> >> Very likely. >> >> >> The Gcc class has properties for the c/c++ compiler, linker, etc... but >> those are read only so I can't customize them. >> >> What version of Gradle are you using? These properties are indeed read-only, >> but they are configurable objects of type 'GccTool': >> http://www.gradle.org/docs/nightly/dsl/org.gradle.nativebinaries.toolchain.Gcc.html#org.gradle.nativebinaries.toolchain.Gcc:cCompiler >> >> Daz >> >> >> >> > > > -- > Adam Murdoch > Gradle Co-founder > http://www.gradle.org > VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting > http://www.gradleware.com > > > > -- Adam Murdoch Gradle Co-founder http://www.gradle.org VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting http://www.gradleware.com