parameters: (sources, root_dir)
return_statement: return missing_sources
docstring: Verifies that all source files exist on disk.
  
    Checks that all regular source files, i.e. not created at run time,
    exist on disk.  Missing files cause needless recompilation but no otherwise
    visible errors.
  
    Arguments:
      sources: A recursive list of Filter/file names.
      root_dir: The root directory for the relative path names.
    Returns:
      A list of source files that cannot be found on disk.
docstring_summary: Verifies that all source files exist on disk.
docstring_tokens: Verifies that all source files exist on disk .
function: def _VerifySourcesExist(sources, root_dir):
      """Verifies that all source files exist on disk.
  
    Checks that all regular source files, i.e. not created at run time,
    exist on disk.  Missing files cause needless recompilation but no otherwise
    visible errors.
  
    Arguments:
      sources: A recursive list of Filter/file names.
      root_dir: The root directory for the relative path names.
    Returns:
      A list of source files that cannot be found on disk.
    """
      missing_sources = []
      for source in sources:
          if isinstance(source, MSVSProject.Filter):
              missing_sources.extend(_VerifySourcesExist(source.contents, root_dir))
          else:
              if "$" not in source:
                  full_path = os.path.join(root_dir, source)
                  if not os.path.exists(full_path):
                      missing_sources.append(full_path)
      return missing_sources
function_tokens: def _VerifySourcesExist ( sources , root_dir ) : missing_sources = [ ] for source in sources : if isinstance ( source , MSVSProject . Filter ) : missing_sources . extend ( _VerifySourcesExist ( source . contents , root_dir ) ) else : if "$" not in source : full_path = os . path . join ( root_dir , source ) if not os . path . exists ( full_path ) : missing_sources . append ( full_path ) return missing_sources