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



Reply via email to