lib/rscons/builders/object.rb in rscons-0.0.13 vs lib/rscons/builders/object.rb in rscons-0.0.14

- old
+ new

@@ -26,18 +26,25 @@ 'CXX' => 'g++', 'CXXFLAGS' => [], 'CXXSUFFIX' => '.cc', 'CXXDEPGEN' => ['-MMD', '-MF', '$_DEPFILE'], 'CXXCOM' =>['$CXX', '-c', '-o', '$_TARGET', '$CXXDEPGEN', '-I$[CPPPATH]', '$CPPFLAGS', '$CXXFLAGS', '$_SOURCES'], + + 'DC' => 'gdc', + 'DFLAGS' => [], + 'DSUFFIX' => '.d', + 'D_IMPORT_PATH' => [], + 'DCCOM' => ['$DC', '-c', '-o', '$_TARGET', '-I$[D_IMPORT_PATH]', '$DFLAGS', '$_SOURCES'], } end def produces?(target, source, env) target.has_suffix?(env['OBJSUFFIX']) and ( source.has_suffix?(env['ASSUFFIX']) or source.has_suffix?(env['CSUFFIX']) or - source.has_suffix?(env['CXXSUFFIX'])) + source.has_suffix?(env['CXXSUFFIX']) or + source.has_suffix?(env['DSUFFIX'])) end def run(target, sources, cache, env, vars = {}) vars = vars.merge({ '_TARGET' => target, @@ -48,9 +55,11 @@ 'AS' elsif sources.first.has_suffix?(env['CSUFFIX']) 'CC' elsif sources.first.has_suffix?(env['CXXSUFFIX']) 'CXX' + elsif sources.first.has_suffix?(env['DSUFFIX']) + 'DC' else raise "Error: unknown input file type: #{sources.first.inspect}" end command = env.build_command(env["#{com_prefix}COM"], vars) unless cache.up_to_date?(target, command, sources)