-
Notifications
You must be signed in to change notification settings - Fork 0
/
Rakefile
80 lines (61 loc) · 2.28 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
require 'rake/testtask'
require_relative 'version'
require_relative 'config'
name = "#{$gem_name}-#{$version}.gem"
#==========================================================================================
# Compiling Java classes
#==========================================================================================
desc "Compile java to mdarray-sol.jar"
task :javac do
files = Dir["#{Sol.src_dir}/**/*.java"]
jars = Dir["#{Sol.vendor_dir}/*.jar"]
classpath_directive = (jars.size > 0)? "-classpath #{jars.join(';')}" : ""
sh "javac #{classpath_directive} -d #{Sol.classes_dir} #{files.join(' ')}"
end
#==========================================================================================
#
#==========================================================================================
desc 'Make jar file'
task :make_jar do
Dir.chdir(Sol.classes_dir)
classes = Dir['**/*.class']
p classes
sh "jar -cf #{Sol.target_dir}/mdarray_sol.jar #{classes.join(' ')}"
end
#==========================================================================================
#
#==========================================================================================
Rake::TestTask.new do |t|
t.libs << "test"
t.test_files = FileList['test/complete.rb']
t.ruby_opts = ["--server", "-Xinvokedynamic.constants=true", "-J-Xmn512m",
"-J-Xms1024m", "-J-Xmx1024m"]
t.verbose = true
t.warning = true
end
#==========================================================================================
# Gem management
#==========================================================================================
desc 'Makes a Gem'
task :make_gem do
sh "jruby -S gem build #{$gem_name}.gemspec"
end
desc 'Install the gem in the standard location'
task :install_gem => [:make_gem] do
sh "jruby -S gem install #{$gem_name}-#{$version}-java.gem"
end
desc 'Push gem to rubygem'
task :push_gem do
sh "jruby -S gem push #{name}"
end
desc 'Make documentation'
task :make_doc do
sh "yard doc lib/*.rb lib/**/*.rb"
end
#==========================================================================================
# GitHub management
#==========================================================================================
desc 'Push project to github'
task :push do
sh "git push origin master"
end