forked from r888888888/dtext_rb
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathRakefile
53 lines (43 loc) · 1.24 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 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