public <T extends BinaryToolSpec> Compiler<T> createWindowsResourceCompiler() {
   CommandLineTool<WindowsResourceCompileSpec> commandLineTool =
       commandLineTool("Windows resource compiler", sdk.getResourceCompiler(targetPlatform));
   Transformer<WindowsResourceCompileSpec, WindowsResourceCompileSpec> specTransformer =
       addIncludePath();
   commandLineTool.withSpecTransformer(specTransformer);
   WindowsResourceCompiler windowsResourceCompiler =
       new WindowsResourceCompiler(commandLineTool);
   return (Compiler<T>)
       new OutputCleaningCompiler<WindowsResourceCompileSpec>(windowsResourceCompiler, ".res");
 }
    private <T extends BinaryToolSpec> CommandLineTool<T> commandLineTool(
        String toolName, File exe) {
      CommandLineTool<T> tool = new CommandLineTool<T>(toolName, exe, execActionFactory);

      // The visual C++ tools use the path to find other executables
      tool.withPath(
          install.getVisualCppBin(targetPlatform),
          sdk.getBinDir(targetPlatform),
          install.getCommonIdeBin());

      return tool;
    }