class Rmk::Doxygen

Call Doxygan to extract documentation

Attributes

doxyfile[RW]

template file, will be used as ERB template

doxygen[RW]

Doxygen binary

force[RW]

#force re-build (dependence is never satisfied)

Public Class Methods

new() click to toggle source
Calls superclass method Rmk::Processor.new
# File tools/doxygen.rb, line 33
def initialize
  super

  @slot = SLOTS[:documentation]

  data = tool_params(:Doxygen, generator.configuration)
  @doxygen = data[:doxygen]
  @doxyfile = data[:doxyfile]
  @force = data[:force]
end

Public Instance Methods

command() click to toggle source
# File tools/doxygen.rb, line 44
def command
  "ruby #{File.expand_path(__FILE__)} $in > $out && " \
    "$doxygen $out #{cmd_force}"
end
ninja_build(writer = generator.ninja) click to toggle source
# File tools/doxygen.rb, line 70
def ninja_build(writer = generator.ninja)
  if !File.exist?(doxyfile)
    logger.warn "no doxygen configuration '#{doxyfile}'"
  else
    out = "$builddir/#{doxyfile}.out".gsub('.in.out', '.out')
    writer.build(out, 'doxygen', "${srcdir}/#{doxyfile}")
    generator.add_to_intermediate_target(:doxygen, out)
    generator.add_to_toplevel_target([:all], :doxygen)
  end
end
ninja_rules(writer = generator.ninja) click to toggle source
# File tools/doxygen.rb, line 65
def ninja_rules(writer = generator.ninja)
  writer.rule('doxygen', command,
              description: 'Doxygen $in', restat: 1)
end
ninja_variables(writer = generator.ninja) click to toggle source
# File tools/doxygen.rb, line 59
def ninja_variables(writer = generator.ninja)
  writer.comment 'Doxygen'
  writer.variable('doxygen', @doxygen)
  writer.newline
end

Protected Instance Methods

cmd_force() click to toggle source
# File tools/doxygen.rb, line 49
def cmd_force
  if force
    ' && rm $out' # TODO: rm is not portable
  else
    ''
  end
end