allow phony targets in conjunction with a build root
This commit is contained in:
1 parent
bab4641b6e
commit
0442b876a5
2 files changed
+30
-23
No files matched your search
+25
-22
@@ -933,33 +933,36 @@ EOF
|
||||
end
|
||||
|
||||
context "phony targets" do
|
||||
it "allows specifying a Symbol as a target name and reruns the builder if the sources or command have changed" do
|
||||
test_dir("simple")
|
||||
env = Rscons::Environment.new do |env|
|
||||
env.add_builder(:Checker) do |target, sources, cache, env, vars|
|
||||
unless cache.up_to_date?(target, :Checker, sources, env)
|
||||
puts "Checker #{sources.first}" if env.echo != :off
|
||||
cache.register_build(target, :Checker, sources, env)
|
||||
[false, true].each do |with_build_root|
|
||||
it "allows specifying a Symbol as a target name and reruns the builder if the sources or command have changed" do
|
||||
test_dir("simple")
|
||||
env = Rscons::Environment.new do |env|
|
||||
env.build_root = "bld" if with_build_root
|
||||
env.add_builder(:Checker) do |target, sources, cache, env, vars|
|
||||
unless cache.up_to_date?(target, :Checker, sources, env)
|
||||
puts "Checker #{sources.first}" if env.echo != :off
|
||||
cache.register_build(target, :Checker, sources, env)
|
||||
end
|
||||
target
|
||||
end
|
||||
target
|
||||
env.Program("simple.exe", "simple.c")
|
||||
env.Checker(:checker, "simple.exe")
|
||||
end
|
||||
env.Program("simple.exe", "simple.c")
|
||||
env.Checker(:checker, "simple.exe")
|
||||
end
|
||||
expect(lines).to eq(["CC simple.o", "LD simple.exe", "Checker simple.exe"])
|
||||
expect(lines).to eq(["CC #{with_build_root ? 'bld/' : ''}simple.o", "LD simple.exe", "Checker simple.exe"])
|
||||
|
||||
env.clone do |env|
|
||||
env.Checker(:checker, "simple.exe")
|
||||
end
|
||||
expect(lines).to eq([])
|
||||
env.clone do |env|
|
||||
env.Checker(:checker, "simple.exe")
|
||||
end
|
||||
expect(lines).to eq([])
|
||||
|
||||
File.open("simple.exe", "w") do |fh|
|
||||
fh.puts "Changed simple.exe"
|
||||
File.open("simple.exe", "w") do |fh|
|
||||
fh.puts "Changed simple.exe"
|
||||
end
|
||||
env.clone do |env|
|
||||
env.Checker(:checker, "simple.exe")
|
||||
end
|
||||
expect(lines).to eq(["Checker simple.exe"])
|
||||
end
|
||||
env.clone do |env|
|
||||
env.Checker(:checker, "simple.exe")
|
||||
end
|
||||
expect(lines).to eq(["Checker simple.exe"])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in new issue
Block a user