Add shortcut method for creating environments - close #149

Add env() method to create environments.
Process all environments created at build script top level before
executing any autoconf-enabled tasks, or if no tasks are specified by
the user.
This commit is contained in:
josh committed 2022-02-12 21:59:52 -05:00
1 parent 6d5f44d4e5
commit ef7e9259cb
129 files changed
+742 -901

No files matched your search

+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new(name: "typical") do |env|
env["CPPPATH"] += glob("src/**")
env.Program("^/typical.exe", glob("src/**/*.c"))
end
env "typical" do |env|
env["CPPPATH"] += glob("src/**")
env.Program("^/typical.exe", glob("src/**/*.c"))
end
+8 -10
View File
@@ -1,13 +1,11 @@
default do
Environment.new(echo: :command) do |env|
env.append('CPPPATH' => glob('src/**/*/'))
env.add_build_hook do |builder|
if File.basename(builder.sources.first) == "one.c"
builder.vars["CFLAGS"] << "-O1"
elsif File.basename(builder.sources.first) == "two.c"
builder.vars["CFLAGS"] << "-O2"
end
env(echo: :command) do |env|
env.append('CPPPATH' => glob('src/**/*/'))
env.add_build_hook do |builder|
if File.basename(builder.sources.first) == "one.c"
builder.vars["CFLAGS"] << "-O1"
elsif File.basename(builder.sources.first) == "two.c"
builder.vars["CFLAGS"] << "-O2"
end
env.Program('build_hook.exe', glob('src/**/*.c'))
end
env.Program('build_hook.exe', glob('src/**/*.c'))
end
@@ -1,17 +1,15 @@
default do
Environment.new(echo: :command) do |env|
env.append('CPPPATH' => glob('src/**'))
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"
builder.vars = new_vars
end
env(echo: :command) do |env|
env.append('CPPPATH' => glob('src/**'))
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"
builder.vars = new_vars
end
env.Object('one.o', 'src/one/one.c')
env.Object('two.o', 'src/two/two.c')
end
env.Object('one.o', 'src/one/one.c')
env.Object('two.o', 'src/two/two.c')
end
+7 -9
View File
@@ -1,10 +1,8 @@
default do
Environment.new(echo: :command) do |env|
env.append("CPPPATH" => glob("src/**"))
FileUtils.mkdir_p(env.build_root)
FileUtils.mv("src/one/one.c", env.build_root)
FileUtils.mv("src/two/two.c", Rscons.application.build_dir)
env.Object("^/one.o", "^/one.c")
env.Program("^^/program.exe", ["^/one.o", "^^/two.c"])
end
env(echo: :command) do |env|
env.append("CPPPATH" => glob("src/**"))
FileUtils.mkdir_p(env.build_root)
FileUtils.mv("src/one/one.c", env.build_root)
FileUtils.mv("src/two/two.c", Rscons.application.build_dir)
env.Object("^/one.o", "^/one.c")
env.Program("^^/program.exe", ["^/one.o", "^^/two.c"])
end
+6 -8
View File
@@ -1,9 +1,7 @@
default do
base_env = Environment.new do |env|
env["CPPPATH"] += glob("src/**")
end
base_env.clone(name: "typical") do |env|
env.Program("^/typical.exe", glob("src/**/*.c"))
end
base_env = env do |env|
env["CPPPATH"] += glob("src/**")
end
base_env.clone "typical" do |env|
env.Program("^/typical.exe", glob("src/**/*.c"))
end
+7
View File
@@ -0,0 +1,7 @@
env "first" do |env|
env["CPPPATH"] += glob("src/**")
end
Environment["first"].clone "typical" do |env|
env.Program("^/typical.exe", glob("src/**/*.c"))
end
+2 -4
View File
@@ -1,5 +1,3 @@
default do
Environment.new do |env|
env.Copy("inst.exe", "copy.rb")
end
env do |env|
env.Copy("inst.exe", "copy.rb")
end
+6 -8
View File
@@ -1,11 +1,9 @@
default do
Environment.new do |env|
env.Directory("copy")
env.Copy("copy", "copy_directory.rb")
env do |env|
env.Directory("copy")
env.Copy("copy", "copy_directory.rb")
env.Copy("noexist/src", "src")
env.Copy("noexist/src", "src")
env.Directory("exist/src")
env.Copy("exist/src", "src")
end
env.Directory("exist/src")
env.Copy("exist/src", "src")
end
+2 -4
View File
@@ -1,5 +1,3 @@
default do
Environment.new do |env|
env.Copy("dest", ["copy.rb", "copy_multiple.rb"])
end
env do |env|
env.Copy("dest", ["copy.rb", "copy_multiple.rb"])
end
+5 -7
View File
@@ -1,8 +1,6 @@
default do
Environment.new do |env|
env["CSUFFIX"] = %w[.yargh .c]
env["CFLAGS"] += %w[-x c]
env["CPPPATH"] += glob("src/**")
env.Program("program.exe", glob("src/**/*.{c,yargh}"))
end
env do |env|
env["CSUFFIX"] = %w[.yargh .c]
env["CFLAGS"] += %w[-x c]
env["CPPPATH"] += glob("src/**")
env.Program("program.exe", glob("src/**/*.{c,yargh}"))
end
@@ -1,7 +1,4 @@
default do
Environment.new do |env|
env.echo = :command
env.Copy("copy.rb", "echo_command_ruby_builder.rb")
end
env do |env|
env.echo = :command
env.Copy("copy.rb", "echo_command_ruby_builder.rb")
end
+4 -6
View File
@@ -5,10 +5,8 @@ class MyBuilder < Rscons::Builder
end
end
default do
Environment.new do |env|
env.echo = :command
env.add_builder(MyBuilder)
env.MyBuilder("foo")
end
env do |env|
env.echo = :command
env.add_builder(MyBuilder)
env.MyBuilder("foo")
end
+1
View File
@@ -0,0 +1 @@
env(depends: "foo", task: false)
+1
View File
@@ -0,0 +1 @@
env(foo: :bar)
+3 -3
View File
@@ -1,13 +1,13 @@
project_name "install_test"
Environment.new do |env|
env do |env|
env["CPPPATH"] += glob("src/**")
task "build" do
env.Program("^/program.exe", glob("src/**/*.c"))
end
task "install", deps: "build" do
task "install", depends: "build" do
env.InstallDirectory("${prefix}/bin")
env.Install("${prefix}/bin", "^/program.exe")
env.InstallDirectory("${prefix}/share")
@@ -17,4 +17,4 @@ Environment.new do |env|
end
end
default(deps: "build")
default(depends: "build")
+9 -11
View File
@@ -1,12 +1,10 @@
default do
Environment.new do |env|
env["CPPPATH"] += glob("src/**")
env.Program("^/prog.exe", glob("src/**/*.c"))
end
Environment.new do |env|
env["CPPPATH"] += glob("src/**")
env["CCFLAGS"] += %w[-Wall -g]
env.Program("^/prog-debug.exe", glob("src/**/*.c"))
end
env do |env|
env["CPPPATH"] += glob("src/**")
env.Program("^/prog.exe", glob("src/**/*.c"))
end
env do |env|
env["CPPPATH"] += glob("src/**")
env["CCFLAGS"] += %w[-Wall -g]
env.Program("^/prog-debug.exe", glob("src/**/*.c"))
end
@@ -1,7 +1,5 @@
default do
Environment.new do |env|
env["CPPPATH"] << "src/two"
env.Object("one.o", "src/one/one.c")
env.Object("one.o", "src/two/two.c")
end
env do |env|
env["CPPPATH"] << "src/two"
env.Object("one.o", "src/one/one.c")
env.Object("one.o", "src/two/two.c")
end
@@ -1,12 +1,10 @@
default do
Environment.new do |env|
env["CPPPATH"] << "src/two"
env.Object("one.o", "src/one/one.c")
env.add_post_build_hook do |builder|
if builder.target == "one.o"
env["MODULE"] = "two"
env.Object("${MODULE}.o", "src/${MODULE}/${MODULE}.c")
end
env do |env|
env["CPPPATH"] << "src/two"
env.Object("one.o", "src/one/one.c")
env.add_post_build_hook do |builder|
if builder.target == "one.o"
env["MODULE"] = "two"
env.Object("${MODULE}.o", "src/${MODULE}/${MODULE}.c")
end
end
end