34 lines
818 B
Ruby
34 lines
818 B
Ruby
require "rscons"
|
|
|
|
base_env = Rscons::Environment.new do |env|
|
|
env["build_root"] = lambda {|args| args[:env].build_root}
|
|
env["CPPPATH"] << "include"
|
|
env["CPPPATH"] << "test/gl3w"
|
|
env["CPPDEFINES"] << %[GLCXX_GL_INCLUDE="GL3/gl3w.h"]
|
|
env["CCFLAGS"] += %w[-Wall]
|
|
env["CXXFLAGS"] += %w[-std=gnu++11]
|
|
env["CXXSUFFIX"] = %w[.cc .cpp]
|
|
end
|
|
|
|
task :lib do
|
|
base_env.clone do |env|
|
|
env.build_root = "build/lib"
|
|
sources = Dir["src/**/*.cpp"]
|
|
env.Library("${build_root}/lib.a", sources)
|
|
end
|
|
end
|
|
|
|
task :test do
|
|
base_env.clone do |env|
|
|
env.build_root = "build/test"
|
|
env.parse_flags!("!sdl2-config --cflags --libs")
|
|
sources = Dir["src/**/*.cpp", "test/**/*.{cpp,c}"]
|
|
env["LIBS"] += %w[dl GL]
|
|
env.Program("${build_root}/testapp", sources)
|
|
end
|
|
end
|
|
|
|
task :clean do
|
|
Rscons.clean
|
|
end
|