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

+2 -4
View File
@@ -1,5 +1,3 @@
default do
Environment.new do |env|
env.Program('simple.exe', Dir['*.c'])
end
env do |env|
env.Program('simple.exe', Dir['*.c'])
end
+11 -13
View File
@@ -1,15 +1,13 @@
default do
Environment.new(echo: :command) do |env|
tempdir = ENV["TEMP"] || ENV["TMP"] || "/tmp"
source_file = File.join(tempdir, "abs.c")
File.open(source_file, "w") do |fh|
fh.puts(<<-EOF)
int main()
{
return 29;
}
EOF
end
env.Program("abs.exe", source_file)
env(echo: :command) do |env|
tempdir = ENV["TEMP"] || ENV["TMP"] || "/tmp"
source_file = File.join(tempdir, "abs.c")
File.open(source_file, "w") do |fh|
fh.puts(<<-EOF)
int main()
{
return 29;
}
EOF
end
env.Program("abs.exe", source_file)
end
+9 -11
View File
@@ -10,15 +10,13 @@ class ThreadedTestBuilder < Rscons::Builder
end
end
default do
Environment.new do |env|
env.add_builder(ThreadedTestBuilder)
env.ThreadedTestBuilder("T3", [], "delay" => 3)
env.ThreadedTestBuilder("T2", [], "delay" => 1.0)
env.ThreadedTestBuilder("T1", [], "delay" => 0.5)
env.barrier
env.ThreadedTestBuilder("T6", [], "delay" => 1.5)
env.ThreadedTestBuilder("T5", [], "delay" => 1.0)
env.ThreadedTestBuilder("T4", [], "delay" => 0.5)
end
env do |env|
env.add_builder(ThreadedTestBuilder)
env.ThreadedTestBuilder("T3", [], "delay" => 3)
env.ThreadedTestBuilder("T2", [], "delay" => 1.0)
env.ThreadedTestBuilder("T1", [], "delay" => 0.5)
env.barrier
env.ThreadedTestBuilder("T6", [], "delay" => 1.5)
env.ThreadedTestBuilder("T5", [], "delay" => 1.0)
env.ThreadedTestBuilder("T4", [], "delay" => 0.5)
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new do |env|
object = env.Object("simple.o", "simple.c")
env.Program("simple.exe", object)
end
env do |env|
object = env.Object("simple.o", "simple.c")
env.Program("simple.exe", object)
end
+4 -5
View File
@@ -3,9 +3,8 @@ class TestBuilder < Rscons::Builder
true
end
end
default do
Environment.new do |env|
env.add_builder(TestBuilder)
env.TestBuilder("file")
end
env do |env|
env.add_builder(TestBuilder)
env.TestBuilder("file")
end
@@ -14,10 +14,8 @@ class MyObject < Rscons::Builder
end
end
default do
Environment.new do |env|
env.add_builder(MyObject)
env.MyObject("simple.o", "simple.c")
env.Program("simple.exe", "simple.o")
end
env do |env|
env.add_builder(MyObject)
env.MyObject("simple.o", "simple.c")
env.Program("simple.exe", "simple.o")
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new do |env|
env["LIBS"] += ["m"]
env.Program('simple.exe', Dir['*.c'])
end
env do |env|
env["LIBS"] += ["m"]
env.Program('simple.exe', Dir['*.c'])
end
+5 -7
View File
@@ -27,12 +27,10 @@ class DebugBuilder < Rscons::Builder
end
end
default do
Environment.new do |env|
env.add_builder(DebugBuilder)
if ENV["test"] == "new_user_dep"
env.depends("foo.o", "new_dep")
end
env.DebugBuilder("foo.o", "simple.c")
env do |env|
env.add_builder(DebugBuilder)
if ENV["test"] == "new_user_dep"
env.depends("foo.o", "new_dep")
end
env.DebugBuilder("foo.o", "simple.c")
end
@@ -1,5 +1,3 @@
default do
Environment.new do |env|
env.Copy("simple.copy", "simple.c")
end
env do |env|
env.Copy("simple.copy", "simple.c")
end
+5 -7
View File
@@ -1,8 +1,6 @@
default do
Environment.new do |env|
env.Object("simple.o", "simple.c")
env.process
env["LDCMD"] = %w[gcc -o ${_TARGET} simple.o]
env.Program('simple.exe', [])
end
env do |env|
env.Object("simple.o", "simple.c")
env.process
env["LDCMD"] = %w[gcc -o ${_TARGET} simple.o]
env.Program('simple.exe', [])
end
+4 -6
View File
@@ -1,7 +1,5 @@
default do
Environment.new do |env|
env.Object("simple.o", "simple.c")
env["LDCMD"] = %w[gcc -o ${_TARGET} simple.o]
env.Program('simple.exe', ["simple.o"])
end
env do |env|
env.Object("simple.o", "simple.c")
env["LDCMD"] = %w[gcc -o ${_TARGET} simple.o]
env.Program('simple.exe', ["simple.o"])
end
@@ -1,6 +1,4 @@
default do
Environment.new do |env|
env.Object("simple.o", "simple.c")
env.Object("two.o", "two.c")
end
env do |env|
env.Object("simple.o", "simple.c")
env.Object("two.o", "two.c")
end
+4 -6
View File
@@ -1,7 +1,5 @@
default do
Environment.new do |env|
target = env.Program("simple.exe", "simple.c")
user_deps = File.read("user_deps", mode: "rb").split(" ")
target.depends(*user_deps)
end
env do |env|
target = env.Program("simple.exe", "simple.c")
user_deps = File.read("user_deps", mode: "rb").split(" ")
target.depends(*user_deps)
end
+3 -5
View File
@@ -13,9 +13,7 @@ class TestBuilder < Rscons::Builder
end
end
default do
Environment.new do |env|
env.add_builder(TestBuilder)
env.TestBuilder("foo")
end
env do |env|
env.add_builder(TestBuilder)
env.TestBuilder("foo")
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new do |env|
env.Program("simple.exe", "simple.c")
env.clear_targets
end
env do |env|
env.Program("simple.exe", "simple.c")
env.clear_targets
end
+6 -8
View File
@@ -1,9 +1,7 @@
default do
base_env = Environment.new do |env|
env.n_threads = 165
end
my_env = base_env.clone
puts my_env.n_threads
base_env = env do |env|
env.n_threads = 165
end
my_env = base_env.clone do |env|
puts env.n_threads
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new(echo: :command) do |env|
env["LD"] = "gcc"
env.Program('simple.exe', Dir['*.c'])
end
env(echo: :command) do |env|
env["LD"] = "gcc"
env.Program('simple.exe', Dir['*.c'])
end
+6 -8
View File
@@ -1,9 +1,7 @@
default do
Environment.new do |env|
command = %W[gcc -o ${_TARGET} ${_SOURCES}]
env.Command("simple.exe",
"simple.c",
"CMD" => command,
"CMD_DESC" => "BuildIt")
end
env do |env|
command = %W[gcc -o ${_TARGET} ${_SOURCES}]
env.Command("simple.exe",
"simple.c",
"CMD" => command,
"CMD_DESC" => "BuildIt")
end
+7 -9
View File
@@ -1,10 +1,8 @@
default do
Environment.new do |env|
env.Object("simple.o", "simple.c")
env.Command("simple.txt",
"simple.o",
"CMD" => %w[objdump --disassemble --source ${_SOURCES}],
"CMD_STDOUT" => "${_TARGET}",
"CMD_DESC" => "My Disassemble")
end
env do |env|
env.Object("simple.o", "simple.c")
env.Command("simple.txt",
"simple.o",
"CMD" => %w[objdump --disassemble --source ${_SOURCES}],
"CMD_STDOUT" => "${_TARGET}",
"CMD_DESC" => "My Disassemble")
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new do |env|
env["sources"] = glob("*.c")
env.Program("simple.exe", "${sources}")
end
env do |env|
env["sources"] = glob("*.c")
env.Program("simple.exe", "${sources}")
end
+2 -4
View File
@@ -1,5 +1,3 @@
default do
Environment.new do |env|
env.Directory("teh_dir")
end
env do |env|
env.Directory("teh_dir")
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new do |env|
env.Object("simple.o", "simple.c")
env.Disassemble("simple.txt", "simple.o")
end
env do |env|
env.Object("simple.o", "simple.c")
env.Disassemble("simple.txt", "simple.o")
end
+2 -4
View File
@@ -1,5 +1,3 @@
default do
Environment.new do |env|
env.Object("simple.o", "simple.c")
end
env do |env|
env.Object("simple.o", "simple.c")
end
+1 -1
View File
@@ -1,5 +1,5 @@
default do
env = Environment.new do |env|
env = env do |env|
env["CFLAGS"] += %w[-O2 -fomit-frame-pointer]
env[:foo] = :bar
end
@@ -1,7 +1,5 @@
default do
Environment.new do |env|
env.Command("foo", "bar")
env.Command("bar", "baz")
env.Command("baz", "foo")
end
env do |env|
env.Command("foo", "bar")
env.Command("bar", "baz")
env.Command("baz", "foo")
end
@@ -1,5 +1,3 @@
default do
Environment.new do |env|
env.Command("foo", "foo")
end
env do |env|
env.Command("foo", "foo")
end
@@ -1,5 +1,3 @@
default do
Environment.new do |env|
env.produces("foo", "bar")
end
env do |env|
env.produces("foo", "bar")
end
+4 -6
View File
@@ -1,8 +1,6 @@
default do
Environment.new do |env|
File.open("foo.xyz", "wb") do |fh|
fh.puts("hi")
end
env.Object("foo.o", "foo.xyz")
env do |env|
File.open("foo.xyz", "wb") do |fh|
fh.puts("hi")
end
env.Object("foo.o", "foo.xyz")
end
+4 -6
View File
@@ -1,7 +1,5 @@
default do
Environment.new(echo: :command) do |env|
env["LD"] = "gcc"
env["LIBPATH"] += ["libdir"]
env.Program('simple.exe', Dir['*.c'])
end
env(echo: :command) do |env|
env["LD"] = "gcc"
env["LIBPATH"] += ["libdir"]
env.Program('simple.exe', Dir['*.c'])
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new(echo: :command) do |env|
env.Object("simple.o", "simple.c",
"CCCMD" => %w[${CC} -c -o ${_TARGET} -Dfoobar ${_SOURCES}])
end
env(echo: :command) do |env|
env.Object("simple.o", "simple.c",
"CCCMD" => %w[${CC} -c -o ${_TARGET} -Dfoobar ${_SOURCES}])
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new(echo: :command) do |env|
env["DEPFILESUFFIX"] = ".deppy"
env.Object("simple.o", "simple.c")
end
env(echo: :command) do |env|
env["DEPFILESUFFIX"] = ".deppy"
env.Object("simple.o", "simple.c")
end
+4 -6
View File
@@ -1,10 +1,8 @@
path_prepend "path_prepend"
path_append "path_append"
default do
Environment.new do |env|
system("flex")
system("foobar")
env.Object("simple.o", "simple.c")
end
env do |env|
system("flex")
system("foobar")
env.Object("simple.o", "simple.c")
end
+8 -10
View File
@@ -1,13 +1,11 @@
default do
Environment.new do |env|
env.add_builder(:Checker) do |params|
unless @cache.up_to_date?(@target, :Checker, @sources, @env)
puts "Checker #{@sources.first}" if @env.echo != :off
@cache.register_build(@target, :Checker, @sources, @env)
end
true
env do |env|
env.add_builder(:Checker) do |params|
unless @cache.up_to_date?(@target, :Checker, @sources, @env)
puts "Checker #{@sources.first}" if @env.echo != :off
@cache.register_build(@target, :Checker, @sources, @env)
end
env.Program("simple.exe", "simple.c")
env.Checker(:checker, "simple.exe")
true
end
env.Program("simple.exe", "simple.c")
env.Checker(:checker, "simple.exe")
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new do |env|
env.Preprocess("simplepp.c", "simple.c")
env.Program("simple.exe", "simplepp.c")
end
env do |env|
env.Preprocess("simplepp.c", "simple.c")
env.Program("simple.exe", "simplepp.c")
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new do |env|
env["PROGSUFFIX"] = ".out"
env.Program("simple", Dir["*.c"])
end
env do |env|
env["PROGSUFFIX"] = ".out"
env.Program("simple", Dir["*.c"])
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new do |env|
env["MYSUFFIX"] = ".out"
env.Program("simple${MYSUFFIX}", Dir["*.c"])
end
env do |env|
env["MYSUFFIX"] = ".out"
env.Program("simple${MYSUFFIX}", Dir["*.c"])
end
+2 -4
View File
@@ -1,5 +1,3 @@
default do
Environment.new do |env|
env.Program("simple", Dir["*.c"], "PROGSUFFIX" => ".xyz")
end
env do |env|
env.Program("simple", Dir["*.c"], "PROGSUFFIX" => ".xyz")
end
@@ -1,10 +1,8 @@
default do
Environment.new do |env|
env.Program("simple.exe", Dir["*.c"])
env.add_build_hook do |builder|
if builder.target.end_with?(".o")
env.Disassemble("#{builder.target}.txt", builder.target)
end
env do |env|
env.Program("simple.exe", Dir["*.c"])
env.add_build_hook do |builder|
if builder.target.end_with?(".o")
env.Disassemble("#{builder.target}.txt", builder.target)
end
end
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new do |env|
env.Program("simple.exe", glob("*.c"))
env.Size("simple.size", "simple.exe")
end
env do |env|
env.Program("simple.exe", glob("*.c"))
env.Size("simple.size", "simple.exe")
end
+7 -9
View File
@@ -17,13 +17,11 @@ class NonThreadedTestBuilder < Rscons::Builder
end
end
default do
Environment.new do |env|
env.add_builder(ThreadedTestBuilder)
env.add_builder(NonThreadedTestBuilder)
env.ThreadedTestBuilder("a")
env.ThreadedTestBuilder("b")
env.ThreadedTestBuilder("c")
env.NonThreadedTestBuilder("d")
end
env do |env|
env.add_builder(ThreadedTestBuilder)
env.add_builder(NonThreadedTestBuilder)
env.ThreadedTestBuilder("a")
env.ThreadedTestBuilder("b")
env.ThreadedTestBuilder("c")
env.NonThreadedTestBuilder("d")
end
+5 -7
View File
@@ -13,11 +13,9 @@ class TestBuilder < Rscons::Builder
end
end
default do
Environment.new do |env|
env.add_builder(TestBuilder)
one = env.TestBuilder("one", [], "wait_time" => "3")
two = env.TestBuilder("two", [], "wait_time" => "0")
env.depends(two, one)
end
env do |env|
env.add_builder(TestBuilder)
one = env.TestBuilder("one", [], "wait_time" => "3")
two = env.TestBuilder("two", [], "wait_time" => "0")
env.depends(two, one)
end
+3 -5
View File
@@ -1,6 +1,4 @@
default do
Environment.new do |env|
program = env.Program("simple.exe", Dir["*.c"])
env.depends(program, "program.ld")
end
env do |env|
program = env.Program("simple.exe", Dir["*.c"])
env.depends(program, "program.ld")
end
@@ -8,11 +8,10 @@ class FileBuilder < Builder
true
end
end
default do
Environment.new do |env|
env.add_builder(FileBuilder)
env.File("^/file.txt")
program = env.Program("^/simple.exe", Dir["*.c"])
env.depends("^/simple.exe", "^/file.txt")
end
env do |env|
env.add_builder(FileBuilder)
env.File("^/file.txt")
program = env.Program("^/simple.exe", Dir["*.c"])
env.depends("^/simple.exe", "^/file.txt")
end
@@ -11,12 +11,10 @@ class Fail < Rscons::Builder
end
end
default do
Environment.new do |env|
env.add_builder(Fail)
4.times do |i|
wait_time = i + 1
env.Fail("foo_#{wait_time}", [], "wait_time" => wait_time.to_s)
end
env do |env|
env.add_builder(Fail)
4.times do |i|
wait_time = i + 1
env.Fail("foo_#{wait_time}", [], "wait_time" => wait_time.to_s)
end
end