Sha256: d3771e68aca2241c4fa2400cc322da3dfcb0946c1b8b57f8bda8be21f426af7f
Contents?: true
Size: 1.31 KB
Versions: 2
Compression:
Stored size: 1.31 KB
Contents
module Rscons module Builders # A default RScons builder that knows how to link object files into an # executable program. class Rscons::Builders::Program < Rscons::Builder def default_variables(env) { 'LD' => nil, 'OBJSUFFIX' => '.o', 'LIBSUFFIX' => '.a', 'LDFLAGS' => [], 'LIBPATH' => [], 'LIBS' => [], 'LDCMD' => ['${LD}', '-o', '${_TARGET}', '${LDFLAGS}', '${_SOURCES}', '-L${LIBPATH}', '-l${LIBS}'] } end def run(target, sources, cache, env, vars) # build sources to linkable objects objects = env.build_sources(sources, [env['OBJSUFFIX'], env['LIBSUFFIX']].flatten, cache, vars) return false unless objects ld = if env["LD"] env["LD"] elsif sources.find {|s| s.has_suffix?(env["DSUFFIX"])} env["DC"] elsif sources.find {|s| s.has_suffix?(env["CXXSUFFIX"])} env["CXX"] else env["CC"] end vars = vars.merge({ '_TARGET' => target, '_SOURCES' => objects, 'LD' => ld, }) command = env.build_command(env['LDCMD'], vars) standard_build("LD #{target}", target, command, objects, env, cache) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rscons-0.3.1 | lib/rscons/builders/program.rb |
rscons-0.3.0 | lib/rscons/builders/program.rb |