def build_sources(sources, suffixes, cache, vars)
      sources.map do |source|
        if source.end_with?(*suffixes)
          source
        else
          converted = nil
          suffixes.each do |suffix|
            converted_fname = get_build_fname(source, suffix)
            if builder = find_builder_for(converted_fname, source, [])
              converted = run_builder(builder, converted_fname, [source], cache, vars)
              return nil unless converted
              break
            end
          end
          converted or raise "Could not find a builder to handle #{source.inspect}."
        end
      end
    end
def build_sources(sources, suffixes, cache, vars)
      sources.map do |source|
        if source.end_with?(*suffixes)
          source
        else
          converted = nil
          suffixes.each do |suffix|
            converted_fname = get_build_fname(source, suffix)
            if builder = find_builder_for(converted_fname, source, [])
              converted = run_builder(builder, converted_fname, [source], cache, vars)
              return nil unless converted
              break
            end
          end
          converted or raise "Could not find a builder to handle #{source.inspect}."
        end
      end
    end
Build a list of source files into files containing one of the suffixes
 given by suffixes.

 This method is used internally by Rscons builders.

 @deprecated Use {#register_builds} instead.

 @param sources [Array<String>] List of source files to build.
 @param suffixes [Array<String>]
   List of suffixes to try to convert source files into.
 @param cache [Cache] The Cache.
 @param vars [Hash] Extra variables to pass to the builder.

 @return [Array<String>] List of the converted file name(s).