From a724d9b2a9fea7a8ab11513a31c00e0f43e2aa15 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Thu, 27 Jun 2013 19:52:51 -0400 Subject: [PATCH] change builder VARIABLE_DEFAULTS constant to default_variables() class method --- lib/rscons/builders/cc.rb | 18 ++++++++++-------- lib/rscons/builders/program.rb | 20 +++++++++++--------- lib/rscons/environment.rb | 2 +- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/lib/rscons/builders/cc.rb b/lib/rscons/builders/cc.rb index d162e06..352e712 100644 --- a/lib/rscons/builders/cc.rb +++ b/lib/rscons/builders/cc.rb @@ -1,13 +1,15 @@ module Rscons class CC < Builder - VARIABLE_DEFAULTS = { - 'CC' => 'gcc', - 'CFLAGS' => [], - 'CPPFLAGS' => [], - 'OBJSUFFIX' => '.o', - 'CEXTS' => ['.c'], - 'CCCOM' => ['$CC', '-c', '-o', '$TARGET', '$CPPFLAGS', '$CFLAGS', '$SOURCES'] - } + def self.default_variables(env) + { + 'CC' => 'gcc', + 'CFLAGS' => [], + 'CPPFLAGS' => [], + 'OBJSUFFIX' => '.o', + 'CEXTS' => ['.c'], + 'CCCOM' => ['$CC', '-c', '-o', '$TARGET', '$CPPFLAGS', '$CFLAGS', '$SOURCES'] + } + end def self.produces?(env, suffix) suffix == env['OBJSUFFIX'] diff --git a/lib/rscons/builders/program.rb b/lib/rscons/builders/program.rb index 5a15bf6..6633c36 100644 --- a/lib/rscons/builders/program.rb +++ b/lib/rscons/builders/program.rb @@ -1,14 +1,16 @@ module Rscons class Program < Builder - VARIABLE_DEFAULTS = { - 'LD' => nil, - 'OBJSUFFIX' => '.o', - 'LIBSUFFIX' => '.a', - 'LDFLAGS' => [], - 'LIBPATHS' => [], - 'LIBS' => [], - 'LDCOM' => ['$LD', '-o', '$TARGET', '$LDFLAGS', '$SOURCES', '-L$[LIBPATHS]', '-l$[LIBS]'] - } + def self.default_variables(env) + { + 'LD' => nil, + 'OBJSUFFIX' => '.o', + 'LIBSUFFIX' => '.a', + 'LDFLAGS' => [], + 'LIBPATHS' => [], + 'LIBS' => [], + 'LDCOM' => ['$LD', '-o', '$TARGET', '$LDFLAGS', '$SOURCES', '-L$[LIBPATHS]', '-l$[LIBS]'] + } + end def run(env, target, sources) sources = [sources] if sources.is_a?(String) diff --git a/lib/rscons/environment.rb b/lib/rscons/environment.rb index d8dc7ae..fb7fc0c 100644 --- a/lib/rscons/environment.rb +++ b/lib/rscons/environment.rb @@ -25,7 +25,7 @@ module Rscons def add_builder(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 var_defs.each_pair do |var, val| unless @variables.has_key?(var)