pass Builder object to build hooks instead of build_operation Hash
This commit is contained in:
1 parent
86594c62b6
commit
33504f586b
7 files changed
+37
-43
No files matched your search
@@ -1,11 +1,11 @@
|
||||
build do
|
||||
env1 = Environment.new(echo: :command) do |env|
|
||||
env['CFLAGS'] = '-O2'
|
||||
env.add_build_hook do |build_op|
|
||||
build_op[:vars]['CPPFLAGS'] = '-DSTRING="Hello"'
|
||||
env.add_build_hook do |builder|
|
||||
builder.vars['CPPFLAGS'] = '-DSTRING="Hello"'
|
||||
end
|
||||
env.add_post_build_hook do |build_op|
|
||||
$stdout.puts "post #{build_op[:target]}"
|
||||
env.add_post_build_hook do |builder|
|
||||
$stdout.puts "post #{builder.target}"
|
||||
end
|
||||
env.Program('program.exe', Dir['src/*.c'])
|
||||
end
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Program("simple.exe", Dir["*.c"])
|
||||
env.add_build_hook do |build_op|
|
||||
if build_op[:target].end_with?(".o")
|
||||
env.Disassemble("#{build_op[:target]}.txt", build_op[:target])
|
||||
env.add_build_hook do |builder|
|
||||
if builder.target.end_with?(".o")
|
||||
env.Disassemble("#{builder.target}.txt", builder.target)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user