diff --git a/lib/rscons/builders/program.rb b/lib/rscons/builders/program.rb index 4dd9414..4bca0fb 100644 --- a/lib/rscons/builders/program.rb +++ b/lib/rscons/builders/program.rb @@ -1,4 +1,19 @@ module Rscons class Program < Builder + def default_variables + { + 'CC' => 'gcc', + 'CFLAGS' => [], + 'CPPFLAGS' => [], + 'OBJSUFFIX' => '.o', + 'CSUFFIX' => '.c', + 'CCDEPGEN' => ['-MMD', '-MF', '$DEPFILE'], + 'CCCOM' => ['$CC', '-c', '-o', '$TARGET', '$CCDEPGEN', '$CPPFLAGS', '$CFLAGS', '$SOURCES'] + } + end + + def produces?(target, source) + target.has_suffix?(@env['OBJSUFFIX']) and source.has_suffix?(@env['CSUFFIX']) + end end end diff --git a/lib/rscons/monkey/string.rb b/lib/rscons/monkey/string.rb new file mode 100644 index 0000000..b5dbc41 --- /dev/null +++ b/lib/rscons/monkey/string.rb @@ -0,0 +1,10 @@ +class String + def has_suffix?(suffix) + suffix = [suffix] if suffix.is_a?(String) + suffix.find {|s| self =~ /#{s}$/} + end + + def set_suffix(suffix = '') + sub(/\.[^.]*$/, suffix) + end +end