1
0
mirror of https://github.com/e621ng/dtext_rb.git synced 2025-03-04 03:03:03 -05:00
dtext_rb/Rakefile
Earlopain 86f7d2308a
Use -G2 option to generate Ragel parser
5529b7c641

Co-Authored-By: evazion <noizave@gmail.com>
2023-03-26 23:11:02 +02:00

54 lines
1.2 KiB
Ruby

# ENV["G_MESSAGES_DEBUG"] = "all"
begin
require "rake/extensiontask"
require "rubygems/package_task"
require "bundler"
Bundler.setup(:default, :development)
rescue LoadError, Bundler::BundlerError => e
$stderr.puts e.message
$stderr.puts "Run `bundle install` to install missing gems"
exit 1
end
Rake::ExtensionTask.new "dtext" do |ext|
# this goes here to ensure ragel runs *before* the extension is compiled.
task :compile => ["ext/dtext/dtext.cpp", "ext/dtext/rb_dtext.cpp"]
ext.lib_dir = "lib/dtext"
end
file "ext/dtext/dtext.cpp" => Dir["ext/dtext/dtext.{cpp.rl,h}", "Rakefile"] do
sh "ragel -G2 -C ext/dtext/dtext.cpp.rl -o ext/dtext/dtext.cpp"
end
def run_dtext(*args)
ruby "-Ilib", "-rdtext", *args
end
task test_inline_ragel: :compile do
Bundler.with_unbundled_env do
run_dtext "-e", 'puts DText.parse("hello\r\nworld")'
end
end
task test: :compile do
Bundler.with_unbundled_env do
run_dtext "test/dtext_test.rb" #, '--name=test_strip'
end
end
task reference_compare: :compile do
Bundler.with_unbundled_env do
run_dtext "test/reference_compare.rb"
end
end
task reference_generate: :compile do
Bundler.with_unbundled_env do
run_dtext "test/reference_generate.rb"
end
end
task default: :test