def standard_threaded_build(short_cmd_string, target, command, sources, env, cache, options = {})
      if cache.up_to_date?(target, command, sources, env)
        target
      else
        unless Rscons.phony_target?(target)
          cache.mkdir_p(File.dirname(target))
          FileUtils.rm_f(target)
        end
        tc_options = {short_description: short_cmd_string}
        if options[:stdout]
          tc_options[:system_options] = {out: options[:stdout]}
        end
        ThreadedCommand.new(command, tc_options)
      end
    end
def standard_threaded_build(short_cmd_string, target, command, sources, env, cache, options = {})
      if cache.up_to_date?(target, command, sources, env)
        target
      else
        unless Rscons.phony_target?(target)
          cache.mkdir_p(File.dirname(target))
          FileUtils.rm_f(target)
        end
        tc_options = {short_description: short_cmd_string}
        if options[:stdout]
          tc_options[:system_options] = {out: options[:stdout]}
        end
        ThreadedCommand.new(command, tc_options)
      end
    end
Check if the cache is up to date for the target and if not create a
 {ThreadedCommand} object to execute the build command in a thread.

 @since 1.10.0

 @param short_cmd_string [String]
   Short description of build action to be printed when env.echo ==
   :short.
 @param target [String] Name of the target file.
 @param command [Array<String>]
   The command to execute to build the target.
 @param sources [Array<String>] Source file name(s).
 @param env [Environment] The Environment executing the builder.
 @param cache [Cache] The Cache object.
 @param options [Hash] Options.
 @option options [String] :stdout
   File name to redirect standard output to.

 @return [String,ThreadedCommand]
   The name of the target if it is already up to date or the
   {ThreadedCommand} object created to update it.