This repository has been archived by the owner on Apr 17, 2018. It is now read-only.
/
compile.rake
77 lines (61 loc) · 3.01 KB
/
compile.rake
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
begin
gem 'rake-compiler', '~>0.7'
require 'rake/extensiontask'
require 'rake/javaextensiontask'
# Hack to avoid "allocator undefined for Proc" issue when unpacking Gems:
# gemspec provided by Jeweler uses Rake::FileList for files, test_files and
# extra_rdoc_files, and procs cannot be marshalled.
def gemspec
@clean_gemspec ||= eval("#{Rake.application.jeweler.gemspec.to_ruby}") # $SAFE = 3\n
end
Rake::ExtensionTask.new('do_mysql', gemspec) do |ext|
ext.lib_dir = "lib/#{gemspec.name}"
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"
ext.cross_compiling do |gemspec|
gemspec.post_install_message = <<-POST_INSTALL_MESSAGE
======================================================================================================
You've installed the binary version of #{gemspec.name}.
It was built using MySQL version #{BINARY_VERSION}.
It's recommended to use the exact same version to avoid potential issues.
At the time of building this gem, the necessary DLL files where available
in the following download:
http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-noinstall-#{BINARY_VERSION}-win32.zip/from/pick
You can put the lib\\opt\\libmysql.dll available in this package in your Ruby bin
directory, for example C:\\Ruby\\bin
======================================================================================================
POST_INSTALL_MESSAGE
end
end
end
Rake::JavaExtensionTask.new('do_mysql', gemspec) do |ext|
ext.lib_dir = "lib/#{gemspec.name}"
ext.ext_dir = 'ext-java/src/main/java'
ext.lib_dir = 'lib/do_mysql'
ext.debug = ENV.has_key?('DO_JAVA_DEBUG') && ENV['DO_JAVA_DEBUG']
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