Skip to content
This repository has been archived by the owner on Apr 17, 2018. It is now read-only.

Commit

Permalink
[all multi] Implement Jeweler + rake-compiler
Browse files Browse the repository at this point in the history
* Use the new rake-compiler JavaExtensionTask.
* Also, no need to specify require path (inherit default).

Signed-off-by: Alex Coles <alex@alexcolesportfolio.com>
  • Loading branch information
myabc committed Dec 8, 2009
1 parent a5f5c83 commit 29a67ee
Show file tree
Hide file tree
Showing 45 changed files with 430 additions and 979 deletions.
2 changes: 1 addition & 1 deletion data_objects/Rakefile
Expand Up @@ -31,7 +31,7 @@ begin
gem.add_development_dependency 'bacon', '~>1.1'
gem.add_development_dependency 'mocha', '~>0.9'

gem.require_path = 'lib'


gem.rubyforge_project = 'dorb'

Expand Down
2 changes: 1 addition & 1 deletion do_derby/Rakefile
Expand Up @@ -35,7 +35,7 @@ begin

gem.add_development_dependency 'bacon', '~>1.1'

gem.require_path = 'lib'

gem.has_rdoc = false
gem.rubyforge_project = 'dorb'
gem.authors = [ 'Alex Coles' ]
Expand Down
25 changes: 20 additions & 5 deletions do_derby/tasks/compile.rake
@@ -1,6 +1,21 @@
if (tasks_dir = ROOT.parent + 'tasks').directory?
require tasks_dir + 'ext_helper_java'
setup_java_extension("#{$gemspec.name}_ext", $gemspec)
end
begin
gem('rake-compiler')
require 'rake/javaextensiontask'

Rake::JavaExtensionTask.new('do_derby_ext', $gem_spec) do |ext|
ext.ext_dir = 'ext-java/src/main/java'
ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar'
ext.java_compiling do |gem_spec|
gem_spec.post_install_message = <<EOF
==========================================================================
task :compile => ["compile:jruby"]
DataObjects Derby Driver:
You've installed the binary extension for JRuby (Java platform)
==========================================================================
EOF
end
end
rescue LoadError
warn "To compile, install rake-compiler (gem install rake-compiler)"
end
2 changes: 1 addition & 1 deletion do_h2/Rakefile
Expand Up @@ -35,7 +35,7 @@ begin

gem.add_development_dependency 'bacon', '~>1.1'

gem.require_path = 'lib'

gem.has_rdoc = false
gem.rubyforge_project = 'dorb'
gem.authors = [ 'Alex Coles' ]
Expand Down
25 changes: 20 additions & 5 deletions do_h2/tasks/compile.rake
@@ -1,6 +1,21 @@
if (tasks_dir = ROOT.parent + 'tasks').directory?
require tasks_dir + 'ext_helper_java'
setup_java_extension("#{$gemspec.name}_ext", $gemspec)
end
begin
gem('rake-compiler')
require 'rake/javaextensiontask'

Rake::JavaExtensionTask.new('do_h2_ext', $spec) do |ext|
ext.ext_dir = 'ext-java/src/main/java'
ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar'
ext.java_compiling do |gem_spec|
gem_spec.post_install_message = <<EOF
==========================================================================
task :compile => ["compile:jruby"]
DataObjects H2 Driver:
You've installed the binary extension for JRuby (Java platform)
==========================================================================
EOF
end
end
rescue LoadError
warn "To compile, install rake-compiler (gem install rake-compiler)"
end
2 changes: 1 addition & 1 deletion do_hsqldb/Rakefile
Expand Up @@ -35,7 +35,7 @@ begin

gem.add_development_dependency 'bacon', '~>1.1'

gem.require_path = 'lib'

gem.has_rdoc = false
gem.rubyforge_project = 'dorb'
gem.authors = [ 'Alex Coles' ]
Expand Down
25 changes: 20 additions & 5 deletions do_hsqldb/tasks/compile.rake
@@ -1,6 +1,21 @@
if (tasks_dir = ROOT.parent + 'tasks').directory?
require tasks_dir + 'ext_helper_java'
setup_java_extension("#{$gemspec.name}_ext", $gemspec)
end
begin
gem('rake-compiler')
require 'rake/javaextensiontask'

Rake::JavaExtensionTask.new('do_hsqldb_ext', $gem_spec) do |ext|
ext.ext_dir = 'ext-java/src/main/java'
ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar'
ext.java_compiling do |gem_spec|
gem_spec.post_install_message = <<EOF
==========================================================================
task :compile => ["compile:jruby"]
DataObjects HSQLDB Driver:
You've installed the binary extension for JRuby (Java platform)
==========================================================================
EOF
end
end
rescue LoadError
warn "To compile, install rake-compiler (gem install rake-compiler)"
end
2 changes: 1 addition & 1 deletion do_jdbc/Rakefile
Expand Up @@ -37,7 +37,7 @@ begin

gem.add_development_dependency 'bacon', '~>1.1'

gem.require_path = 'lib'

gem.has_rdoc = false
gem.rubyforge_project = 'dorb'
gem.authors = [ 'Alex Coles' ]
Expand Down
25 changes: 20 additions & 5 deletions do_jdbc/tasks/compile.rake
@@ -1,6 +1,21 @@
if (tasks_dir = ROOT.parent + 'tasks').directory?
require tasks_dir + 'ext_helper_java'
setup_java_extension("#{$gemspec.name}_internal", $gemspec, :source_dir => 'src/main/java', :add_buildr_task => false)
end
begin
gem('rake-compiler')
require 'rake/javaextensiontask'

Rake::JavaExtensionTask.new('do_jdbc_internal', $spec) do |ext|
ext.ext_dir = 'src/main/java'
#ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar'
ext.java_compiling do |gem_spec|
gem_spec.post_install_message = <<EOF
==========================================================================
task :compile => ["compile:jruby"]
DataObjects JDBC Support Library:
You've installed the JDBC Support Library for JRuby (Java platform)
==========================================================================
EOF
end
end
rescue LoadError
warn "To compile, install rake-compiler (gem install rake-compiler)"
end
32 changes: 0 additions & 32 deletions do_mysql/Manifest.txt

This file was deleted.

39 changes: 38 additions & 1 deletion do_mysql/Rakefile
Expand Up @@ -15,4 +15,41 @@ BINARY_VERSION = '5.0.85'

CLEAN.include(%w[ {tmp,pkg}/ **/*.{o,so,bundle,jar,log,a,gem,dSYM,obj,pdb,exp,DS_Store,rbc,db} ext/do_mysql_ext/Makefile ext-java/target ])

FileList['tasks/**/*.rake'].each { |task| import task }
begin
require 'jeweler'

task :build => :gemspec

jeweler = Jeweler::Tasks.new do |gem|
gem.name = 'do_mysql'
gem.version = DataObjects::Mysql::VERSION
gem.summary = 'DataObjects MySQL Driver'
gem.description = 'Implements the DataObjects API for MySQL'

gem.add_dependency 'addressable', '~>2.1'
gem.add_dependency 'data_objects', DataObjects::Mysql::VERSION

# rake-compiler should generate gemspecs for other platforms (e.g. 'java')
# and modify dependencies and extensions appropriately
gem.extensions << 'ext/do_mysql_ext/extconf.rb'
gem.files = Dir['lib/**/*.rb', 'spec/**/*.rb', 'tasks/**/*.rake', 'ext/**/*.{rb,c,h}',
'LICENSE', 'Rakefile', '*.{markdown,rdoc,txt,yml}']

gem.add_development_dependency 'bacon', '~>1.1'
gem.has_rdoc = false
gem.rubyforge_project = 'dorb'
gem.authors = [ 'Dirkjan Bussink' ]
gem.email = 'd.bussink@gmail.com'
end

$gemspec = jeweler.gemspec

Jeweler::RubyforgeTasks.new do |rubyforge|
rubyforge.doc_task = 'yardoc'
end
Jeweler::GemcutterTasks.new

FileList['tasks/**/*.rake'].each { |task| import task }
rescue LoadError
puts 'Jeweler (or a dependency) not available. Install it with: gem install jeweler'
end
2 changes: 1 addition & 1 deletion do_mysql/lib/do_mysql/version.rb
@@ -1,5 +1,5 @@
module DataObjects
module Mysql
VERSION = '0.10.1'
VERSION = '0.10.1'.freeze
end
end
63 changes: 63 additions & 0 deletions do_mysql/tasks/compile.rake
@@ -0,0 +1,63 @@
tasks_dir = ROOT.parent + 'tasks'

begin
gem('rake-compiler')
require 'rake/extensiontask'
require 'rake/javaextensiontask'

Rake::ExtensionTask.new('do_mysql_ext', $gemspec) do |ext|

mysql_lib = File.expand_path(File.join(File.dirname(__FILE__), '..', 'vendor', "mysql-#{BINARY_VERSION}-win32"))

# automatically add build options to avoid need of manual input
if RUBY_PLATFORM =~ /mswin|mingw/ then
ext.config_options << "--with-mysql-include=#{mysql_lib}/include"
ext.config_options << "--with-mysql-lib=#{mysql_lib}/lib/opt"
else
ext.cross_compile = true
ext.cross_platform = ['x86-mingw32', 'x86-mswin32-60']
ext.cross_config_options << "--with-mysql-include=#{mysql_lib}/include"
ext.cross_config_options << "--with-mysql-lib=#{mysql_lib}/lib/opt"
end

end

Rake::JavaExtensionTask.new('do_mysql_ext', $gemspec) do |ext|
ext.ext_dir = 'ext-java/src/main/java'
ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar'
ext.java_compiling do |gem|
gem.add_dependency 'jdbc-mysql', '>=5.0.4'
gem.add_dependency 'do_jdbc', '0.10.1'
gem.post_install_message = <<EOF
==========================================================================
DataObjects MySQL Driver:
You've installed the binary extension for JRuby (Java platform)
==========================================================================
EOF
# components, files and paths
# gem.files = Dir['lib/**/*.rb', 'spec/**/*.rb', 'tasks/**/*.rake',
# 'LICENSE', 'Rakefile', '*.{markdown,rdoc,txt,yml}', 'lib/*.jar']
end
end
rescue LoadError
warn "To compile, install rake-compiler (gem install rake-compiler)"
end

# Stolen from http://github.com/karottenreibe/joker/blob/master/tasks/c_extensions.rake:
#
# Workaround for rake-compiler, which YAML-dump-loads the gemspec, which leads
# to errors since Procs can't be loaded.
Rake::Task.tasks.each do |task_name|
case task_name.to_s
when /^native|java/
task_name.prerequisites.unshift("fix_rake_compiler_gemspec_dump")
end
end

task :fix_rake_compiler_gemspec_dump do
%w{files extra_rdoc_files test_files}.each do |accessor|
$gemspec.send(accessor).instance_eval { @exclude_procs = Array.new }
end
end
8 changes: 0 additions & 8 deletions do_mysql/tasks/gem.rake

This file was deleted.

15 changes: 0 additions & 15 deletions do_mysql/tasks/install.rake

This file was deleted.

31 changes: 0 additions & 31 deletions do_mysql/tasks/native.rake

This file was deleted.

0 comments on commit 29a67ee

Please sign in to comment.