class Autorake::Builder

Attributes

quiet[RW]
verbose[RW]

Public Instance Methods

cc(*a) click to toggle source
# File lib/autorake/compile.rb, line 15
def cc *a
  command "CC", "cc" do build *a end
end
cpp(*a)
Alias for: cxx
cxx(*a) click to toggle source
# File lib/autorake/compile.rb, line 19
def cxx *a
  command "CXX", "c++" do build *a end
end
Also aliased as: cpp

Private Instance Methods

build(*a) click to toggle source
# File lib/autorake/compile.rb, line 33
def build *a
  a.flatten!
  a.compact!
  a.unshift @cmd
  if Builder.verbose then
    m = a.join " "
    puts m
  end
  f = fork do
    $stderr.reopen "/dev/null" if Builder.quiet
    exec *a
  end
  Process.waitpid f
  $?.success? or raise Error, "#{self.class} failed."
end
command(env, default) { || ... } click to toggle source
# File lib/autorake/compile.rb, line 26
def command env, default
  @cmd = ENV[ env] || default
  yield
ensure
  @cmd = nil
end