pass Builder object to build hooks instead of build_operation Hash

This commit is contained in:
josh committed 2019-02-13 21:13:13 -05:00
1 parent 86594c62b6
commit 33504f586b
7 files changed
+37 -43

No files matched your search

+5 -5
View File
@@ -1,11 +1,11 @@
build do
Environment.new(echo: :command) do |env|
env.append('CPPPATH' => Rscons.glob('src/**/*/'))
env.add_build_hook do |build_op|
if File.basename(build_op[:target]) == "one.o"
build_op[:vars]["CFLAGS"] << "-O1"
elsif File.basename(build_op[:target]) == "two.o"
build_op[:vars]["CFLAGS"] << "-O2"
env.add_build_hook do |builder|
if File.basename(builder.target) == "one.o"
builder.vars["CFLAGS"] << "-O1"
elsif File.basename(builder.target) == "two.o"
builder.vars["CFLAGS"] << "-O2"
end
end
env.Program('build_hook.exe', Rscons.glob('src/**/*.c'))
@@ -1,14 +1,14 @@
build do
Environment.new(echo: :command) do |env|
env.append('CPPPATH' => Rscons.glob('src/**'))
env.add_build_hook do |build_op|
if build_op[:builder].name == "Object" && build_op[:sources].first =~ %r{one\.c}
build_op[:vars]["CFLAGS"] << "-O1"
build_op[:sources] = ['src/two/two.c']
elsif build_op[:builder].name == "Object" && build_op[:target] =~ %r{two\.o}
new_vars = build_op[:vars].clone
env.add_build_hook do |builder|
if builder.name == "Object" && builder.sources.first =~ %r{one\.c}
builder.vars["CFLAGS"] << "-O1"
builder.sources = ['src/two/two.c']
elsif builder.name == "Object" && builder.target =~ %r{two\.o}
new_vars = builder.vars.clone
new_vars["CFLAGS"] << "-O2"
build_op[:vars] = new_vars
builder.vars = new_vars
end
end
env.Object('one.o', 'src/one/one.c')
@@ -2,8 +2,8 @@ build do
Environment.new do |env|
env["CPPPATH"] << "src/two"
env.Object("one.o", "src/one/one.c")
env.add_post_build_hook do |build_op|
if build_op[:target] == "one.o"
env.add_post_build_hook do |builder|
if builder.target == "one.o"
env["MODULE"] = "two"
env.Object("${MODULE}.o", "src/${MODULE}/${MODULE}.c")
end