class Rmk::RTags

Pass compilation database generated by compdb to RTags.

Attributes

daemon[RW]

check for rdm #daemon and start it if not running (default: true)

daemon_options[RW]

additional options to rdm #daemon (default: +'-j 4 -S'+)

quiet[RW]

stay #quiet about starting #daemon (default: false)

rc[RW]

#rc binary (default: +'rc'+)

rdm[RW]

#rdm binary (default: +'rdm'+)

wait_for_daemon[RW]

wait n seconds after #daemon was started (default: 2)

Public Class Methods

new() click to toggle source
Calls superclass method Rmk::NinjaGenerator.new
# File tools/rtags.rb, line 32
def initialize
  super
  @requires = [CompDB]
  data = tool_params(:RTags, generator.configuration)
  @enabled = data[:enabled] || false
  @rc = data[:rc]
  # @rdm = data[:rdm]
  # @daemon = data[:daemon]
  # @daemon_options = data[:daemon_options]
  # @daemon_nice = data[:daemon_nice]
  # @wait_for_daemon = data[:wait_for_daemon]
  # @quiet = data[:quiet]
  @slot = SLOTS[:begin]
end

Public Instance Methods

command_rtags() click to toggle source
# File tools/rtags.rb, line 47
def command_rtags
  "#{@rc} -J $builddir/#{compdb.filename} --wait && " \
  'touch $builddir/.rtags'
end
ninja_build(writer = generator.ninja) click to toggle source
# File tools/rtags.rb, line 57
def ninja_build(writer = generator.ninja)
  return unless @enabled
  unless compdb.rules.empty? ||
         compdb.rules.include?('cxx') || compdb.rules.include?('cc')
    logger.warn "rtags tool requires 'cc' and/or 'cxx' rule for compdb"
    return
  end

  writer.build('$builddir/.rtags', 'rtags',
               ["$builddir/#{compdb.filename}"])

  generator.add_to_intermediate_target(:rtags, '$builddir/.rtags')
  generator.add_to_toplevel_target(%i[default all], :rtags)
end
ninja_rules(writer = generator.ninja) click to toggle source
# File tools/rtags.rb, line 52
def ninja_rules(writer = generator.ninja)
  return unless @enabled
  writer.rule('rtags', command_rtags, description: 'update rtags')
end