61 lines
1.4 KiB
Ruby
61 lines
1.4 KiB
Ruby
require "bundler"
|
|
Bundler.setup(:default)
|
|
|
|
require "rake/clean"
|
|
require "rscons"
|
|
|
|
NAME = "jes"
|
|
GTEST_VERSION = "1.7.0"
|
|
|
|
base_env = Rscons::Environment.new do |env|
|
|
env.build_root = "build"
|
|
env["CPPPATH"] << "src/lib/include"
|
|
env["CFLAGS"] += ["-Wall", "-O2"]
|
|
env["CXXFLAGS"] += ["-Wall", "-O2"]
|
|
end
|
|
|
|
task :library do
|
|
base_env.clone(clone: :all) do |env|
|
|
env.Library("^/lib#{NAME}.a", Dir["src/lib/**/*.{cc,c}"])
|
|
end
|
|
end
|
|
|
|
task :gui => :library do
|
|
base_env.clone(clone: :all) do |env|
|
|
env.parse_flags!("!sdl2-config --cflags --libs")
|
|
env.parse_flags!("!freetype-config --cflags --libs")
|
|
env["LIBS"] += ["dl"]
|
|
if RUBY_PLATFORM =~ /mingw/
|
|
env["LIBS"] += ["opengl32"]
|
|
else
|
|
env["LIBS"] += ["GL"]
|
|
end
|
|
env.Program("^/jes", Dir["src/gui/**/*.{cc,c}"])
|
|
end
|
|
end
|
|
|
|
task :test => :library do
|
|
base_env.clone(clone: :all) do |env|
|
|
env["CPPPATH"] << "gtest-#{GTEST_VERSION}/include"
|
|
env["CPPPATH"] << "gtest-#{GTEST_VERSION}"
|
|
env["LIBS"] << NAME
|
|
env["LIBPATH"] << env.build_root
|
|
sources = Dir["gtest-#{GTEST_VERSION}/src/gtest-all.cc",
|
|
"gtest-#{GTEST_VERSION}/src/gtest_main.cc",
|
|
"test/src/**/*.cc"]
|
|
env.Program("build/tests", sources)
|
|
if RUBY_PLATFORM =~ /linux/
|
|
env["LIBS"] << "pthread"
|
|
end
|
|
end
|
|
system("./build/tests")
|
|
end
|
|
|
|
task :default => :all
|
|
|
|
task :all => [:library, :gui]
|
|
|
|
task :clean do
|
|
Rscons.clean
|
|
end
|