This repository has been archived by the owner on Mar 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 20
/
Rakefile
62 lines (50 loc) · 1.64 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
54
55
56
57
58
59
60
61
62
require 'bundler/gem_tasks'
require 'rspec'
require 'rspec/core/rake_task'
## safely load all the rake tasks in the `tasks` directory
def safe_load(file)
begin
load file
rescue LoadError => ex
puts "Error loading rake tasks from '#{file}' but will continue..."
puts ex.message
end
end
Dir.glob('tasks/**/*.rake').each do |rakefile|
safe_load rakefile
end
task :default => :test
if defined?(JRUBY_VERSION)
require 'ant'
directory 'pkg/classes'
directory 'pkg/tests'
desc "Clean up build artifacts"
task :clean do
rm_rf "pkg/classes"
rm_rf "pkg/tests"
rm_rf "lib/thread_safe/jruby_cache_backend.jar"
end
desc "Compile the extension"
task :compile => "pkg/classes" do |t|
ant.javac :srcdir => "ext", :destdir => t.prerequisites.first,
:source => "1.5", :target => "1.5", :debug => true,
:classpath => "${java.class.path}:${sun.boot.class.path}"
end
desc "Build the jar"
task :jar => :compile do
ant.jar :basedir => "pkg/classes", :destfile => "lib/thread_safe/jruby_cache_backend.jar", :includes => "**/*.class"
end
desc "Build test jar"
task 'test-jar' => 'pkg/tests' do |t|
ant.javac :srcdir => 'spec/src', :destdir => t.prerequisites.first,
:source => "1.5", :target => "1.5", :debug => true
ant.jar :basedir => 'pkg/tests', :destfile => 'spec/package.jar', :includes => '**/*.class'
end
task :package => [ :clean, :compile, :jar, 'test-jar' ]
else
# No need to package anything for non-jruby rubies
task :package
end
RSpec::Core::RakeTask.new :test => :package do |t|
t.rspec_opts = '--color --backtrace --tag ~unfinished --seed 1 --format documentation ./spec'
end