From 851adae66f7bd1c38e56fcc976decc58538bd112 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Mon, 18 Aug 2014 15:39:33 -0400 Subject: [PATCH] fix #13 - Environment#depends should expand its arguments for construction variables --- lib/rscons/environment.rb | 3 ++- spec/rscons/environment_spec.rb | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/rscons/environment.rb b/lib/rscons/environment.rb index 42fabc5..031013e 100644 --- a/lib/rscons/environment.rb +++ b/lib/rscons/environment.rb @@ -351,7 +351,8 @@ module Rscons # # @return [void] def depends(target, *user_deps) - target = target.to_s + target = expand_varref(target.to_s) + user_deps = user_deps.map {|ud| expand_varref(ud)} @user_deps[target] ||= [] @user_deps[target] = (@user_deps[target] + user_deps).uniq end diff --git a/spec/rscons/environment_spec.rb b/spec/rscons/environment_spec.rb index e5033b3..588608e 100644 --- a/spec/rscons/environment_spec.rb +++ b/spec/rscons/environment_spec.rb @@ -322,6 +322,13 @@ module Rscons env.depends("foo", "bar", "baz") expect(env.instance_variable_get(:@user_deps)).to eq({"foo" => ["bar", "baz"]}) end + it "expands arguments for construction variable references" do + env = Environment.new + env["foo"] = "foo.exe" + env["bar"] = "bar.c" + env.depends("${foo}", "${bar}", "a.h") + expect(env.instance_variable_get(:@user_deps)).to eq({"foo.exe" => ["bar.c", "a.h"]}) + end end describe "#build_sources" do