def get_build_fname(source_fname, suffix, options = {})
      build_fname = Rscons.set_suffix(source_fname, suffix).gsub('\\', '/')
      options[:features] ||= []
      extra_path = options[:features].include?("shared") ? "/_shared" : ""
      found_match = @build_dirs.find do |src_dir, obj_dir|
        if src_dir.is_a?(Regexp)
          build_fname.sub!(src_dir, "#{obj_dir}#{extra_path}")
        else
          build_fname.sub!(%r{^#{src_dir}/}, "#{obj_dir}#{extra_path}/")
        end
      end
      unless found_match
        if Rscons.absolute_path?(build_fname)
          if build_fname =~ %r{^(\w):(.*)$}
            build_fname = "#{@build_root}#{extra_path}/_#{$1}#{$2}"
          else
            build_fname = "#{@build_root}#{extra_path}/_#{build_fname}"
          end
        elsif !build_fname.start_with?("#{@build_root}/")
          build_fname = "#{@build_root}#{extra_path}/#{build_fname}"
        end
      end
      build_fname.gsub('\\', '/')
    end
def get_build_fname(source_fname, suffix, options = {})
      build_fname = Rscons.set_suffix(source_fname, suffix).gsub('\\', '/')
      options[:features] ||= []
      extra_path = options[:features].include?("shared") ? "/_shared" : ""
      found_match = @build_dirs.find do |src_dir, obj_dir|
        if src_dir.is_a?(Regexp)
          build_fname.sub!(src_dir, "#{obj_dir}#{extra_path}")
        else
          build_fname.sub!(%r{^#{src_dir}/}, "#{obj_dir}#{extra_path}/")
        end
      end
      unless found_match
        if Rscons.absolute_path?(build_fname)
          if build_fname =~ %r{^(\w):(.*)$}
            build_fname = "#{@build_root}#{extra_path}/_#{$1}#{$2}"
          else
            build_fname = "#{@build_root}#{extra_path}/_#{build_fname}"
          end
        elsif !build_fname.start_with?("#{@build_root}/")
          build_fname = "#{@build_root}#{extra_path}/#{build_fname}"
        end
      end
      build_fname.gsub('\\', '/')
    end
Return the file name to be built from +source_fname+ with suffix
 +suffix+.

 This method takes into account the Environment's build directories.

 @param source_fname [String]
   Source file name.
 @param suffix [String]
   Suffix, including "." if desired.
 @param options [Hash]
   Extra options.
 @option options [Array<String>] :features
   Builder features to be used for this build. See {#register_builds}.

 @return [String]
   The file name to be built from +source_fname+ with suffix +suffix+.