parameters: (spec, msbuild)
return_statement: return out_file, vc_tool, msbuild_tool
docstring: Returns the path and tool to use for this target.
  
    Figures out the path of the file this spec will create and the name of
    the VC tool that will create it.
  
    Arguments:
      spec: The target dictionary containing the properties of the target.
    Returns:
      A triple of (file path, name of the vc tool, name of the msbuild tool)
docstring_summary: Returns the path and tool to use for this target.
docstring_tokens: Returns the path and tool to use for this target .
function: def _GetOutputFilePathAndTool(spec, msbuild):
    """Returns the path and tool to use for this target.
  
    Figures out the path of the file this spec will create and the name of
    the VC tool that will create it.
  
    Arguments:
      spec: The target dictionary containing the properties of the target.
    Returns:
      A triple of (file path, name of the vc tool, name of the msbuild tool)
    """
    # Select a name for the output file.
    out_file = ''
    vc_tool = ''
    msbuild_tool = ''
    output_file_map = {
        'executable': ('VCLinkerTool', 'Link', '$(OutDir)', '.exe'),
        'shared_library': ('VCLinkerTool', 'Link', '$(OutDir)', '.dll'),
        'loadable_module': ('VCLinkerTool', 'Link', '$(OutDir)', '.dll'),
        'static_library': ('VCLibrarianTool', 'Lib', '$(OutDir)lib\\', '.lib'),
    }
    output_file_props = output_file_map.get(spec['type'])
    if output_file_props and int(spec.get('msvs_auto_output_file', 1)):
      vc_tool, msbuild_tool, out_dir, suffix = output_file_props
      if spec.get('standalone_static_library', 0):
        out_dir = '$(OutDir)'
      out_dir = spec.get('product_dir', out_dir)
      product_extension = spec.get('product_extension')
      if product_extension:
        suffix = '.' + product_extension
      elif msbuild:
        suffix = '$(TargetExt)'
      prefix = spec.get('product_prefix', '')
      product_name = spec.get('product_name', '$(ProjectName)')
      out_file = ntpath.join(out_dir, prefix + product_name + suffix)
    return out_file, vc_tool, msbuild_tool
function_tokens: def _GetOutputFilePathAndTool ( spec , msbuild ) : # Select a name for the output file. out_file = '' vc_tool = '' msbuild_tool = '' output_file_map = { 'executable' : ( 'VCLinkerTool' , 'Link' , '$(OutDir)' , '.exe' ) , 'shared_library' : ( 'VCLinkerTool' , 'Link' , '$(OutDir)' , '.dll' ) , 'loadable_module' : ( 'VCLinkerTool' , 'Link' , '$(OutDir)' , '.dll' ) , 'static_library' : ( 'VCLibrarianTool' , 'Lib' , '$(OutDir)lib\\' , '.lib' ) , } output_file_props = output_file_map . get ( spec [ 'type' ] ) if output_file_props and int ( spec . get ( 'msvs_auto_output_file' , 1 ) ) : vc_tool , msbuild_tool , out_dir , suffix = output_file_props if spec . get ( 'standalone_static_library' , 0 ) : out_dir = '$(OutDir)' out_dir = spec . get ( 'product_dir' , out_dir ) product_extension = spec . get ( 'product_extension' ) if product_extension : suffix = '.' + product_extension elif msbuild : suffix = '$(TargetExt)' prefix = spec . get ( 'product_prefix' , '' ) product_name = spec . get ( 'product_name' , '$(ProjectName)' ) out_file = ntpath . join ( out_dir , prefix + product_name + suffix ) return out_file , vc_tool , msbuild_tool