do_mysql 0.9.12-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,72 @@
1
+ if RUBY_PLATFORM =~ /darwin/
2
+ ENV["RC_ARCHS"] = `uname -m`.chomp if `uname -sr` =~ /^Darwin/
3
+
4
+ # On PowerPC the defaults are fine
5
+ ENV["RC_ARCHS"] = '' if `uname -m` =~ /^Power Macintosh/
6
+ end
7
+
8
+ require 'mkmf'
9
+
10
+ # All instances of mysql_config on PATH ...
11
+ def mysql_config_paths
12
+ ENV['PATH'].split(File::PATH_SEPARATOR).collect do |path|
13
+ [ "#{path}/mysql_config", "#{path}/mysql_config5" ].
14
+ detect { |bin| File.exist?(bin) }
15
+ end
16
+ end
17
+
18
+ # The first mysql_config binary on PATH ...
19
+ def default_mysql_config_path
20
+ mysql_config_paths.compact.first
21
+ end
22
+
23
+ def default_prefix
24
+ if mc = default_mysql_config_path
25
+ File.dirname(File.dirname(mc))
26
+ else
27
+ "/usr/local"
28
+ end
29
+ end
30
+
31
+ # Allow overriding path to mysql_config on command line using:
32
+ # ruby extconf.rb --with-mysql-config=/path/to/mysql_config
33
+ if RUBY_PLATFORM =~ /mswin|mingw/
34
+ dir_config('mysql')
35
+ have_header 'my_global.h'
36
+ have_header 'mysql.h' || exit(1)
37
+ have_library 'libmysql' || exit(1)
38
+ have_func('mysql_query', 'mysql.h') || exit(1)
39
+ have_func('mysql_ssl_set', 'mysql.h')
40
+ elsif mc = with_config('mysql-config', default_mysql_config_path)
41
+ mc = default_mysql_config_path if mc == true
42
+ cflags = `#{mc} --cflags`.chomp
43
+ exit 1 if $? != 0
44
+ libs = `#{mc} --libs`.chomp
45
+ exit 1 if $? != 0
46
+ $CPPFLAGS += ' ' + cflags
47
+ $libs = libs + " " + $libs
48
+ else
49
+ inc, lib = dir_config('mysql', default_prefix)
50
+ libs = ['m', 'z', 'socket', 'nsl']
51
+ lib_dirs =
52
+ [ lib, "/usr/lib", "/usr/local/lib", "/opt/local/lib" ].collect do |path|
53
+ [ path, "#{path}/mysql", "#{path}/mysql5/mysql" ]
54
+ end
55
+ find_library('mysqlclient', 'mysql_query', *lib_dirs.flatten) || exit(1)
56
+ find_header('mysql.h', *lib_dirs.flatten.map { |p| p.gsub('/lib', '/include') })
57
+ end
58
+
59
+ unless RUBY_PLATFORM =~ /mswin|mingw/
60
+ have_header 'mysql.h'
61
+ have_library 'mysqlclient' || exit(1)
62
+ have_func 'mysql_query' || exit(1)
63
+ have_func 'mysql_ssl_set'
64
+ end
65
+
66
+ $CFLAGS << ' -Wall ' unless RUBY_PLATFORM =~ /mswin/
67
+
68
+ if RUBY_VERSION < '1.8.6'
69
+ $CFLAGS << ' -DRUBY_LESS_THAN_186'
70
+ end
71
+
72
+ create_makefile('do_mysql_ext')
@@ -0,0 +1,44 @@
1
+
2
+ module DataObjects
3
+
4
+ module Mysql
5
+
6
+ class Transaction < DataObjects::Transaction
7
+
8
+ def finalize_transaction
9
+ cmd = "XA END '#{id}'"
10
+ connection.create_command(cmd).execute_non_query
11
+ end
12
+
13
+ def begin
14
+ cmd = "XA START '#{id}'"
15
+ connection.create_command(cmd).execute_non_query
16
+ end
17
+
18
+ def commit
19
+ cmd = "XA COMMIT '#{id}'"
20
+ connection.create_command(cmd).execute_non_query
21
+ end
22
+
23
+ def rollback
24
+ finalize_transaction
25
+ cmd = "XA ROLLBACK '#{id}'"
26
+ connection.create_command(cmd).execute_non_query
27
+ end
28
+
29
+ def rollback_prepared
30
+ cmd = "XA ROLLBACK '#{id}'"
31
+ connection.create_command(cmd).execute_non_query
32
+ end
33
+
34
+ def prepare
35
+ finalize_transaction
36
+ cmd = "XA PREPARE '#{id}'"
37
+ connection.create_command(cmd).execute_non_query
38
+ end
39
+
40
+ end
41
+
42
+ end
43
+
44
+ end
@@ -0,0 +1,5 @@
1
+ module DataObjects
2
+ module Mysql
3
+ VERSION = "0.9.12"
4
+ end
5
+ end
data/lib/do_mysql.rb ADDED
@@ -0,0 +1,44 @@
1
+ require 'rubygems'
2
+ require 'data_objects'
3
+ if RUBY_PLATFORM =~ /java/
4
+ require 'do_jdbc'
5
+ require 'java'
6
+ gem 'jdbc-mysql'
7
+ require 'jdbc/mysql' # the JDBC driver, packaged as a gem
8
+ end
9
+
10
+ require 'do_mysql_ext'
11
+ require File.expand_path(File.join(File.dirname(__FILE__), 'do_mysql', 'version'))
12
+ require File.expand_path(File.join(File.dirname(__FILE__), 'do_mysql', 'transaction'))
13
+
14
+ if RUBY_PLATFORM =~ /java/
15
+ # Another way of loading the JDBC Class. This seems to be more reliable
16
+ # than Class.forName() within the data_objects.Connection Java class,
17
+ # which is currently not working as expected.
18
+ import 'com.mysql.jdbc.Driver'
19
+
20
+ module DataObjects
21
+ module Mysql
22
+ class Connection
23
+ def self.pool_size
24
+ 20
25
+ end
26
+
27
+ def using_socket?
28
+ @using_socket
29
+ end
30
+
31
+ def character_set
32
+ # JDBC API does not provide an easy way to get the current character set
33
+ reader = self.create_command("SHOW VARIABLES LIKE 'character_set_client'").execute_reader
34
+ reader.next!
35
+ char_set = reader.values[1]
36
+ reader.close
37
+ char_set.downcase
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+
44
+ end
Binary file
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
4
+ require 'data_objects/spec/command_spec'
5
+
6
+ describe DataObjects::Mysql::Command do
7
+ it_should_behave_like 'a Command'
8
+ it_should_behave_like 'a Command with async'
9
+ end
@@ -0,0 +1,19 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
4
+ require 'data_objects/spec/connection_spec'
5
+
6
+ describe DataObjects::Mysql::Connection do
7
+
8
+ before :all do
9
+ @driver = CONFIG.scheme
10
+ @user = CONFIG.user
11
+ @password = CONFIG.pass
12
+ @host = CONFIG.host
13
+ @port = CONFIG.port
14
+ @database = CONFIG.database
15
+ end
16
+
17
+ it_should_behave_like 'a Connection'
18
+ #it_should_behave_like 'a Connection with authentication support'
19
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
4
+ require 'data_objects/spec/encoding_spec'
5
+
6
+ describe DataObjects::Mysql::Connection do
7
+ it_should_behave_like 'a driver supporting encodings'
8
+ end
@@ -0,0 +1,3 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', 'data_objects', 'spec', 'lib', 'rspec_immediate_feedback_formatter'))
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
4
+ require 'data_objects/spec/reader_spec'
5
+
6
+ describe DataObjects::Mysql::Reader do
7
+ it_should_behave_like 'a Reader'
8
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
4
+ require 'data_objects/spec/result_spec'
5
+
6
+ describe DataObjects::Mysql::Result do
7
+ it_should_behave_like 'a Result'
8
+ it_should_behave_like 'a Result which returns inserted keys'
9
+ end
@@ -0,0 +1,132 @@
1
+ $TESTING=true
2
+ JRUBY = RUBY_PLATFORM =~ /java/
3
+
4
+ require 'rubygems'
5
+
6
+ gem 'rspec', '>1.1.12'
7
+ require 'spec'
8
+
9
+ require 'date'
10
+ require 'ostruct'
11
+ require 'pathname'
12
+ require 'fileutils'
13
+
14
+ # put data_objects from repository in the load path
15
+ # DO NOT USE installed gem of data_objects!
16
+ $:.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'data_objects', 'lib'))
17
+ require 'data_objects'
18
+
19
+ DATAOBJECTS_SPEC_ROOT = Pathname(__FILE__).dirname.parent.parent + 'data_objects' + 'spec'
20
+ Pathname.glob((DATAOBJECTS_SPEC_ROOT + 'lib/**/*.rb').to_s).each { |f| require f }
21
+
22
+ if JRUBY
23
+ $:.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'do_jdbc', 'lib'))
24
+ require 'do_jdbc'
25
+ end
26
+
27
+ # put the pre-compiled extension in the path to be found
28
+ $:.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
29
+ require 'do_mysql'
30
+
31
+ log_path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'log', 'do.log'))
32
+ FileUtils.mkdir_p(File.dirname(log_path))
33
+
34
+ DataObjects::Mysql.logger = DataObjects::Logger.new(log_path, :debug)
35
+
36
+ at_exit { DataObjects.logger.flush }
37
+
38
+ Spec::Runner.configure do |config|
39
+ config.include(DataObjects::Spec::PendingHelpers)
40
+ end
41
+
42
+ CONFIG = OpenStruct.new
43
+ CONFIG.scheme = 'mysql'
44
+ CONFIG.user = ENV['DO_MYSQL_USER'] || 'root'
45
+ CONFIG.pass = ENV['DO_MYSQL_PASS'] || ''
46
+ CONFIG.host = ENV['DO_MYSQL_HOST'] || 'localhost'
47
+ CONFIG.port = ENV['DO_MYSQL_PORT'] || '3306'
48
+ CONFIG.database = ENV['DO_MYSQL_DATABASE'] || '/do_test'
49
+
50
+ CONFIG.uri = ENV["DO_MYSQL_SPEC_URI"] ||"#{CONFIG.scheme}://#{CONFIG.user}:#{CONFIG.pass}@#{CONFIG.host}:#{CONFIG.port}#{CONFIG.database}"
51
+ CONFIG.sleep = "SELECT sleep(1)"
52
+
53
+ module DataObjectsSpecHelpers
54
+
55
+ def setup_test_environment
56
+ conn = DataObjects::Connection.new(CONFIG.uri)
57
+
58
+ conn.create_command(<<-EOF).execute_non_query
59
+ DROP TABLE IF EXISTS `invoices`
60
+ EOF
61
+
62
+ conn.create_command(<<-EOF).execute_non_query
63
+ DROP TABLE IF EXISTS `users`
64
+ EOF
65
+
66
+ conn.create_command(<<-EOF).execute_non_query
67
+ DROP TABLE IF EXISTS `widgets`
68
+ EOF
69
+
70
+ conn.create_command(<<-EOF).execute_non_query
71
+ CREATE TABLE `users` (
72
+ `id` int(11) NOT NULL auto_increment,
73
+ `name` varchar(200) default 'Billy' NULL,
74
+ `fired_at` timestamp,
75
+ PRIMARY KEY (`id`)
76
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
77
+ EOF
78
+
79
+ conn.create_command(<<-EOF).execute_non_query
80
+ CREATE TABLE `invoices` (
81
+ `id` int(11) NOT NULL auto_increment,
82
+ `invoice_number` varchar(50) NOT NULL,
83
+ PRIMARY KEY (`id`)
84
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
85
+ EOF
86
+
87
+ conn.create_command(<<-EOF).execute_non_query
88
+ CREATE TABLE `widgets` (
89
+ `id` int(11) NOT NULL auto_increment,
90
+ `code` char(8) default 'A14' NULL,
91
+ `name` varchar(200) default 'Super Widget' NULL,
92
+ `shelf_location` tinytext NULL,
93
+ `description` text NULL,
94
+ `image_data` blob NULL,
95
+ `ad_description` mediumtext NULL,
96
+ `ad_image` mediumblob NULL,
97
+ `whitepaper_text` longtext NULL,
98
+ `cad_drawing` longblob NULL,
99
+ `flags` tinyint(1) default 0,
100
+ `number_in_stock` smallint default 500,
101
+ `number_sold` mediumint default 0,
102
+ `super_number` bigint default 9223372036854775807,
103
+ `weight` float default 1.23,
104
+ `cost1` double default 10.23,
105
+ `cost2` decimal(8,2) default 50.23,
106
+ `release_date` date default '2008-02-14',
107
+ `release_datetime` datetime default '2008-02-14 00:31:12',
108
+ `release_timestamp` timestamp default '2008-02-14 00:31:31',
109
+ `status` enum('active','out of stock') NOT NULL default 'active',
110
+ PRIMARY KEY (`id`)
111
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
112
+ EOF
113
+
114
+ 1.upto(16) do |n|
115
+ conn.create_command(<<-EOF).execute_non_query
116
+ insert into widgets(code, name, shelf_location, description, image_data, ad_description, ad_image, whitepaper_text, cad_drawing, super_number, weight) VALUES ('W#{n.to_s.rjust(7,"0")}', 'Widget #{n}', 'A14', 'This is a description', 'IMAGE DATA', 'Buy this product now!', 'AD IMAGE DATA', 'String', 'CAD \001 \000 DRAWING', 1234, 13.4);
117
+ EOF
118
+ end
119
+
120
+ conn.create_command(<<-EOF).execute_non_query
121
+ update widgets set flags = 1 where id = 2
122
+ EOF
123
+
124
+ conn.create_command(<<-EOF).execute_non_query
125
+ update widgets set ad_description = NULL where id = 3
126
+ EOF
127
+
128
+ conn.close
129
+
130
+ end
131
+
132
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/array_spec'
5
+
6
+ describe 'DataObjects::Mysql with Array' do
7
+ it_should_behave_like 'supporting Array'
8
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/bigdecimal_spec'
5
+
6
+ describe 'DataObjects::Mysql with BigDecimal' do
7
+ it_should_behave_like 'supporting BigDecimal'
8
+ it_should_behave_like 'supporting BigDecimal autocasting'
9
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/boolean_spec'
5
+
6
+ describe 'DataObjects::Mysql with Boolean' do
7
+ it_should_behave_like 'supporting Boolean'
8
+ it_should_behave_like 'supporting Boolean autocasting'
9
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/byte_array_spec'
5
+
6
+ describe 'DataObjects::Mysql with ByteArray' do
7
+ it_should_behave_like 'supporting ByteArray'
8
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/class_spec'
5
+
6
+ describe 'DataObjects::Mysql with Class' do
7
+ it_should_behave_like 'supporting Class'
8
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/date_spec'
5
+
6
+ describe 'DataObjects::Mysql with Date' do
7
+ it_should_behave_like 'supporting Date'
8
+ it_should_behave_like 'supporting Date autocasting'
9
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/datetime_spec'
5
+
6
+ describe 'DataObjects::Mysql with DateTime' do
7
+ it_should_behave_like 'supporting DateTime'
8
+ it_should_behave_like 'supporting DateTime autocasting'
9
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/float_spec'
5
+
6
+ describe 'DataObjects::Mysql with Float' do
7
+ it_should_behave_like 'supporting Float'
8
+ it_should_behave_like 'supporting Float autocasting'
9
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/integer_spec'
5
+
6
+ describe 'DataObjects::Mysql with Integer' do
7
+ it_should_behave_like 'supporting Integer'
8
+ end
@@ -0,0 +1,10 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/nil_spec'
5
+
6
+ describe 'DataObjects::Mysql with Nil' do
7
+ it_should_behave_like 'supporting Nil'
8
+ it_should_behave_like 'supporting writing an Nil'
9
+ it_should_behave_like 'supporting Nil autocasting'
10
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/range_spec'
5
+
6
+ describe 'DataObjects::Mysql with Range' do
7
+ it_should_behave_like 'supporting Range'
8
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/string_spec'
5
+
6
+ describe 'DataObjects::Mysql with String' do
7
+ it_should_behave_like 'supporting String'
8
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
4
+ require 'data_objects/spec/typecast/time_spec'
5
+
6
+ describe 'DataObjects::Mysql with Time' do
7
+ it_should_behave_like 'supporting Time'
8
+ end
data/tasks/gem.rake ADDED
@@ -0,0 +1,60 @@
1
+ require 'rubygems/package_task'
2
+
3
+ GEM_SPEC = Gem::Specification.new do |s|
4
+ # basic information
5
+ s.name = "do_mysql"
6
+ s.version = DataObjects::Mysql::VERSION
7
+
8
+ # description and details
9
+ s.summary = 'DataObjects MySQL Driver'
10
+ s.description = "Implements the DataObjects API for MySQL"
11
+
12
+ # dependencies
13
+ s.add_dependency "addressable", "~>2.0.0"
14
+ s.add_dependency "extlib", "~>0.9.12"
15
+ s.add_dependency "data_objects", DataObjects::Mysql::VERSION
16
+
17
+ if JRUBY
18
+ s.add_dependency "jdbc-mysql", ">=5.0.4"
19
+ s.add_dependency "do_jdbc", DataObjects::Mysql::VERSION
20
+ s.platform = "java"
21
+ # components, files and paths
22
+ s.files = FileList["lib/**/*.rb", "spec/**/*.rb", "tasks/**/*.rake",
23
+ "LICENSE", "Rakefile", "*.{rdoc,txt,yml}", "lib/*.jar"]
24
+ else
25
+ s.platform = Gem::Platform::RUBY
26
+ s.extensions << 'ext/do_mysql_ext/extconf.rb'
27
+ s.files = FileList["lib/**/*.rb", "spec/**/*.rb", "tasks/**/*.rake", "ext/**/*.{rb,c}",
28
+ "LICENSE", "Rakefile", "*.{rdoc,txt,yml}"]
29
+ end
30
+
31
+
32
+ # development dependencies
33
+ s.add_development_dependency 'rspec', '~>1.2.0'
34
+
35
+ s.require_path = 'lib'
36
+
37
+ # documentation
38
+ s.has_rdoc = false
39
+
40
+ # project information
41
+ s.homepage = 'http://github.com/datamapper/do'
42
+ s.rubyforge_project = 'dorb'
43
+
44
+ # author and contributors
45
+ s.author = 'Dirkjan Bussink'
46
+ s.email = 'd.bussink@gmail.com'
47
+ end
48
+
49
+ gem_package = Gem::PackageTask.new(GEM_SPEC) do |pkg|
50
+ pkg.need_tar = false
51
+ pkg.need_zip = false
52
+ end
53
+
54
+ file "#{GEM_SPEC.name}.gemspec" => ['Rakefile', 'tasks/gem.rake'] do |t|
55
+ puts "Generating #{t.name}"
56
+ File.open(t.name, 'w') { |f| f.puts GEM_SPEC.to_yaml }
57
+ end
58
+
59
+ desc "Generate or update the standalone gemspec file for the project"
60
+ task :gemspec => ["#{GEM_SPEC.name}.gemspec"]
@@ -0,0 +1,15 @@
1
+ def sudo_gem(cmd)
2
+ sh "#{SUDO} #{RUBY} -S gem #{cmd}", :verbose => false
3
+ end
4
+
5
+ # Installation
6
+
7
+ desc "Install #{GEM_SPEC.name} #{GEM_SPEC.version}"
8
+ task :install => [ :package ] do
9
+ sudo_gem "install pkg/#{GEM_SPEC.name}-#{GEM_SPEC.version} --no-update-sources"
10
+ end
11
+
12
+ desc "Uninstall #{GEM_SPEC.name} #{GEM_SPEC.version}"
13
+ task :uninstall => [ :clean ] do
14
+ sudo_gem "uninstall #{GEM_SPEC.name} -v#{GEM_SPEC.version} -I -x"
15
+ end
data/tasks/native.rake ADDED
@@ -0,0 +1,31 @@
1
+ begin
2
+ gem('rake-compiler')
3
+ require 'rake/extensiontask'
4
+
5
+ Rake::ExtensionTask.new('do_mysql_ext', GEM_SPEC) do |ext|
6
+
7
+ mysql_lib = File.expand_path(File.join(File.dirname(__FILE__), '..', 'vendor', "mysql-#{BINARY_VERSION}-win32"))
8
+
9
+ # automatically add build options to avoid need of manual input
10
+ if RUBY_PLATFORM =~ /mswin|mingw/ then
11
+ ext.config_options << "--with-mysql-include=#{mysql_lib}/include"
12
+ ext.config_options << "--with-mysql-lib=#{mysql_lib}/lib/opt"
13
+ else
14
+ ext.cross_compile = true
15
+ ext.cross_platform = ['x86-mingw32', 'x86-mswin32-60']
16
+ ext.cross_config_options << "--with-mysql-include=#{mysql_lib}/include"
17
+ ext.cross_config_options << "--with-mysql-lib=#{mysql_lib}/lib/opt"
18
+ end
19
+
20
+ end
21
+ rescue LoadError
22
+ warn "To cross-compile, install rake-compiler (gem install rake-compiler)"
23
+
24
+ if (tasks_dir = ROOT.parent + 'tasks').directory?
25
+ require tasks_dir + 'ext_helper'
26
+ require tasks_dir + 'ext_helper_java'
27
+
28
+ setup_c_extension("#{GEM_SPEC.name}_ext", GEM_SPEC)
29
+ setup_java_extension("#{GEM_SPEC.name}_ext", GEM_SPEC)
30
+ end
31
+ end