The builder's #run method will be called repeatedly until it returns true or false. The Builder#wait_for method can be used to cause a builder to wait for a Thread, Command, or another Builder.
22 lines
385 B
Ruby
22 lines
385 B
Ruby
class MyBuilder < Rscons::Builder
|
|
def run(options)
|
|
if @thread
|
|
true
|
|
else
|
|
@env.print_builder_run_message("#{name} #{target}", nil)
|
|
@thread = Thread.new do
|
|
sleep 2
|
|
FileUtils.touch(@target)
|
|
end
|
|
wait_for(@thread)
|
|
end
|
|
end
|
|
end
|
|
|
|
build do
|
|
Environment.new do |env|
|
|
env.add_builder(MyBuilder)
|
|
env.MyBuilder("foo")
|
|
end
|
|
end
|