configure do check_d_compiler end fart_env = env "fart" do |env| env["DFLAGS"] += %w[-Werror -O2] env["D_IMPORT_PATH"] += %w[src] env.Command("^/src/sceneparser.d", "src/sceneparser.propane", "CMD" => %w[./propane ${_SOURCES} ${_TARGET}], "CMD_DESC" => "Generating scene parser") env.add_build_hook do |builder| if builder.sources.first =~ /sceneparser\.d/ builder.vars["DFLAGS"] -= %w[-Werror] end end env["sources"] = glob("src/**/*.d") + ["^/src/sceneparser.d"] env.Program("fart", "${sources}") end task "test" do test_env = fart_env.clone "test" do |env| env["DFLAGS"] += %w[-funittest] env.Program("^/farttest", "${sources}") end test_env.process sh test_env.expand("^/farttest") end