import SCons.Util, os

def generate(env) :
  def modify_targets(target, source, env) :
    target = [env.File("html/index.html")]
    return target, source

  def generate_actions(source, target, env, for_signature) :
    if env.WhereIs("$DOXYGEN") and env.WhereIs("$DOT") :
      return [SCons.Action.Action("$DOXYGEN $SOURCE", cmdstr = "$DOXYCOMSTR")]
    else :
      return []

  env["DOXYGEN"] = "doxygen"
  # FIXME: For some reason, things go incredibly slow (at least on OS X)
  # when not doing this. Some environment flag is having an effect on
  # this; find out which
  env["ENV"] = os.environ
  env["DOT"] = "dot"
  env["BUILDERS"]["DoxyGen"] = SCons.Builder.Builder(
    emitter = modify_targets,
    generator = generate_actions,
    single_source = True)

def exists(env) :
  return True