fix up builders to properly use variable overrides

This commit is contained in:
josh committed 2014-05-14 15:15:08 -04:00
1 parent 9d61fa0276
commit 08f2248ed7
9 files changed
+29 -23

No files matched your search

+1 -1
View File
@@ -32,7 +32,7 @@ module Rscons
else
raise "Unknown source file #{sources.first.inspect} for CFile builder"
end
command = env.build_command(env["#{cmd}_CMD"], vars)
command = env.build_command("${#{cmd}_CMD}", vars)
standard_build("#{cmd} #{target}", target, command, sources, env, cache)
end
end
+1 -1
View File
@@ -12,7 +12,7 @@ module Rscons
def run(target, sources, cache, env, vars)
vars = vars.merge("_SOURCES" => sources)
command = env.build_command(env["DISASM_CMD"], vars)
command = env.build_command("${DISASM_CMD}", vars)
unless cache.up_to_date?(target, command, sources, env)
cache.mkdir_p(File.dirname(target))
return false unless env.execute("Disassemble #{target}", command, options: {out: target})
+2 -2
View File
@@ -13,13 +13,13 @@ module Rscons
def run(target, sources, cache, env, vars)
# build sources to linkable objects
objects = env.build_sources(sources, [env['OBJSUFFIX'], env['LIBSUFFIX']].flatten, cache, vars)
objects = env.build_sources(sources, env.expand_varref(["${OBJSUFFIX}", "${LIBSUFFIX}"], vars).flatten, cache, vars)
if objects
vars = vars.merge({
'_TARGET' => target,
'_SOURCES' => objects,
})
command = env.build_command(env['ARCMD'], vars)
command = env.build_command("${ARCMD}", vars)
standard_build("AR #{target}", target, command, objects, env, cache)
end
end
+2 -2
View File
@@ -58,11 +58,11 @@ module Rscons
'_DEPFILE' => Rscons.set_suffix(target, '.mf'),
})
com_prefix = KNOWN_SUFFIXES.find do |compiler, suffix_var|
sources.first.end_with?(*env[suffix_var])
sources.first.end_with?(*env.expand_varref("${#{suffix_var}}"))
end.tap do |v|
v.nil? and raise "Error: unknown input file type: #{sources.first.inspect}"
end.first
command = env.build_command(env["#{com_prefix}CMD"], vars)
command = env.build_command("${#{com_prefix}CMD}", vars)
unless cache.up_to_date?(target, command, sources, env)
cache.mkdir_p(File.dirname(target))
FileUtils.rm_f(target)
+4 -4
View File
@@ -9,15 +9,15 @@ module Rscons
end
def run(target, sources, cache, env, vars)
pp_cc = if sources.find {|s| s.end_with?(*env["CXXSUFFIX"])}
env["CXX"]
pp_cc = if sources.find {|s| s.end_with?(*env.expand_varref("${CXXSUFFIX}", vars))}
"${CXX}"
else
env["CC"]
"${CC}"
end
vars = vars.merge("_PREPROCESS_CC" => pp_cc,
"_TARGET" => target,
"_SOURCES" => sources)
command = env.build_command(env["CPP_CMD"], vars)
command = env.build_command("${CPP_CMD}", vars)
standard_build("Preprocess #{target}", target, command, sources, env, cache)
end
end
+10 -9
View File
@@ -17,23 +17,24 @@ module Rscons
def run(target, sources, cache, env, vars)
# build sources to linkable objects
objects = env.build_sources(sources, [env['OBJSUFFIX'], env['LIBSUFFIX']].flatten, cache, vars)
objects = env.build_sources(sources, env.expand_varref(["${OBJSUFFIX}", "${LIBSUFFIX}"], vars).flatten, cache, vars)
return false unless objects
ld = if env["LD"]
env["LD"]
elsif sources.find {|s| s.end_with?(*env["DSUFFIX"])}
env["DC"]
elsif sources.find {|s| s.end_with?(*env["CXXSUFFIX"])}
env["CXX"]
ld = env.expand_varref("${LD}", vars)
ld = if ld != ""
ld
elsif sources.find {|s| s.end_with?(*env.expand_varref("${DSUFFIX}", vars))}
"${DC}"
elsif sources.find {|s| s.end_with?(*env.expand_varref("${CXXSUFFIX}", vars))}
"${CXX}"
else
env["CC"]
"${CC}"
end
vars = vars.merge({
'_TARGET' => target,
'_SOURCES' => objects,
'LD' => ld,
})
command = env.build_command(env['LDCMD'], vars)
command = env.build_command("${LDCMD}", vars)
standard_build("LD #{target}", target, command, objects, env, cache)
end
end