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,13 +1,15 @@
module Rscons module Rscons
class CC < Builder class CC < Builder
VARIABLE_DEFAULTS = { def self.default_variables(env)
'CC' => 'gcc', {
'CFLAGS' => [], 'CC' => 'gcc',
'CPPFLAGS' => [], 'CFLAGS' => [],
'OBJSUFFIX' => '.o', 'CPPFLAGS' => [],
'CEXTS' => ['.c'], 'OBJSUFFIX' => '.o',
'CCCOM' => ['$CC', '-c', '-o', '$TARGET', '$CPPFLAGS', '$CFLAGS', '$SOURCES'] 'CEXTS' => ['.c'],
} '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,14 +1,16 @@
module Rscons module Rscons
class Program < Builder class Program < Builder
VARIABLE_DEFAULTS = { def self.default_variables(env)
'LD' => nil, {
'OBJSUFFIX' => '.o', 'LD' => nil,
'LIBSUFFIX' => '.a', 'OBJSUFFIX' => '.o',
'LDFLAGS' => [], 'LIBSUFFIX' => '.a',
'LIBPATHS' => [], 'LDFLAGS' => [],
'LIBS' => [], 'LIBPATHS' => [],
'LDCOM' => ['$LD', '-o', '$TARGET', '$LDFLAGS', '$SOURCES', '-L$[LIBPATHS]', '-l$[LIBS]'] '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)