change build_dir build test to test build_dir specified as a Regexp
This commit is contained in:
parent
e50aac31c9
commit
dc6bac2895
@ -1,5 +1,5 @@
|
||||
Rscons::Environment.new do |env|
|
||||
env.append('CPPPATH' => Dir['src/**/*/'])
|
||||
env.build_dir('src', 'build')
|
||||
env.build_dir(%r{^src/([^/]+)/}, 'build_\\1/')
|
||||
env.Program('build_dir', Dir['src/**/*.c'])
|
||||
end
|
||||
|
@ -78,7 +78,6 @@ module Rscons
|
||||
# Source files from src_dir will produce object files under obj_dir.
|
||||
def build_dir(src_dir, obj_dir)
|
||||
src_dir = src_dir.gsub('\\', '/') if src_dir.is_a?(String)
|
||||
obj_dir = obj_dir.gsub('\\', '/')
|
||||
@build_dirs << [src_dir, obj_dir]
|
||||
end
|
||||
|
||||
@ -92,7 +91,7 @@ module Rscons
|
||||
if src_dir.is_a?(Regexp)
|
||||
build_fname.sub!(src_dir, obj_dir)
|
||||
else
|
||||
build_fname.sub!(/^#{src_dir}\//, "#{obj_dir}/")
|
||||
build_fname.sub!(%r{^#{src_dir}/}, "#{obj_dir}/")
|
||||
end
|
||||
build_fname.gsub!('\\', '/')
|
||||
end
|
||||
|
@ -130,36 +130,34 @@ EOF
|
||||
it 'builds object files in a different build directory' do
|
||||
lines = test_dir('build_dir')
|
||||
`./build_dir`.should == "Hello from two()\n"
|
||||
File.exists?('build/one/one.o').should be_true
|
||||
File.exists?('build/two/two.o').should be_true
|
||||
File.exists?('build_one/one.o').should be_true
|
||||
File.exists?('build_two/two.o').should be_true
|
||||
end
|
||||
|
||||
it 'cleans built files' do
|
||||
lines = test_dir('build_dir')
|
||||
`./build_dir`.should == "Hello from two()\n"
|
||||
File.exists?('build/one/one.o').should be_true
|
||||
File.exists?('build/two/two.o').should be_true
|
||||
File.exists?('build_one/one.o').should be_true
|
||||
File.exists?('build_two/two.o').should be_true
|
||||
Rscons.clean
|
||||
File.exists?('build/one/one.o').should be_false
|
||||
File.exists?('build/two/two.o').should be_false
|
||||
File.exists?('build/one').should be_false
|
||||
File.exists?('build/two').should be_false
|
||||
File.exists?('build').should be_false
|
||||
File.exists?('build_one/one.o').should be_false
|
||||
File.exists?('build_two/two.o').should be_false
|
||||
File.exists?('build_one').should be_false
|
||||
File.exists?('build_two').should be_false
|
||||
File.exists?('src/one/one.c').should be_true
|
||||
end
|
||||
|
||||
it 'does not clean created directories if other non-rscons-generated files reside there' do
|
||||
lines = test_dir('build_dir')
|
||||
`./build_dir`.should == "Hello from two()\n"
|
||||
File.exists?('build/one/one.o').should be_true
|
||||
File.exists?('build/two/two.o').should be_true
|
||||
File.open('build/two/tmp', 'w') { |fh| fh.puts "dum" }
|
||||
File.exists?('build_one/one.o').should be_true
|
||||
File.exists?('build_two/two.o').should be_true
|
||||
File.open('build_two/tmp', 'w') { |fh| fh.puts "dum" }
|
||||
Rscons.clean
|
||||
File.exists?('build/one/one.o').should be_false
|
||||
File.exists?('build/two/two.o').should be_false
|
||||
File.exists?('build/one').should be_false
|
||||
File.exists?('build/two').should be_true
|
||||
File.exists?('build').should be_true
|
||||
File.exists?('build_one/one.o').should be_false
|
||||
File.exists?('build_two/two.o').should be_false
|
||||
File.exists?('build_one').should be_false
|
||||
File.exists?('build_two').should be_true
|
||||
File.exists?('src/one/one.c').should be_true
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user