| 1 |
require 'rake' |
|---|
| 2 |
require 'rake/testtask' |
|---|
| 3 |
require 'rake/gempackagetask' |
|---|
| 4 |
require 'rake/rdoctask' |
|---|
| 5 |
require 'rake/clean' |
|---|
| 6 |
|
|---|
| 7 |
CLEAN.include('pkg') |
|---|
| 8 |
|
|---|
| 9 |
FILES = FileList['lib/**/*', 'test/*.rb', 'classloader/*', 'sql_reserved_words/*', 'LICENSE', 'TODO', 'CHANGES', 'README'] |
|---|
| 10 |
FULLFILES = FILES.clone.include('buildsupport/**/*', 'example/**/*' ) |
|---|
| 11 |
TESTFILES = FileList['test/test_java_helper.rb'] |
|---|
| 12 |
FULLTESTFILES = TESTFILES.clone.include('test/test_build.rb') |
|---|
| 13 |
|
|---|
| 14 |
JERBIL_VERSION = "0.3" |
|---|
| 15 |
|
|---|
| 16 |
task :default => :repackage |
|---|
| 17 |
|
|---|
| 18 |
spec = Gem::Specification.new do |s| |
|---|
| 19 |
s.authors = 'Jan Berkel' |
|---|
| 20 |
s.email = 'jan@trampolinesystems.com' |
|---|
| 21 |
s.platform = Gem::Platform::RUBY |
|---|
| 22 |
s.required_ruby_version = '>= 1.8.4' |
|---|
| 23 |
s.summary = 'Java build system, based on rake' |
|---|
| 24 |
s.name = 'jerbil' |
|---|
| 25 |
s.homepage = 'http://code.trampolinesystems.com/jerbil' |
|---|
| 26 |
s.version = JERBIL_VERSION |
|---|
| 27 |
s.add_dependency('rjb', '>= 1.0.6') |
|---|
| 28 |
s.add_dependency('rake', '>= 0.7.1') |
|---|
| 29 |
s.add_dependency('builder') |
|---|
| 30 |
s.require_path = 'lib' |
|---|
| 31 |
s.requirements << 'rjb' |
|---|
| 32 |
s.requirements << 'rake' |
|---|
| 33 |
s.requirements << 'builder' |
|---|
| 34 |
s.requirements << 'JDK 5.0' |
|---|
| 35 |
s.has_rdoc = true |
|---|
| 36 |
s.files = FILES |
|---|
| 37 |
s.test_files = TESTFILES |
|---|
| 38 |
s.description = <<EOD |
|---|
| 39 |
Jerbil (Java-Ruby-Build) is a rake and rjb based build system. |
|---|
| 40 |
EOD |
|---|
| 41 |
end |
|---|
| 42 |
|
|---|
| 43 |
Rake::GemPackageTask.new(spec) do |pkg| |
|---|
| 44 |
pkg.gem_spec = spec |
|---|
| 45 |
pkg.need_zip = false |
|---|
| 46 |
pkg.need_tar = false |
|---|
| 47 |
end |
|---|
| 48 |
|
|---|
| 49 |
namespace :full do |
|---|
| 50 |
fullspec = spec.clone |
|---|
| 51 |
fullspec.files = FULLFILES |
|---|
| 52 |
fullspec.test_files = FULLTESTFILES |
|---|
| 53 |
fullspec.name = 'jerbil-full' |
|---|
| 54 |
Rake::GemPackageTask.new(fullspec) do |pkg| |
|---|
| 55 |
pkg.gem_spec = fullspec |
|---|
| 56 |
pkg.need_zip = false |
|---|
| 57 |
pkg.need_tar = false |
|---|
| 58 |
end |
|---|
| 59 |
end |
|---|
| 60 |
|
|---|
| 61 |
Rake::RDocTask.new do |rdoc| |
|---|
| 62 |
rdoc.title = "Jerbil" |
|---|
| 63 |
rdoc.options << '--line-numbers' << '--inline-source' << '--main' << 'README' |
|---|
| 64 |
rdoc.rdoc_files.include("README", "CHANGES", "TODO", "LICENSE", "lib/**/*.rb") |
|---|
| 65 |
rdoc.rdoc_dir = 'rdoc' |
|---|
| 66 |
rdoc.template = 'externals/allison/allison.rb' |
|---|
| 67 |
end |
|---|
| 68 |
|
|---|
| 69 |
Rake::TestTask.new do |t| |
|---|
| 70 |
t.libs << "test" |
|---|
| 71 |
t.test_files = FileList['test/test*.rb'] |
|---|
| 72 |
t.verbose = false |
|---|
| 73 |
end |
|---|
| 74 |
|
|---|
| 75 |
desc "compile the classloader" |
|---|
| 76 |
task :compile_classloader do |t| |
|---|
| 77 |
javac = "javac" |
|---|
| 78 |
retried = false |
|---|
| 79 |
begin |
|---|
| 80 |
Dir.chdir("classloader") do |
|---|
| 81 |
sh %{#{javac} JerbilClassLoader.java} |
|---|
| 82 |
end |
|---|
| 83 |
rescue |
|---|
| 84 |
if ENV['JAVA_HOME'] && !retried |
|---|
| 85 |
javac = File.join(ENV['JAVA_HOME'], "bin", "javac") |
|---|
| 86 |
retried = true |
|---|
| 87 |
retry |
|---|
| 88 |
end |
|---|
| 89 |
|
|---|
| 90 |
$stderr << "Make sure javac is in your PATH, or set JAVA_HOME" |
|---|
| 91 |
raise |
|---|
| 92 |
end |
|---|
| 93 |
end |
|---|
| 94 |
|
|---|
| 95 |
begin |
|---|
| 96 |
require 'maintainer' |
|---|
| 97 |
rescue LoadError |
|---|
| 98 |
end |
|---|
| 99 |
|
|---|