From 75977981c02e12e6f23ebc398aa7b3b5bbacb340 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Mon, 5 Aug 2013 14:27:57 -0400 Subject: [PATCH] fix parsing Makefile dependencies when they spanned multiple lines --- lib/rscons/environment.rb | 9 +++++---- spec/rscons/environment_spec.rb | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 spec/rscons/environment_spec.rb diff --git a/lib/rscons/environment.rb b/lib/rscons/environment.rb index c1e2503..d37de51 100644 --- a/lib/rscons/environment.rb +++ b/lib/rscons/environment.rb @@ -212,10 +212,11 @@ module Rscons if line =~ /^(.*)\\\s*$/ buildup += ' ' + $1 else - if line =~ /^(.*): (.*)$/ - target, tdeps = $1.strip, $2 - if target == target - deps += tdeps.split(' ').map(&:strip) + buildup += ' ' + line + if buildup =~ /^(.*): (.*)$/ + mf_target, mf_deps = $1.strip, $2 + if mf_target == target + deps += mf_deps.split(' ').map(&:strip) end end buildup = '' diff --git a/spec/rscons/environment_spec.rb b/spec/rscons/environment_spec.rb new file mode 100644 index 0000000..2e0d6dc --- /dev/null +++ b/spec/rscons/environment_spec.rb @@ -0,0 +1,24 @@ +module Rscons + describe Environment do + describe '.parse_makefile_deps' do + it 'handles dependencies on one line' do + File.should_receive(:read).with('makefile').and_return(<