Compare commits

...

9 Commits

Author SHA1 Message Date
281654803d wip 2022-02-19 09:20:46 -05:00
19dee2b2a5 Add variants - #137
Add build script methods: variant, variant_group, with_variants
2022-02-16 12:23:30 -05:00
5b6353395d Store configure task parameters in configuration cache data - close #151 2022-02-14 21:52:35 -05:00
7e5c6e6b12 Store task parameter values in a Hash 2022-02-13 12:46:26 -05:00
44f61da571 Only configure if necessary - close #131 2022-02-12 23:18:00 -05:00
5c28e557bd Sort task output with -T 2022-02-12 22:14:10 -05:00
ef7e9259cb 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.
2022-02-12 21:59:52 -05:00
6d5f44d4e5 Allow passing spawn options to sh - close #153 2022-02-06 14:02:26 -05:00
8b2387f7a3 Add download script method - close #152 2022-02-05 16:51:52 -05:00
147 changed files with 1420 additions and 930 deletions

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env.CFile("lexer.c", "lexer.l")
env.CFile("lexer.c", "lexer.l") env.CFile("parser.c", "parser.y")
env.CFile("parser.c", "parser.y")
end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.CFile("file.c", "foo.bar")
env.CFile("file.c", "foo.bar")
end
end end

View File

@ -1,12 +1,10 @@
default do debug = env(echo: :command) do |env|
debug = Environment.new(echo: :command) do |env| env['CFLAGS'] = '-O2'
env['CFLAGS'] = '-O2' env['CPPFLAGS'] = '-DSTRING="Debug Version"'
env['CPPFLAGS'] = '-DSTRING="Debug Version"' env.Program('program-debug.exe', Dir['src/*.c'])
env.Program('program-debug.exe', Dir['src/*.c']) end
end
release = debug.clone do |env|
release = debug.clone do |env| env["CPPFLAGS"] = '-DSTRING="Release Version"'
env["CPPFLAGS"] = '-DSTRING="Release Version"' env.Program('program-release.exe', Dir['src/*.c'])
env.Program('program-release.exe', Dir['src/*.c'])
end
end end

View File

@ -1,16 +1,14 @@
default do env1 = env(echo: :command) do |env|
env1 = Environment.new(echo: :command) do |env| env['CFLAGS'] = '-O2'
env['CFLAGS'] = '-O2' env.add_build_hook do |builder|
env.add_build_hook do |builder| builder.vars['CPPFLAGS'] = '-DSTRING="Hello"'
builder.vars['CPPFLAGS'] = '-DSTRING="Hello"'
end
env.add_post_build_hook do |builder|
$stdout.puts "post #{builder.target}"
end
env.Program('program.exe', Dir['src/*.c'])
end end
env.add_post_build_hook do |builder|
env2 = env1.clone do |env| $stdout.puts "post #{builder.target}"
env.Program('program2.exe', Dir['src/*.c'])
end end
env.Program('program.exe', Dir['src/*.c'])
end
env2 = env1.clone do |env|
env.Program('program2.exe', Dir['src/*.c'])
end end

View File

@ -1,3 +1,3 @@
autoconf false autoconf false
Environment.new do |env| env do |env|
end end

View File

@ -3,8 +3,6 @@ configure do
check_c_header "stdio.h" check_c_header "stdio.h"
end end
default do env do |env|
Environment.new do |env| env.Program("simple.exe", "simple.c")
env.Program("simple.exe", "simple.c")
end
end end

View File

@ -0,0 +1,6 @@
configure do
check_c_compiler "clang"
end
env do |env|
env.Program("simple.exe", "simple.c")
end

View File

@ -3,8 +3,6 @@ configure do
check_c_header "frobulous.h", check_cpppath: ["./usr2"] check_c_header "frobulous.h", check_cpppath: ["./usr2"]
end end
default do env do |env|
Environment.new do |env| env.Object("test.o", "test.c")
env.Object("test.o", "test.c")
end
end end

View File

@ -2,8 +2,6 @@ configure do
check_c_header "not___found.h", set_define: "HAVE_NOT___FOUND_H" check_c_header "not___found.h", set_define: "HAVE_NOT___FOUND_H"
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Object("simple.o", "simple.c")
env.Object("simple.o", "simple.c")
end
end end

View File

@ -2,8 +2,6 @@ configure do
check_c_header "string.h", set_define: "HAVE_STRING_H" check_c_header "string.h", set_define: "HAVE_STRING_H"
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Object("simple.o", "simple.c")
env.Object("simple.o", "simple.c")
end
end end

View File

@ -2,8 +2,6 @@ configure do
check_cfg program: "my-config" check_cfg program: "my-config"
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Program("myconfigtest", "simple.c")
env.Program("myconfigtest", "simple.c")
end
end end

View File

@ -2,8 +2,6 @@ configure do
check_cfg package: "mypackage" check_cfg package: "mypackage"
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Program("myconfigtest", "simple.c")
env.Program("myconfigtest", "simple.c")
end
end end

View File

@ -2,14 +2,12 @@ configure do
check_cfg package: "mypackage", use: "myp" check_cfg package: "mypackage", use: "myp"
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Copy("myconfigtest1.c", "simple.c")
env.Copy("myconfigtest1.c", "simple.c") env.Program("myconfigtest1.exe", "myconfigtest1.c")
env.Program("myconfigtest1.exe", "myconfigtest1.c") end
end
env(echo: :command, use: "myp") do |env|
Environment.new(echo: :command, use: "myp") do |env| env.Copy("myconfigtest2.c", "simple.c")
env.Copy("myconfigtest2.c", "simple.c") env.Program("myconfigtest2.exe", "myconfigtest2.c")
env.Program("myconfigtest2.exe", "myconfigtest2.c")
end
end end

View File

@ -3,8 +3,6 @@ configure do
check_cxx_header "frobulous.h", check_cpppath: ["./usr2"] check_cxx_header "frobulous.h", check_cpppath: ["./usr2"]
end end
default do env do |env|
Environment.new do |env| env.Object("test.o", "test.cc")
env.Object("test.o", "test.cc")
end
end end

View File

@ -4,8 +4,6 @@ configure do
check_d_import "frobulous", check_d_import_path: ["./usr2"] check_d_import "frobulous", check_d_import_path: ["./usr2"]
end end
default do env do |env|
Environment.new do |env| env.Object("test.o", "test.d")
env.Object("test.o", "test.d")
end
end end

View File

@ -1,5 +1,3 @@
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Library("usr2/libfrobulous.a", "two.c")
env.Library("usr2/libfrobulous.a", "two.c")
end
end end

View File

@ -3,8 +3,6 @@ configure do
check_lib "frobulous", check_libpath: ["./usr2"] check_lib "frobulous", check_libpath: ["./usr2"]
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Program("simple.exe", "simple.c")
env.Program("simple.exe", "simple.c")
end
end end

View File

@ -2,8 +2,6 @@ configure do
check_lib "m" check_lib "m"
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Program("simple.exe", "simple.c")
env.Program("simple.exe", "simple.c")
end
end end

View File

@ -2,14 +2,12 @@ configure do
check_lib "m", use: :m check_lib "m", use: :m
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Copy("test1.c", "simple.c")
env.Copy("test1.c", "simple.c") env.Program("test2.exe", "test1.c")
env.Program("test2.exe", "test1.c") end
end
env(echo: :command, use: %w[m]) do |env|
Environment.new(echo: :command, use: %w[m]) do |env| env.Copy("test2.c", "simple.c")
env.Copy("test2.c", "simple.c") env.Program("test2.exe", "test2.c")
env.Program("test2.exe", "test2.c")
end
end end

View File

@ -2,9 +2,7 @@ configure do
check_lib "m", use: false check_lib "m", use: false
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Copy("test1.c", "simple.c")
env.Copy("test1.c", "simple.c") env.Program("test2.exe", "test1.c")
env.Program("test2.exe", "test1.c")
end
end end

View File

@ -23,8 +23,6 @@ configure do
end end
end end
default do env do |env|
Environment.new do |env| puts env["CPPDEFINES"]
puts env["CPPDEFINES"]
end
end end

View File

@ -3,8 +3,6 @@ configure do
check_c_header "stdio.h", set_define: "HAVE_STDIO_H" check_c_header "stdio.h", set_define: "HAVE_STDIO_H"
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Object("simple.o", "simple.c")
env.Object("simple.o", "simple.c")
end
end end

View File

@ -0,0 +1,3 @@
default do
puts "default"
end

View File

@ -9,10 +9,8 @@ EOF
end end
end end
default do env do |env|
Environment.new do |env| env.add_builder(MySource)
env.add_builder(MySource) env.MySource('inc.h', [])
env.MySource('inc.h', []) env.Program('program.exe', Dir['*.c'])
env.Program('program.exe', Dir['*.c'])
end
end end

View File

@ -1,13 +1,11 @@
default do env do |env|
Environment.new do |env| env.Command("inc.c",
env.Command("inc.c", [],
[], "CMD" => %w[ruby gen.rb ${_TARGET}],
"CMD" => %w[ruby gen.rb ${_TARGET}], "CMD_DESC" => "Generating")
"CMD_DESC" => "Generating") env["build_root"] = env.build_root
env["build_root"] = env.build_root env["inc_c"] = "inc.c"
env["inc_c"] = "inc.c" env.Object("program.o", "program.c")
env.Object("program.o", "program.c") env.build_after("program.o", "${inc_c}")
env.build_after("program.o", "${inc_c}") env.Program("program.exe", ["program.o", "inc.c"])
env.Program("program.exe", ["program.o", "inc.c"])
end
end end

View File

@ -9,12 +9,10 @@ EOF
end end
end end
default do env = env do |env|
env = Environment.new do |env| env["hdr"] = "inc.h"
env["hdr"] = "inc.h" env["src"] = "program.c"
env["src"] = "program.c" env.add_builder(MySource)
env.add_builder(MySource) env.MySource('${hdr}')
env.MySource('${hdr}') env.Program('program.exe', "${src}")
env.Program('program.exe', "${src}")
end
end end

View File

@ -9,22 +9,20 @@ EOF
end end
end end
default do e1 = env do |env|
e1 = Environment.new do |env| env.add_builder(MySource)
env.add_builder(MySource) env["one"] = "5"
env["one"] = "5" env[:cfg] = {val: "9"}
env[:cfg] = {val: "9"} env["two"] = lambda do |args|
env["two"] = lambda do |args| args[:env][:cfg][:val]
args[:env][:cfg][:val]
end
env["the_value"] = lambda do |args|
"${one}${two}78"
end
end end
env["the_value"] = lambda do |args|
e1.clone do |env| "${one}${two}78"
env[:cfg][:val] = "6"
env.MySource('inc.h', [])
env.Program('program.exe', Dir['*.c'])
end end
end end
e1.clone do |env|
env[:cfg][:val] = "6"
env.MySource('inc.h', [])
env.Program('program.exe', Dir['*.c'])
end

View File

@ -1,8 +1,6 @@
default do env do |env|
Environment.new do |env| env.add_builder(:MyBuilder) do |options|
env.add_builder(:MyBuilder) do |options| "hi"
"hi"
end
env.MyBuilder("foo")
end end
env.MyBuilder("foo")
end end

View File

@ -1,8 +1,6 @@
default do env do |env|
Environment.new do |env| env.add_builder(:MyBuilder) do |options|
env.add_builder(:MyBuilder) do |options| wait_for(1)
wait_for(1)
end
env.MyBuilder("foo")
end end
env.MyBuilder("foo")
end end

View File

@ -12,10 +12,8 @@ class CHGen < Rscons::Builder
end end
end end
default do env do |env|
Environment.new do |env| env.add_builder(CHGen)
env.add_builder(CHGen) env.CHGen("inc.c", ["program.c"])
env.CHGen("inc.c", ["program.c"]) env.Program("program.exe", %w[program.c inc.c])
env.Program("program.exe", %w[program.c inc.c])
end
end end

View File

@ -1,17 +1,15 @@
default do env do |env|
Environment.new do |env| env["build_root"] = env.build_root
env["build_root"] = env.build_root env["inc_h"] = "inc.h"
env["inc_h"] = "inc.h"
env.Copy("copy_inc.h", "${inc_h}") env.Copy("copy_inc.h", "${inc_h}")
env.depends("program.o", "${inc_h}") env.depends("program.o", "${inc_h}")
env.Object("program.o", "program.c") env.Object("program.o", "program.c")
env.Program("program.exe", ["program.o", "inc.c"]) env.Program("program.exe", ["program.o", "inc.c"])
inc_c = env.Command("inc.c", inc_c = env.Command("inc.c",
[], [],
"CMD" => %w[ruby gen.rb ${_TARGET}], "CMD" => %w[ruby gen.rb ${_TARGET}],
"CMD_DESC" => "Generating") "CMD_DESC" => "Generating")
inc_c.produces("inc.h") inc_c.produces("inc.h")
end
end end

View File

@ -1,17 +1,15 @@
default do env do |env|
Environment.new do |env| env["build_root"] = env.build_root
env["build_root"] = env.build_root env["inc_h"] = "inc.h"
env["inc_h"] = "inc.h"
env.Copy("copy_inc.h", "${inc_h}") env.Copy("copy_inc.h", "${inc_h}")
env.depends("program.o", "${inc_h}") env.depends("program.o", "${inc_h}")
env.Object("program.o", "program.c") env.Object("program.o", "program.c")
env.Program("program.exe", ["program.o", "inc.c"]) env.Program("program.exe", ["program.o", "inc.c"])
env.Command("inc.c", env.Command("inc.c",
[], [],
"CMD" => %w[ruby gen.rb ${_TARGET}], "CMD" => %w[ruby gen.rb ${_TARGET}],
"CMD_DESC" => "Generating") "CMD_DESC" => "Generating")
env.produces("inc.c", "inc.h") env.produces("inc.c", "inc.h")
end
end end

View File

@ -13,9 +13,7 @@ class MyBuilder < Rscons::Builder
end end
end end
default do env do |env|
Environment.new do |env| env.add_builder(MyBuilder)
env.add_builder(MyBuilder) env.MyBuilder("foo")
env.MyBuilder("foo")
end
end end

View File

@ -2,8 +2,6 @@ configure do
check_d_compiler "gdc" check_d_compiler "gdc"
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Program("hello-d.exe", glob("*.d"))
env.Program("hello-d.exe", glob("*.d"))
end
end end

View File

@ -2,8 +2,6 @@ configure do
check_d_compiler "ldc2" check_d_compiler "ldc2"
end end
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Program("hello-d.exe", glob("*.d"))
env.Program("hello-d.exe", glob("*.d"))
end
end end

View File

@ -1,7 +1,5 @@
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Object("main.o", "main.d")
env.Object("main.o", "main.d") env.Object("mod.o", "mod.d")
env.Object("mod.o", "mod.d") env.Program("hello-d.exe", ["main.o", "mod.o"])
env.Program("hello-d.exe", ["main.o", "mod.o"])
end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.Program("test.exe", glob("*.c"), direct: true)
env.Program("test.exe", glob("*.c"), direct: true)
end
end end

View File

@ -1,7 +1,5 @@
default do env do |env|
Environment.new do |env| lib = env.SharedLibrary("mylib", ["two.c", "three.c"], direct: true)
lib = env.SharedLibrary("mylib", ["two.c", "three.c"], direct: true) program = env.Program("test.exe", "main.c", "LIBS" => ["mylib"], "LIBPATH" => ["."])
program = env.Program("test.exe", "main.c", "LIBS" => ["mylib"], "LIBPATH" => ["."]) env.depends(program, lib)
env.depends(program, lib)
end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.Program('header.exe', Dir['*.c'])
env.Program('header.exe', Dir['*.c'])
end
end end

View File

@ -1,18 +1,16 @@
default do env do |env|
Environment.new do |env| require 'json'
require 'json' require 'yaml'
require 'yaml' env.add_builder(:JsonToYaml) do |params|
env.add_builder(:JsonToYaml) do |params| unless @cache.up_to_date?(@target, :JsonToYaml, @sources, @env)
unless @cache.up_to_date?(@target, :JsonToYaml, @sources, @env) print_run_message("JsonToYaml #{@target}", nil)
print_run_message("JsonToYaml #{@target}", nil) @cache.mkdir_p(File.dirname(@target))
@cache.mkdir_p(File.dirname(@target)) File.open(@target, 'w') do |f|
File.open(@target, 'w') do |f| f.write(YAML.dump(JSON.load(IO.read(@sources.first))))
f.write(YAML.dump(JSON.load(IO.read(@sources.first))))
end
@cache.register_build(@target, :JsonToYaml, @sources, @env)
end end
true @cache.register_build(@target, :JsonToYaml, @sources, @env)
end end
env.JsonToYaml('foo.yml', 'foo.json') true
end end
env.JsonToYaml('foo.yml', 'foo.json')
end end

View File

@ -1,6 +1,4 @@
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Program('library.exe', ['lib.a', 'three.c'])
env.Program('library.exe', ['lib.a', 'three.c']) env.Library("lib.a", ['one.c', 'two.c'], 'CPPFLAGS' => ['-Dmake_lib'])
env.Library("lib.a", ['one.c', 'two.c'], 'CPPFLAGS' => ['-Dmake_lib'])
end
end end

View File

@ -1,7 +1,5 @@
default do env do |env|
Environment.new do |env| env.Program("library.exe", ["lib.a", "three.c"])
env.Program("library.exe", ["lib.a", "three.c"]) env.Object("two.o", "two.c")
env.Object("two.o", "two.c") env.Library("lib.a", ["one.c", "two.o"], 'CPPFLAGS' => ['-Dmake_lib'])
env.Library("lib.a", ["one.c", "two.o"], 'CPPFLAGS' => ['-Dmake_lib'])
end
end end

View File

@ -1,6 +1,4 @@
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env["ARCMD"] = %w[ar rcf ${_TARGET} ${_SOURCES}]
env["ARCMD"] = %w[ar rcf ${_TARGET} ${_SOURCES}] env.Library("lib.a", glob("*.c"))
env.Library("lib.a", glob("*.c"))
end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.Program("foo.exe", glob("*.cc", "*.c"))
env.Program("foo.exe", glob("*.cc", "*.c"))
end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.Preprocess("pp", "foo.h")
env.Preprocess("pp", "foo.h")
end
end end

View File

@ -1,13 +1,11 @@
default do env do |env|
Environment.new do |env| env["CPPPATH"] << "src/lib"
env["CPPPATH"] << "src/lib" libmine = env.SharedLibrary("mine", glob("src/lib/*.c"))
libmine = env.SharedLibrary("mine", glob("src/lib/*.c")) env.Program("test-shared.exe",
env.Program("test-shared.exe", glob("src/*.c"),
glob("src/*.c"), "LIBPATH" => %w[.],
"LIBPATH" => %w[.], "LIBS" => %w[mine])
"LIBS" => %w[mine]) env.build_after("test-shared.exe", libmine)
env.build_after("test-shared.exe", libmine) env.Program("test-static.exe",
env.Program("test-static.exe", glob("src/**/*.c"))
glob("src/**/*.c"))
end
end end

View File

@ -1,8 +1,6 @@
default do env do |env|
Environment.new do |env| File.open("foo.xyz", "wb") do |fh|
File.open("foo.xyz", "wb") do |fh| fh.puts("hi")
fh.puts("hi")
end
env.SharedObject("foo.o", "foo.xyz")
end end
env.SharedObject("foo.o", "foo.xyz")
end end

View File

@ -1,7 +1,5 @@
default do env do |env|
Environment.new do |env| env["CPPPATH"] << "src/lib"
env["CPPPATH"] << "src/lib" env.Object("file.S", "src/lib/one.c", "CFLAGS" => env["CFLAGS"] + ["-S"])
env.Object("file.S", "src/lib/one.c", "CFLAGS" => env["CFLAGS"] + ["-S"]) libmine = env.SharedLibrary("mine", "file.S")
libmine = env.SharedLibrary("mine", "file.S")
end
end end

View File

@ -1,13 +1,11 @@
default do env do |env|
Environment.new do |env| env["CPPPATH"] << "src/lib"
env["CPPPATH"] << "src/lib" libmine = env.SharedLibrary("mine", glob("src/lib/*.cc"))
libmine = env.SharedLibrary("mine", glob("src/lib/*.cc")) env.Program("test-shared.exe",
env.Program("test-shared.exe", glob("src/*.cc"),
glob("src/*.cc"), "LIBPATH" => %w[.],
"LIBPATH" => %w[.], "LIBS" => %w[mine])
"LIBS" => %w[mine]) env.build_after("test-shared.exe", libmine)
env.build_after("test-shared.exe", libmine) env.Program("test-static.exe",
env.Program("test-static.exe", glob("src/**/*.cc"))
glob("src/**/*.cc"))
end
end end

View File

@ -1,11 +1,9 @@
default do env do |env|
Environment.new do |env| env["CPPPATH"] << "src/lib"
env["CPPPATH"] << "src/lib" libmine = env.SharedLibrary("mine", glob("src/lib/*.d"))
libmine = env.SharedLibrary("mine", glob("src/lib/*.d")) env.Program("test-shared.exe",
env.Program("test-shared.exe", glob("src/*.c"),
glob("src/*.c"), "LIBPATH" => %w[.],
"LIBPATH" => %w[.], "LIBS" => %w[mine])
"LIBS" => %w[mine]) env.build_after("test-shared.exe", libmine)
env.build_after("test-shared.exe", libmine)
end
end end

View File

@ -1,7 +1,5 @@
default do env do |env|
Environment.new do |env| env["CPPPATH"] << "src/lib"
env["CPPPATH"] << "src/lib" env.SharedObject("one.o", "src/lib/one.c")
env.SharedObject("one.o", "src/lib/one.c") libmine = env.SharedLibrary("mine", ["one.o", "src/lib/two.c"])
libmine = env.SharedLibrary("mine", ["one.o", "src/lib/two.c"])
end
end end

View File

@ -1,14 +1,12 @@
default do env do |env|
Environment.new do |env| env["CPPPATH"] << "src/lib"
env["CPPPATH"] << "src/lib" env["SHLD"] = "gcc"
env["SHLD"] = "gcc" libmine = env.SharedLibrary("mine", glob("src/lib/*.c"))
libmine = env.SharedLibrary("mine", glob("src/lib/*.c")) env.Program("test-shared.exe",
env.Program("test-shared.exe", glob("src/*.c"),
glob("src/*.c"), "LIBPATH" => %w[.],
"LIBPATH" => %w[.], "LIBS" => %w[mine])
"LIBS" => %w[mine]) env.build_after("test-shared.exe", libmine)
env.build_after("test-shared.exe", libmine) env.Program("test-static.exe",
env.Program("test-static.exe", glob("src/**/*.c"))
glob("src/**/*.c"))
end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.Program('simple.exe', Dir['*.c'])
env.Program('simple.exe', Dir['*.c'])
end
end end

View File

@ -1,15 +1,13 @@
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| tempdir = ENV["TEMP"] || ENV["TMP"] || "/tmp"
tempdir = ENV["TEMP"] || ENV["TMP"] || "/tmp" source_file = File.join(tempdir, "abs.c")
source_file = File.join(tempdir, "abs.c") File.open(source_file, "w") do |fh|
File.open(source_file, "w") do |fh| fh.puts(<<-EOF)
fh.puts(<<-EOF) int main()
int main() {
{ return 29;
return 29; }
} EOF
EOF
end
env.Program("abs.exe", source_file)
end end
env.Program("abs.exe", source_file)
end end

View File

@ -10,15 +10,13 @@ class ThreadedTestBuilder < Rscons::Builder
end end
end end
default do env do |env|
Environment.new do |env| env.add_builder(ThreadedTestBuilder)
env.add_builder(ThreadedTestBuilder) env.ThreadedTestBuilder("T3", [], "delay" => 3)
env.ThreadedTestBuilder("T3", [], "delay" => 3) env.ThreadedTestBuilder("T2", [], "delay" => 1.0)
env.ThreadedTestBuilder("T2", [], "delay" => 1.0) env.ThreadedTestBuilder("T1", [], "delay" => 0.5)
env.ThreadedTestBuilder("T1", [], "delay" => 0.5) env.barrier
env.barrier env.ThreadedTestBuilder("T6", [], "delay" => 1.5)
env.ThreadedTestBuilder("T6", [], "delay" => 1.5) env.ThreadedTestBuilder("T5", [], "delay" => 1.0)
env.ThreadedTestBuilder("T5", [], "delay" => 1.0) env.ThreadedTestBuilder("T4", [], "delay" => 0.5)
env.ThreadedTestBuilder("T4", [], "delay" => 0.5)
end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| object = env.Object("simple.o", "simple.c")
object = env.Object("simple.o", "simple.c") env.Program("simple.exe", object)
env.Program("simple.exe", object)
end
end end

View File

@ -3,9 +3,8 @@ class TestBuilder < Rscons::Builder
true true
end end
end end
default do
Environment.new do |env| env do |env|
env.add_builder(TestBuilder) env.add_builder(TestBuilder)
env.TestBuilder("file") env.TestBuilder("file")
end
end end

View File

@ -14,10 +14,8 @@ class MyObject < Rscons::Builder
end end
end end
default do env do |env|
Environment.new do |env| env.add_builder(MyObject)
env.add_builder(MyObject) env.MyObject("simple.o", "simple.c")
env.MyObject("simple.o", "simple.c") env.Program("simple.exe", "simple.o")
env.Program("simple.exe", "simple.o")
end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env["LIBS"] += ["m"]
env["LIBS"] += ["m"] env.Program('simple.exe', Dir['*.c'])
env.Program('simple.exe', Dir['*.c'])
end
end end

View File

@ -27,12 +27,10 @@ class DebugBuilder < Rscons::Builder
end end
end end
default do env do |env|
Environment.new do |env| env.add_builder(DebugBuilder)
env.add_builder(DebugBuilder) if ENV["test"] == "new_user_dep"
if ENV["test"] == "new_user_dep" env.depends("foo.o", "new_dep")
env.depends("foo.o", "new_dep")
end
env.DebugBuilder("foo.o", "simple.c")
end end
env.DebugBuilder("foo.o", "simple.c")
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.Copy("simple.copy", "simple.c")
env.Copy("simple.copy", "simple.c")
end
end end

View File

@ -1,8 +1,6 @@
default do env do |env|
Environment.new do |env| env.Object("simple.o", "simple.c")
env.Object("simple.o", "simple.c") env.process
env.process env["LDCMD"] = %w[gcc -o ${_TARGET} simple.o]
env["LDCMD"] = %w[gcc -o ${_TARGET} simple.o] env.Program('simple.exe', [])
env.Program('simple.exe', [])
end
end end

View File

@ -1,7 +1,5 @@
default do env do |env|
Environment.new do |env| env.Object("simple.o", "simple.c")
env.Object("simple.o", "simple.c") env["LDCMD"] = %w[gcc -o ${_TARGET} simple.o]
env["LDCMD"] = %w[gcc -o ${_TARGET} simple.o] env.Program('simple.exe', ["simple.o"])
env.Program('simple.exe', ["simple.o"])
end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env.Object("simple.o", "simple.c")
env.Object("simple.o", "simple.c") env.Object("two.o", "two.c")
env.Object("two.o", "two.c")
end
end end

View File

@ -1,7 +1,5 @@
default do env do |env|
Environment.new do |env| target = env.Program("simple.exe", "simple.c")
target = env.Program("simple.exe", "simple.c") user_deps = File.read("user_deps", mode: "rb").split(" ")
user_deps = File.read("user_deps", mode: "rb").split(" ") target.depends(*user_deps)
target.depends(*user_deps)
end
end end

View File

@ -13,9 +13,7 @@ class TestBuilder < Rscons::Builder
end end
end end
default do env do |env|
Environment.new do |env| env.add_builder(TestBuilder)
env.add_builder(TestBuilder) env.TestBuilder("foo")
env.TestBuilder("foo")
end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env.Program("simple.exe", "simple.c")
env.Program("simple.exe", "simple.c") env.clear_targets
env.clear_targets
end
end end

View File

@ -1,9 +1,7 @@
default do base_env = env do |env|
base_env = Environment.new do |env| env.n_threads = 165
env.n_threads = 165 end
end
my_env = base_env.clone do |env|
my_env = base_env.clone puts env.n_threads
puts my_env.n_threads
end end

View File

@ -1,6 +1,4 @@
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env["LD"] = "gcc"
env["LD"] = "gcc" env.Program('simple.exe', Dir['*.c'])
env.Program('simple.exe', Dir['*.c'])
end
end end

View File

@ -1,9 +1,7 @@
default do env do |env|
Environment.new do |env| command = %W[gcc -o ${_TARGET} ${_SOURCES}]
command = %W[gcc -o ${_TARGET} ${_SOURCES}] env.Command("simple.exe",
env.Command("simple.exe", "simple.c",
"simple.c", "CMD" => command,
"CMD" => command, "CMD_DESC" => "BuildIt")
"CMD_DESC" => "BuildIt")
end
end end

View File

@ -1,10 +1,8 @@
default do env do |env|
Environment.new do |env| env.Object("simple.o", "simple.c")
env.Object("simple.o", "simple.c") env.Command("simple.txt",
env.Command("simple.txt", "simple.o",
"simple.o", "CMD" => %w[objdump --disassemble --source ${_SOURCES}],
"CMD" => %w[objdump --disassemble --source ${_SOURCES}], "CMD_STDOUT" => "${_TARGET}",
"CMD_STDOUT" => "${_TARGET}", "CMD_DESC" => "My Disassemble")
"CMD_DESC" => "My Disassemble")
end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env["sources"] = glob("*.c")
env["sources"] = glob("*.c") env.Program("simple.exe", "${sources}")
env.Program("simple.exe", "${sources}")
end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.Directory("teh_dir")
env.Directory("teh_dir")
end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env.Object("simple.o", "simple.c")
env.Object("simple.o", "simple.c") env.Disassemble("simple.txt", "simple.o")
env.Disassemble("simple.txt", "simple.o")
end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.Object("simple.o", "simple.c")
env.Object("simple.o", "simple.c")
end
end end

View File

@ -1,5 +1,5 @@
default do default do
env = Environment.new do |env| env = env do |env|
env["CFLAGS"] += %w[-O2 -fomit-frame-pointer] env["CFLAGS"] += %w[-O2 -fomit-frame-pointer]
env[:foo] = :bar env[:foo] = :bar
end end

View File

@ -1,7 +1,5 @@
default do env do |env|
Environment.new do |env| env.Command("foo", "bar")
env.Command("foo", "bar") env.Command("bar", "baz")
env.Command("bar", "baz") env.Command("baz", "foo")
env.Command("baz", "foo")
end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.Command("foo", "foo")
env.Command("foo", "foo")
end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.produces("foo", "bar")
env.produces("foo", "bar")
end
end end

View File

@ -1,8 +1,6 @@
default do env do |env|
Environment.new do |env| File.open("foo.xyz", "wb") do |fh|
File.open("foo.xyz", "wb") do |fh| fh.puts("hi")
fh.puts("hi")
end
env.Object("foo.o", "foo.xyz")
end end
env.Object("foo.o", "foo.xyz")
end end

View File

@ -1,7 +1,5 @@
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env["LD"] = "gcc"
env["LD"] = "gcc" env["LIBPATH"] += ["libdir"]
env["LIBPATH"] += ["libdir"] env.Program('simple.exe', Dir['*.c'])
env.Program('simple.exe', Dir['*.c'])
end
end end

View File

@ -1,6 +1,4 @@
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env.Object("simple.o", "simple.c",
env.Object("simple.o", "simple.c", "CCCMD" => %w[${CC} -c -o ${_TARGET} -Dfoobar ${_SOURCES}])
"CCCMD" => %w[${CC} -c -o ${_TARGET} -Dfoobar ${_SOURCES}])
end
end end

View File

@ -1,6 +1,4 @@
default do env(echo: :command) do |env|
Environment.new(echo: :command) do |env| env["DEPFILESUFFIX"] = ".deppy"
env["DEPFILESUFFIX"] = ".deppy" env.Object("simple.o", "simple.c")
env.Object("simple.o", "simple.c")
end
end end

View File

@ -1,10 +1,8 @@
path_prepend "path_prepend" path_prepend "path_prepend"
path_append "path_append" path_append "path_append"
default do env do |env|
Environment.new do |env| system("flex")
system("flex") system("foobar")
system("foobar") env.Object("simple.o", "simple.c")
env.Object("simple.o", "simple.c")
end
end end

View File

@ -1,13 +1,11 @@
default do env do |env|
Environment.new do |env| env.add_builder(:Checker) do |params|
env.add_builder(:Checker) do |params| unless @cache.up_to_date?(@target, :Checker, @sources, @env)
unless @cache.up_to_date?(@target, :Checker, @sources, @env) puts "Checker #{@sources.first}" if @env.echo != :off
puts "Checker #{@sources.first}" if @env.echo != :off @cache.register_build(@target, :Checker, @sources, @env)
@cache.register_build(@target, :Checker, @sources, @env)
end
true
end end
env.Program("simple.exe", "simple.c") true
env.Checker(:checker, "simple.exe")
end end
env.Program("simple.exe", "simple.c")
env.Checker(:checker, "simple.exe")
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env.Preprocess("simplepp.c", "simple.c")
env.Preprocess("simplepp.c", "simple.c") env.Program("simple.exe", "simplepp.c")
env.Program("simple.exe", "simplepp.c")
end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env["PROGSUFFIX"] = ".out"
env["PROGSUFFIX"] = ".out" env.Program("simple", Dir["*.c"])
env.Program("simple", Dir["*.c"])
end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env["MYSUFFIX"] = ".out"
env["MYSUFFIX"] = ".out" env.Program("simple${MYSUFFIX}", Dir["*.c"])
env.Program("simple${MYSUFFIX}", Dir["*.c"])
end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.Program("simple", Dir["*.c"], "PROGSUFFIX" => ".xyz")
env.Program("simple", Dir["*.c"], "PROGSUFFIX" => ".xyz")
end
end end

View File

@ -1,10 +1,8 @@
default do env do |env|
Environment.new do |env| env.Program("simple.exe", Dir["*.c"])
env.Program("simple.exe", Dir["*.c"]) env.add_build_hook do |builder|
env.add_build_hook do |builder| if builder.target.end_with?(".o")
if builder.target.end_with?(".o") env.Disassemble("#{builder.target}.txt", builder.target)
env.Disassemble("#{builder.target}.txt", builder.target)
end
end end
end end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env.Program("simple.exe", glob("*.c"))
env.Program("simple.exe", glob("*.c")) env.Size("simple.size", "simple.exe")
env.Size("simple.size", "simple.exe")
end
end end

View File

@ -17,13 +17,11 @@ class NonThreadedTestBuilder < Rscons::Builder
end end
end end
default do env do |env|
Environment.new do |env| env.add_builder(ThreadedTestBuilder)
env.add_builder(ThreadedTestBuilder) env.add_builder(NonThreadedTestBuilder)
env.add_builder(NonThreadedTestBuilder) env.ThreadedTestBuilder("a")
env.ThreadedTestBuilder("a") env.ThreadedTestBuilder("b")
env.ThreadedTestBuilder("b") env.ThreadedTestBuilder("c")
env.ThreadedTestBuilder("c") env.NonThreadedTestBuilder("d")
env.NonThreadedTestBuilder("d")
end
end end

View File

@ -13,11 +13,9 @@ class TestBuilder < Rscons::Builder
end end
end end
default do env do |env|
Environment.new do |env| env.add_builder(TestBuilder)
env.add_builder(TestBuilder) one = env.TestBuilder("one", [], "wait_time" => "3")
one = env.TestBuilder("one", [], "wait_time" => "3") two = env.TestBuilder("two", [], "wait_time" => "0")
two = env.TestBuilder("two", [], "wait_time" => "0") env.depends(two, one)
env.depends(two, one)
end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| program = env.Program("simple.exe", Dir["*.c"])
program = env.Program("simple.exe", Dir["*.c"]) env.depends(program, "program.ld")
env.depends(program, "program.ld")
end
end end

View File

@ -8,11 +8,10 @@ class FileBuilder < Builder
true true
end end
end end
default do
Environment.new do |env| env do |env|
env.add_builder(FileBuilder) env.add_builder(FileBuilder)
env.File("^/file.txt") env.File("^/file.txt")
program = env.Program("^/simple.exe", Dir["*.c"]) program = env.Program("^/simple.exe", Dir["*.c"])
env.depends("^/simple.exe", "^/file.txt") env.depends("^/simple.exe", "^/file.txt")
end
end end

View File

@ -11,12 +11,10 @@ class Fail < Rscons::Builder
end end
end end
default do env do |env|
Environment.new do |env| env.add_builder(Fail)
env.add_builder(Fail) 4.times do |i|
4.times do |i| wait_time = i + 1
wait_time = i + 1 env.Fail("foo_#{wait_time}", [], "wait_time" => wait_time.to_s)
env.Fail("foo_#{wait_time}", [], "wait_time" => wait_time.to_s)
end
end end
end end

View File

@ -1,5 +1,3 @@
default do env do |env|
Environment.new do |env| env.Program('simple.exe', Dir['*.cc'])
env.Program('simple.exe', Dir['*.cc'])
end
end end

View File

@ -1,7 +1,5 @@
default do env do |env|
Environment.new do |env| env["CXXSUFFIX"] = %w[.cccc .cc]
env["CXXSUFFIX"] = %w[.cccc .cc] env["CXXFLAGS"] += %w[-x c++]
env["CXXFLAGS"] += %w[-x c++] env.Program("simple.exe", Dir["*.cc"] + Dir["*.cccc"])
env.Program("simple.exe", Dir["*.cc"] + Dir["*.cccc"])
end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env.Object("simple.o", "simple.cc")
env.Object("simple.o", "simple.cc") env.Program("simple.exe", "simple.o")
env.Program("simple.exe", "simple.o")
end
end end

View File

@ -1,6 +1,4 @@
default do env do |env|
Environment.new do |env| env.Preprocess("simplepp.cc", "simple.cc")
env.Preprocess("simplepp.cc", "simple.cc") env.Program("simple.exe", "simplepp.cc")
env.Program("simple.exe", "simplepp.cc")
end
end end

Some files were not shown because too many files have changed in this diff Show More