25 lines
738 B
Ruby
25 lines
738 B
Ruby
class TestBuilder < Rscons::Builder
|
|
def run(options)
|
|
target, env, vars, cache = options.values_at(:target, :env, :vars, :cache)
|
|
if target == "two"
|
|
return false unless File.exists?("one")
|
|
end
|
|
wait_time = env.expand_varref("${wait_time}", vars)
|
|
command = ["ruby", "-e", "require 'fileutils'; sleep #{wait_time}; FileUtils.touch('#{target}');"]
|
|
standard_threaded_build("TestBuilder", target, command, [], env, cache)
|
|
end
|
|
|
|
def finalize(options)
|
|
standard_finalize(options)
|
|
end
|
|
end
|
|
|
|
build do
|
|
Environment.new do |env|
|
|
env.add_builder(TestBuilder)
|
|
one = env.TestBuilder("one", [], "wait_time" => "3")
|
|
two = env.TestBuilder("two", [], "wait_time" => "0")
|
|
env.depends(two, one)
|
|
end
|
|
end
|