diff --git a/lib/rscons/builder.rb b/lib/rscons/builder.rb index fe54565..95da69f 100644 --- a/lib/rscons/builder.rb +++ b/lib/rscons/builder.rb @@ -1,6 +1,6 @@ module Rscons class Builder - def self.makes_object_file?(env, fname) + def self.produces?(env, suffix) false end end diff --git a/lib/rscons/builders/cc.rb b/lib/rscons/builders/cc.rb index d7af459..7b91cdf 100644 --- a/lib/rscons/builders/cc.rb +++ b/lib/rscons/builders/cc.rb @@ -8,10 +8,8 @@ module Rscons 'CEXTS' => ['.c'], } - def self.makes_object_file?(env, fname) - env['CEXTS'].find do |cext| - fname =~ /#{cext}$/ - end + def self.produces?(env, suffix) + suffix == env['OBJSUFFIX'] end def run(env, target, source) diff --git a/lib/rscons/builders/program.rb b/lib/rscons/builders/program.rb index b457036..8eb60da 100644 --- a/lib/rscons/builders/program.rb +++ b/lib/rscons/builders/program.rb @@ -16,7 +16,7 @@ module Rscons if source =~ /#{env['OBJSUFFIX']}$/ or source =~ /#{env['LIBSUFFIX']}$/ source else - builder_class = env.builders.values.find { |klass| klass.makes_object_file?(env, source) } + builder_class = env.builders.values.find { |klass| klass.produces?(env, env['OBJSUFFIX']) } if builder_class builder = builder_class.new builder.run(env, env.stem(source) + env['OBJSUFFIX'], source)