bugfix: support invoking builders with no sources and a build root defined

This commit is contained in:
Josh Holtrop 2014-04-17 12:03:09 -04:00
parent 03ffb39956
commit 6f20a1da3f
2 changed files with 15 additions and 1 deletions

View File

@ -258,7 +258,7 @@ module Rscons
unless vars.nil? or vars.is_a?(Hash) or vars.is_a?(VarSet)
raise "Unexpected construction variable set: #{vars.inspect}"
end
sources = [sources] unless sources.is_a?(Array)
sources = Array(sources)
add_target(target, @builders[method.to_s], sources, vars, rest)
else
super

View File

@ -484,4 +484,18 @@ EOF
File.read("simplepp.cc").should =~ /# \d+ "simple.cc"/
`./simple`.should == "This is a simple C++ program\n"
end
it "supports invoking builders with no sources and a build_root defined" do
class TestBuilder < Rscons::Builder
def run(target, sources, cache, env, vars)
target
end
end
test_dir("simple")
Rscons::Environment.new do |env|
env.build_root = "build"
env.add_builder(TestBuilder.new)
env.TestBuilder("file")
end
end
end