From 20f3da3b049fca8010bc928c654cce04149cf1f7 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Thu, 25 Sep 2014 10:45:52 -0400 Subject: [PATCH] allow trailing slashes to be passed to env.build_dir() --- lib/rscons/environment.rb | 4 +++- spec/build_tests_spec.rb | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/rscons/environment.rb b/lib/rscons/environment.rb index 64459d6..4101fcc 100644 --- a/lib/rscons/environment.rb +++ b/lib/rscons/environment.rb @@ -187,7 +187,9 @@ module Rscons # # @return [void] def build_dir(src_dir, obj_dir) - src_dir = src_dir.gsub('\\', '/') if src_dir.is_a?(String) + if src_dir.is_a?(String) + src_dir = src_dir.gsub("\\", "/").sub(%r{/*$}, "") + end @build_dirs << [src_dir, obj_dir] end diff --git a/spec/build_tests_spec.rb b/spec/build_tests_spec.rb index b8ddacd..92fb4a0 100644 --- a/spec/build_tests_spec.rb +++ b/spec/build_tests_spec.rb @@ -197,6 +197,19 @@ describe Rscons do expect(File.exists?('build_two/two.o')).to be_truthy end + it "supports trailing slashes at the end of build_dir sources and destinations" do + test_dir("build_dir") + Rscons::Environment.new do |env| + env.append("CPPPATH" => Dir["src/**/*/"]) + env.build_dir("src/one/", "build_one/") + env.build_dir("src/two", "build_two") + env.Program("build_dir", Dir["src/**/*.c"]) + end + expect(`./build_dir`).to eq "Hello from two()\n" + expect(File.exists?("build_one/one.o")).to be_truthy + expect(File.exists?("build_two/two.o")).to be_truthy + end + it 'uses build directories before build root' do test_dir('build_dir') env = Rscons::Environment.new do |env|