require "bundler" begin Bundler.setup(:default, :development) rescue Bundler::BundlerError => e raise "Unable to Bundler.setup(): You probably need to run `bundle install`: " + e.message end require "rscons" require "fileutils" class Obj2D < Rscons::Builder def run(target, sources, cache, env, vars) command = ["ruby", "obj2d.rb", sources.first, target] standard_build("Obj2D #{target}", target, command, sources + ["obj2d.rb"], env, cache) end end desc "Build ScreenSaver" task :default do Rscons::Environment.new do |env| env.add_builder(Obj2D.new) sources = [] dirs = [ "src", "modules/DerelictUtil/source", "modules/DerelictSDL2/source", "modules/DerelictGL3/source", "modules/gl3n/gl3n", "modules/glamour/glamour", ].each do |dir| sources += Dir["#{dir}/**/*.{d,c}"] end sources << "build/obj2d/logoobj.d" env["D_IMPORT_PATH"] += [ "src", "modules/DerelictUtil/source", "modules/DerelictSDL2/source", "modules/DerelictGL3/source", "modules/gl3n", "modules/glamour", "build/obj2d", ] env["CFLAGS"] += ["-Wall", "-std=gnu99"] env["DFLAGS"] += ["-fversion=Derelict3", "-fversion=gl3n", "-fversion=SDLImage"] env["LDFLAGS"] += ["-static-libgcc", "-mwindows"] env.build_root = "build" env.Obj2D("build/obj2d/logoobj.d", "model/gentex-logo.obj") env.Program("gss", sources) end end task :clobber do ["build"].each do |dir| FileUtils.rm_rf(dir) end end