parameters: (
      spec, options, gyp_dir, sources, excluded_sources, list_excluded, version
  )
return_statement: return sources, excluded_sources, excluded_idl
docstring: Adjusts the list of sources and excluded sources.
  
    Also converts the sets to lists.
  
    Arguments:
      spec: The target dictionary containing the properties of the target.
      options: Global generator options.
      gyp_dir: The path to the gyp file being processed.
      sources: A set of sources to be included for this project.
      excluded_sources: A set of sources to be excluded for this project.
      version: A MSVSVersion object.
    Returns:
      A trio of (list of sources, list of excluded sources,
                 path of excluded IDL file)
docstring_summary: Adjusts the list of sources and excluded sources.
docstring_tokens: Adjusts the list of sources and excluded sources .
function: def _AdjustSourcesAndConvertToFilterHierarchy(
      spec, options, gyp_dir, sources, excluded_sources, list_excluded, version
  ):
      """Adjusts the list of sources and excluded sources.
  
    Also converts the sets to lists.
  
    Arguments:
      spec: The target dictionary containing the properties of the target.
      options: Global generator options.
      gyp_dir: The path to the gyp file being processed.
      sources: A set of sources to be included for this project.
      excluded_sources: A set of sources to be excluded for this project.
      version: A MSVSVersion object.
    Returns:
      A trio of (list of sources, list of excluded sources,
                 path of excluded IDL file)
    """
      # Exclude excluded sources coming into the generator.
      excluded_sources.update(OrderedSet(spec.get("sources_excluded", [])))
      # Add excluded sources into sources for good measure.
      sources.update(excluded_sources)
      # Convert to proper windows form.
      # NOTE: sources goes from being a set to a list here.
      # NOTE: excluded_sources goes from being a set to a list here.
      sources = _FixPaths(sources)
      # Convert to proper windows form.
      excluded_sources = _FixPaths(excluded_sources)
  
      excluded_idl = _IdlFilesHandledNonNatively(spec, sources)
  
      precompiled_related = _GetPrecompileRelatedFiles(spec)
      # Find the excluded ones, minus the precompiled header related ones.
      fully_excluded = [i for i in excluded_sources if i not in precompiled_related]
  
      # Convert to folders and the right slashes.
      sources = [i.split("\\") for i in sources]
      sources = _ConvertSourcesToFilterHierarchy(
          sources,
          excluded=fully_excluded,
          list_excluded=list_excluded,
          msvs_version=version,
      )
  
      # Prune filters with a single child to flatten ugly directory structures
      # such as ../../src/modules/module1 etc.
      if version.UsesVcxproj():
          while (
              all([isinstance(s, MSVSProject.Filter) for s in sources])
              and len({s.name for s in sources}) == 1
          ):
              assert all([len(s.contents) == 1 for s in sources])
              sources = [s.contents[0] for s in sources]
      else:
          while len(sources) == 1 and isinstance(sources[0], MSVSProject.Filter):
              sources = sources[0].contents
  
      return sources, excluded_sources, excluded_idl
function_tokens: def _AdjustSourcesAndConvertToFilterHierarchy ( spec , options , gyp_dir , sources , excluded_sources , list_excluded , version ) : # Exclude excluded sources coming into the generator. excluded_sources . update ( OrderedSet ( spec . get ( "sources_excluded" , [ ] ) ) ) # Add excluded sources into sources for good measure. sources . update ( excluded_sources ) # Convert to proper windows form. # NOTE: sources goes from being a set to a list here. # NOTE: excluded_sources goes from being a set to a list here. sources = _FixPaths ( sources ) # Convert to proper windows form. excluded_sources = _FixPaths ( excluded_sources ) excluded_idl = _IdlFilesHandledNonNatively ( spec , sources ) precompiled_related = _GetPrecompileRelatedFiles ( spec ) # Find the excluded ones, minus the precompiled header related ones. fully_excluded = [ i for i in excluded_sources if i not in precompiled_related ] # Convert to folders and the right slashes. sources = [ i . split ( "\\" ) for i in sources ] sources = _ConvertSourcesToFilterHierarchy ( sources , excluded = fully_excluded , list_excluded = list_excluded , msvs_version = version , ) # Prune filters with a single child to flatten ugly directory structures # such as ../../src/modules/module1 etc. if version . UsesVcxproj ( ) : while ( all ( [ isinstance ( s , MSVSProject . Filter ) for s in sources ] ) and len ( { s . name for s in sources } ) == 1 ) : assert all ( [ len ( s . contents ) == 1 for s in sources ] ) sources = [ s . contents [ 0 ] for s in sources ] else : while len ( sources ) == 1 and isinstance ( sources [ 0 ] , MSVSProject . Filter ) : sources = sources [ 0 ] . contents return sources , excluded_sources , excluded_idl