change builder VARIABLE_DEFAULTS constant to default_variables() class method

This commit is contained in:
Josh Holtrop 2013-06-27 19:52:51 -04:00
parent 256e341e5e
commit a724d9b2a9
3 changed files with 22 additions and 18 deletions

View File

@ -1,6 +1,7 @@
module Rscons module Rscons
class CC < Builder class CC < Builder
VARIABLE_DEFAULTS = { def self.default_variables(env)
{
'CC' => 'gcc', 'CC' => 'gcc',
'CFLAGS' => [], 'CFLAGS' => [],
'CPPFLAGS' => [], 'CPPFLAGS' => [],
@ -8,6 +9,7 @@ module Rscons
'CEXTS' => ['.c'], 'CEXTS' => ['.c'],
'CCCOM' => ['$CC', '-c', '-o', '$TARGET', '$CPPFLAGS', '$CFLAGS', '$SOURCES'] 'CCCOM' => ['$CC', '-c', '-o', '$TARGET', '$CPPFLAGS', '$CFLAGS', '$SOURCES']
} }
end
def self.produces?(env, suffix) def self.produces?(env, suffix)
suffix == env['OBJSUFFIX'] suffix == env['OBJSUFFIX']

View File

@ -1,6 +1,7 @@
module Rscons module Rscons
class Program < Builder class Program < Builder
VARIABLE_DEFAULTS = { def self.default_variables(env)
{
'LD' => nil, 'LD' => nil,
'OBJSUFFIX' => '.o', 'OBJSUFFIX' => '.o',
'LIBSUFFIX' => '.a', 'LIBSUFFIX' => '.a',
@ -9,6 +10,7 @@ module Rscons
'LIBS' => [], 'LIBS' => [],
'LDCOM' => ['$LD', '-o', '$TARGET', '$LDFLAGS', '$SOURCES', '-L$[LIBPATHS]', '-l$[LIBS]'] 'LDCOM' => ['$LD', '-o', '$TARGET', '$LDFLAGS', '$SOURCES', '-L$[LIBPATHS]', '-l$[LIBS]']
} }
end
def run(env, target, sources) def run(env, target, sources)
sources = [sources] if sources.is_a?(String) sources = [sources] if sources.is_a?(String)

View File

@ -25,7 +25,7 @@ module Rscons
def add_builder(builder_class) def add_builder(builder_class)
@builders[builder_class.to_s.split(':').last] = builder_class @builders[builder_class.to_s.split(':').last] = builder_class
var_defs = builder_class.const_get('VARIABLE_DEFAULTS') var_defs = builder_class.default_variables(self)
if var_defs if var_defs
var_defs.each_pair do |var, val| var_defs.each_pair do |var, val|
unless @variables.has_key?(var) unless @variables.has_key?(var)