fxruby 1.6.26 → 1.6.27

Sign up to get free protection for your applications and to get access to all the features.
Binary file
@@ -1,3 +1,8 @@
1
+ === 1.6.27 / 2013-04-05
2
+
3
+ * Add support for Ruby-2.0.
4
+ * Add cross compilation for x64-mingw32 target.
5
+
1
6
  === 1.6.26 / 2013-02-16
2
7
 
3
8
  * Mark all text strings retrieved from fox as UTF-8 when running on Ruby 1.9
data/Rakefile CHANGED
@@ -19,7 +19,8 @@ end
19
19
 
20
20
  # Some constants we'll need
21
21
  PKG_VERSION = Fox.fxrubyversion
22
- FXSCINTILLA_INSTALL_DIR = Pathname( "build/builds/fxscintilla-#{LIBFXSCINTILLA_VERSION}" ).expand_path
22
+ # TODO: Don't depend on cross compilation task
23
+ FXSCINTILLA_INSTALL_DIR = Pathname( CrossLibraries.first.static_libfxscintilla_builddir ).expand_path
23
24
 
24
25
  SWIG = (RUBY_PLATFORM =~ /mingw/) ? "swig-1.3.22.exe" : "swig-1.3.22"
25
26
  SWIGFLAGS = "-fcompact -noruntime -c++ -ruby -no_default -I../fox-includes"
@@ -91,14 +92,29 @@ task :test => [:compile]
91
92
 
92
93
  Rake::ExtensionTask.new("fox16_c", hoe.spec) do |ext|
93
94
  ext.cross_compile = true
94
- ext.cross_platform = ['i386-mingw32']
95
- ext.cross_config_options += [
96
- "--with-fox-include=#{STATIC_INSTALLDIR}/include/fox-1.6",
97
- "--with-fxscintilla-include=#{STATIC_INSTALLDIR}/include/fxscintilla",
98
- "--with-installed-dir=#{STATIC_INSTALLDIR}",
99
- "--enable-win32-static-build",
100
- "--with-fxscintilla",
101
- ]
95
+ ext.cross_platform = CrossLibraries.map &:ruby_platform
96
+
97
+ ext.cross_config_options += CrossLibraries.map do |lib|
98
+ {
99
+ lib.ruby_platform => [
100
+ "--with-fox-include=#{lib.static_installdir}/include/fox-1.6",
101
+ "--with-fxscintilla-include=#{lib.static_installdir}/include/fxscintilla",
102
+ "--with-installed-include=#{lib.static_installdir}/include",
103
+ "--with-installed-lib=#{lib.static_installdir}/lib",
104
+ "--enable-win32-static-build",
105
+ "--with-fxscintilla",
106
+ ]
107
+ }
108
+ end
109
+
110
+ end
111
+
112
+ CrossLibraries.each do |lib|
113
+ ENV['RUBY_CC_VERSION'].split(":").each do |ruby_version|
114
+ task "copy:fox16_c:#{lib.ruby_platform}:#{ruby_version}" do |t|
115
+ sh "#{lib.host_platform}-strip -S tmp/#{lib.ruby_platform}/stage/lib/#{ruby_version[0,3]}/fox16_c.so"
116
+ end
117
+ end
102
118
  end
103
119
 
104
120
  # Set environment variable SWIG_LIB to
@@ -9,20 +9,7 @@ require 'uri'
9
9
  require 'rbconfig'
10
10
  require 'pathname'
11
11
 
12
- ENV['RUBY_CC_VERSION'] ||= '1.8.7:1.9.3'
13
-
14
- # Cross-compilation constants
15
- COMPILE_HOME = Pathname( "build" ).expand_path
16
- STATIC_SOURCESDIR = COMPILE_HOME + 'sources'
17
- STATIC_BUILDDIR = COMPILE_HOME + 'builds'
18
- STATIC_INSTALLDIR = COMPILE_HOME + 'install'
19
- RUBY_BUILD = RbConfig::CONFIG["host"]
20
- CROSS_PREFIX = begin
21
- Rake::ExtensionCompiler.mingw_host
22
- rescue => err
23
- $stderr.puts "Cross-compilation disabled -- %s" % [ err.message ]
24
- 'unknown'
25
- end
12
+ ENV['RUBY_CC_VERSION'] ||= '1.8.7:1.9.3:2.0.0'
26
13
 
27
14
  NUM_CPUS = if File.exist?('/proc/cpuinfo')
28
15
  File.read('/proc/cpuinfo').scan('processor').length
@@ -32,354 +19,392 @@ else
32
19
  1
33
20
  end
34
21
 
35
-
36
- # Fetch zlib tarball
37
- LIBZ_VERSION = ENV['LIBZ_VERSION'] || '1.2.7'
38
- LIBZ_SOURCE_URI = URI( "http://downloads.sourceforge.net/project/libpng/zlib/#{LIBZ_VERSION}/zlib-#{LIBZ_VERSION}.tar.bz2" )
39
- LIBZ_TARBALL = STATIC_SOURCESDIR + File.basename( LIBZ_SOURCE_URI.path )
40
- STATIC_LIBZ_BUILDDIR = STATIC_BUILDDIR + LIBZ_TARBALL.basename(".tar.bz2")
41
- LIBZ_MAKEFILE = STATIC_LIBZ_BUILDDIR + 'Makefile'
42
- LIBZ_A = STATIC_INSTALLDIR + 'lib' + 'libz.a'
43
-
44
- # Fetch libpng tarball
45
- LIBPNG_VERSION = ENV['LIBPNG_VERSION'] || '1.5.13'
46
- LIBPNG_SOURCE_URI = URI( "http://prdownloads.sourceforge.net/libpng/libpng-#{LIBPNG_VERSION}.tar.gz?download" )
47
- LIBPNG_TARBALL = STATIC_SOURCESDIR + File.basename( LIBPNG_SOURCE_URI.path )
48
- STATIC_LIBPNG_BUILDDIR = STATIC_BUILDDIR + LIBPNG_TARBALL.basename(".tar.gz")
49
- LIBPNG_MAKEFILE = STATIC_LIBPNG_BUILDDIR + 'Makefile'
50
- LIBPNG_A = STATIC_INSTALLDIR + 'lib' + 'libpng.a'
51
-
52
-
53
- # Fetch libjpeg tarball
54
- LIBJPEG_VERSION = ENV['LIBJPEG_VERSION'] || '8d'
55
- LIBJPEG_SOURCE_URI = URI( "http://www.ijg.org/files/jpegsrc.v#{LIBJPEG_VERSION}.tar.gz" )
56
- LIBJPEG_TARBALL = STATIC_SOURCESDIR + File.basename( LIBJPEG_SOURCE_URI.path )
57
- STATIC_LIBJPEG_BUILDDIR = STATIC_BUILDDIR + "jpeg-#{LIBJPEG_VERSION}"
58
- LIBJPEG_MAKEFILE = STATIC_LIBJPEG_BUILDDIR + 'Makefile'
59
- LIBJPEG_A = STATIC_INSTALLDIR + 'lib' + 'libjpeg.a'
60
-
61
-
62
- # Fetch libtiff tarball
63
- LIBTIFF_VERSION = ENV['LIBTIFF_VERSION'] || '4.0.3'
64
- LIBTIFF_SOURCE_URI = URI( "http://download.osgeo.org/libtiff/tiff-#{LIBTIFF_VERSION}.tar.gz" )
65
- LIBTIFF_TARBALL = STATIC_SOURCESDIR + File.basename( LIBTIFF_SOURCE_URI.path )
66
- STATIC_LIBTIFF_BUILDDIR = STATIC_BUILDDIR + LIBTIFF_TARBALL.basename(".tar.gz")
67
- LIBTIFF_MAKEFILE = STATIC_LIBTIFF_BUILDDIR + 'Makefile'
68
- LIBTIFF_A = STATIC_INSTALLDIR + 'lib' + 'libtiff.a'
69
-
70
-
71
- # Fetch libfox tarball
72
- LIBFOX_VERSION = ENV['LIBFOX_VERSION'] || '1.6.47'
73
- LIBFOX_SOURCE_URI = URI( "http://ftp.fox-toolkit.org/pub/fox-#{LIBFOX_VERSION}.tar.gz" )
74
- LIBFOX_TARBALL = STATIC_SOURCESDIR + File.basename( LIBFOX_SOURCE_URI.path )
75
- STATIC_LIBFOX_BUILDDIR = STATIC_BUILDDIR + LIBFOX_TARBALL.basename(".tar.gz")
76
- LIBFOX_MAKEFILE = STATIC_LIBFOX_BUILDDIR + 'Makefile'
77
- LIBFOX_A = STATIC_INSTALLDIR + 'lib' + 'libfox.a'
78
-
79
- # Fetch fxscintilla tarball
80
- LIBFXSCINTILLA_VERSION = ENV['LIBFXSCINTILLA_VERSION'] || '2.28.0'
81
- LIBFXSCINTILLA_SOURCE_URI = URI( "http://download.savannah.gnu.org/releases/fxscintilla/fxscintilla-#{LIBFXSCINTILLA_VERSION}.tar.gz" )
82
- LIBFXSCINTILLA_TARBALL = STATIC_SOURCESDIR + File.basename( LIBFXSCINTILLA_SOURCE_URI.path )
83
- STATIC_LIBFXSCINTILLA_BUILDDIR = STATIC_BUILDDIR + LIBFXSCINTILLA_TARBALL.basename(".tar.gz")
84
- LIBFXSCINTILLA_MAKEFILE = STATIC_LIBFXSCINTILLA_BUILDDIR + 'Makefile'
85
- LIBFXSCINTILLA_A = STATIC_INSTALLDIR + 'lib' + 'libfxscintilla.a'
86
-
87
-
88
-
89
- # clean intermediate files and folders
90
- CLEAN.include( STATIC_BUILDDIR.to_s )
91
-
92
- #####################################################################
93
- ### C R O S S - C O M P I L A T I O N - T A S K S
94
- #####################################################################
95
-
96
- directory STATIC_SOURCESDIR.to_s
97
-
98
- #
99
- # Static libz build tasks
100
- #
101
- directory STATIC_LIBZ_BUILDDIR.to_s
102
-
103
- # libz source file should be stored there
104
- file LIBZ_TARBALL => STATIC_SOURCESDIR do |t|
105
- # download the source file using wget or curl
106
- chdir File.dirname(t.name) do
107
- sh "wget '#{LIBZ_SOURCE_URI}' -O #{LIBZ_TARBALL}"
108
- end
109
- end
110
-
111
- # Extract the libz builds
112
- file STATIC_LIBZ_BUILDDIR => LIBZ_TARBALL do |t|
113
- sh 'tar', '-xjf', LIBZ_TARBALL.to_s, '-C', STATIC_LIBZ_BUILDDIR.parent.to_s
114
- rm LIBZ_MAKEFILE
115
- end
116
-
117
- LIBZ_ENV = [
118
- "CC=#{CROSS_PREFIX}-gcc",
119
- "AR=#{CROSS_PREFIX}-ar",
120
- "RANLIB=#{CROSS_PREFIX}-ranlib",
121
- ]
122
-
123
- # generate the makefile in a clean build location
124
- file LIBZ_MAKEFILE => [STATIC_LIBZ_BUILDDIR] do |t|
125
- chdir( STATIC_LIBZ_BUILDDIR ) do
126
- options = [
127
- "--prefix=#{STATIC_INSTALLDIR}",
22
+ class CrossLibrary < OpenStruct
23
+ include Rake::DSL
24
+
25
+ def initialize(ruby_platform)
26
+ super()
27
+
28
+ self.ruby_platform = ruby_platform
29
+
30
+ # Cross-compilation constants
31
+ self.compile_home = Pathname( "build" ).expand_path
32
+ self.static_sourcesdir = compile_home + 'sources'
33
+ self.static_builddir = compile_home + 'builds' + ruby_platform
34
+ self.static_installdir = compile_home + 'install' + ruby_platform
35
+ self.ruby_build = RbConfig::CONFIG["host"]
36
+
37
+ # Use rake-compilers config.yml to determine the toolchain that was used
38
+ # to build Ruby for this platform.
39
+ self.host_platform = begin
40
+ config_file = YAML.load_file(File.expand_path("~/.rake-compiler/config.yml"))
41
+ _, rbfile = config_file.find{|key, fname| key.start_with?("rbconfig-#{ruby_platform}-") }
42
+ IO.read(rbfile).match(/CONFIG\["host"\] = "(.*)"/)[1]
43
+ rescue
44
+ nil
45
+ end
46
+
47
+ # Fetch zlib tarball
48
+ self.libz_version = ENV['libz_version'] || '1.2.7'
49
+ self.libz_source_uri = URI( "http://downloads.sourceforge.net/project/libpng/zlib/#{libz_version}/zlib-#{libz_version}.tar.bz2" )
50
+ self.libz_tarball = static_sourcesdir + File.basename( libz_source_uri.path )
51
+ self.static_libz_builddir = static_builddir + libz_tarball.basename(".tar.bz2")
52
+ self.libz_makefile = static_libz_builddir + 'Makefile'
53
+ self.libz_a = static_libz_builddir + 'libz.a'
54
+
55
+ # Fetch libpng tarball
56
+ self.libpng_version = ENV['libpng_version'] || '1.5.13'
57
+ self.libpng_source_uri = URI( "http://prdownloads.sourceforge.net/libpng/libpng-#{libpng_version}.tar.gz?download" )
58
+ self.libpng_tarball = static_sourcesdir + File.basename( libpng_source_uri.path )
59
+ self.static_libpng_builddir = static_builddir + libpng_tarball.basename(".tar.gz")
60
+ self.libpng_makefile = static_libpng_builddir + 'Makefile'
61
+ self.libpng_a = static_libpng_builddir + '.libs' + 'libpng15.a'
62
+
63
+
64
+ # Fetch libjpeg tarball
65
+ self.libjpeg_version = ENV['libjpeg_version'] || '8d'
66
+ self.libjpeg_source_uri = URI( "http://www.ijg.org/files/jpegsrc.v#{libjpeg_version}.tar.gz" )
67
+ self.libjpeg_tarball = static_sourcesdir + File.basename( libjpeg_source_uri.path )
68
+ self.static_libjpeg_builddir = static_builddir + "jpeg-#{libjpeg_version}"
69
+ self.libjpeg_makefile = static_libjpeg_builddir + 'Makefile'
70
+ self.libjpeg_a = static_libjpeg_builddir + '.libs' + 'libjpeg.a'
71
+
72
+
73
+ # Fetch libtiff tarball
74
+ self.libtiff_version = ENV['libtiff_version'] || '4.0.3'
75
+ self.libtiff_source_uri = URI( "http://download.osgeo.org/libtiff/tiff-#{libtiff_version}.tar.gz" )
76
+ self.libtiff_tarball = static_sourcesdir + File.basename( libtiff_source_uri.path )
77
+ self.static_libtiff_builddir = static_builddir + libtiff_tarball.basename(".tar.gz")
78
+ self.libtiff_makefile = static_libtiff_builddir + 'Makefile'
79
+ self.libtiff_a = static_libtiff_builddir + 'libtiff' + '.libs' + 'libtiff.a'
80
+
81
+
82
+ # Fetch libfox tarball
83
+ self.libfox_version = ENV['libfox_version'] || '1.6.47'
84
+ self.libfox_source_uri = URI( "http://ftp.fox-toolkit.org/pub/fox-#{libfox_version}.tar.gz" )
85
+ self.libfox_tarball = static_sourcesdir + File.basename( libfox_source_uri.path )
86
+ self.static_libfox_builddir = static_builddir + libfox_tarball.basename(".tar.gz")
87
+ self.libfox_makefile = static_libfox_builddir + 'Makefile'
88
+ self.libfox_a = static_libfox_builddir + 'src' + '.libs' + 'libFOX-1.6.a'
89
+
90
+ # Fetch fxscintilla tarball
91
+ self.libfxscintilla_version = ENV['libfxscintilla_version'] || '2.28.0'
92
+ self.libfxscintilla_source_uri = URI( "http://download.savannah.gnu.org/releases/fxscintilla/fxscintilla-#{libfxscintilla_version}.tar.gz" )
93
+ self.libfxscintilla_tarball = static_sourcesdir + File.basename( libfxscintilla_source_uri.path )
94
+ self.static_libfxscintilla_builddir = static_builddir + libfxscintilla_tarball.basename(".tar.gz")
95
+ self.libfxscintilla_makefile = static_libfxscintilla_builddir + 'Makefile'
96
+ self.libfxscintilla_a = static_libfxscintilla_builddir + 'fox' + '.libs' + 'libfxscintilla.a'
97
+
98
+
99
+
100
+ # clean intermediate files and folders
101
+ CLEAN.include( static_builddir.to_s )
102
+
103
+ #####################################################################
104
+ ### C R O S S - C O M P I L A T I O N - T A S K S
105
+ #####################################################################
106
+
107
+ directory static_sourcesdir.to_s
108
+
109
+ #
110
+ # Static libz build tasks
111
+ #
112
+ directory static_libz_builddir.to_s
113
+
114
+ # libz source file should be stored there
115
+ file libz_tarball => static_sourcesdir do |t|
116
+ # download the source file using wget or curl
117
+ chdir File.dirname(t.name) do
118
+ sh "wget '#{libz_source_uri}' -O #{libz_tarball}"
119
+ end
120
+ end
121
+
122
+ # Extract the libz builds
123
+ file static_libz_builddir => libz_tarball do |t|
124
+ sh 'tar', '-xjf', libz_tarball.to_s, '-C', static_libz_builddir.parent.to_s
125
+ rm libz_makefile
126
+ end
127
+
128
+ self.libz_env = [
129
+ "CC=#{host_platform}-gcc",
130
+ "AR=#{host_platform}-ar",
131
+ "RANLIB=#{host_platform}-ranlib",
128
132
  ]
129
133
 
130
- configure_path = STATIC_LIBZ_BUILDDIR + 'configure'
131
- sh "env #{[LIBZ_ENV, configure_path.to_s, *options].join(" ")}"
132
- end
133
- end
134
-
135
- # generate the makefile in a clean build location
136
- task LIBZ_A => LIBZ_MAKEFILE do |t|
137
- chdir( STATIC_LIBZ_BUILDDIR ) do
138
- sh "make -j#{NUM_CPUS} install 'LDSHAREDLIBC=-lmsvcrt'"
139
- end
140
- end
141
-
142
- #
143
- # Static libpng build tasks
144
- #
145
- directory STATIC_LIBPNG_BUILDDIR.to_s
146
-
147
- # libpng source file should be stored there
148
- file LIBPNG_TARBALL => STATIC_SOURCESDIR do |t|
149
- # download the source file using wget or curl
150
- chdir File.dirname(t.name) do
151
- sh "wget '#{LIBPNG_SOURCE_URI}' -O #{LIBPNG_TARBALL}"
152
- end
153
- end
154
-
155
- # Extract the libpng builds
156
- file STATIC_LIBPNG_BUILDDIR => LIBPNG_TARBALL do |t|
157
- sh 'tar', '-xzf', LIBPNG_TARBALL.to_s, '-C', STATIC_LIBPNG_BUILDDIR.parent.to_s
158
- end
159
-
160
- LIBPNG_ENV = [
161
- "'CPPFLAGS=-I#{STATIC_INSTALLDIR}/include'",
162
- "'LDFLAGS=-L#{STATIC_INSTALLDIR}/lib'",
163
- ]
164
- # generate the makefile in a clean build location
165
- file LIBPNG_MAKEFILE => [STATIC_LIBPNG_BUILDDIR, LIBZ_A] do |t|
166
- chdir( STATIC_LIBPNG_BUILDDIR ) do
167
- options = [
168
- "--target=#{CROSS_PREFIX}",
169
- "--host=#{CROSS_PREFIX}",
170
- "--build=#{RUBY_BUILD}",
171
- "--prefix=#{STATIC_INSTALLDIR}",
172
- "--disable-shared",
134
+ # generate the makefile in a clean build location
135
+ file libz_makefile => [static_libz_builddir] do |t|
136
+ chdir( static_libz_builddir ) do
137
+ options = [
138
+ "--prefix=#{static_installdir}",
139
+ ]
140
+
141
+ configure_path = static_libz_builddir + 'configure'
142
+ sh "env #{[libz_env, configure_path.to_s, *options].join(" ")}"
143
+ end
144
+ end
145
+
146
+ # generate the makefile in a clean build location
147
+ task libz_a => libz_makefile do |t|
148
+ chdir( static_libz_builddir ) do
149
+ sh "make -j#{NUM_CPUS} install 'LDSHAREDLIBC=-lmsvcrt'"
150
+ end
151
+ end
152
+
153
+ #
154
+ # Static libpng build tasks
155
+ #
156
+ directory static_libpng_builddir.to_s
157
+
158
+ # libpng source file should be stored there
159
+ file libpng_tarball => static_sourcesdir do |t|
160
+ # download the source file using wget or curl
161
+ chdir File.dirname(t.name) do
162
+ sh "wget '#{libpng_source_uri}' -O #{libpng_tarball}"
163
+ end
164
+ end
165
+
166
+ # Extract the libpng builds
167
+ file static_libpng_builddir => libpng_tarball do |t|
168
+ sh 'tar', '-xzf', libpng_tarball.to_s, '-C', static_libpng_builddir.parent.to_s
169
+ end
170
+
171
+ self.libpng_env = [
172
+ # Use build directory instead of install, to avoid unnecessary rebuilds of libpng
173
+ "'CPPFLAGS=-I#{static_libz_builddir}'",
174
+ "'LDFLAGS=-L#{static_libz_builddir}'",
173
175
  ]
174
-
175
- configure_path = STATIC_LIBPNG_BUILDDIR + 'configure'
176
- sh "env #{[LIBPNG_ENV, configure_path.to_s, *options].join(" ")}"
177
- end
178
- end
179
-
180
- # generate the makefile in a clean build location
181
- task LIBPNG_A => [LIBPNG_MAKEFILE, LIBZ_A] do |t|
182
- chdir( STATIC_LIBPNG_BUILDDIR ) do
183
- sh "make -j#{NUM_CPUS} install"
184
- end
185
- end
186
-
187
- #
188
- # Static libjpeg build tasks
189
- #
190
- directory STATIC_LIBJPEG_BUILDDIR.to_s
191
-
192
- # libjpeg source file should be stored there
193
- file LIBJPEG_TARBALL => STATIC_SOURCESDIR do |t|
194
- # download the source file using wget or curl
195
- chdir File.dirname(t.name) do
196
- sh "wget '#{LIBJPEG_SOURCE_URI}' -O #{LIBJPEG_TARBALL}"
197
- end
198
- end
199
-
200
- # Extract the libjpeg builds
201
- file STATIC_LIBJPEG_BUILDDIR => LIBJPEG_TARBALL do |t|
202
- sh 'tar', '-xzf', LIBJPEG_TARBALL.to_s, '-C', STATIC_LIBJPEG_BUILDDIR.parent.to_s
203
- end
204
-
205
- # generate the makefile in a clean build location
206
- file LIBJPEG_MAKEFILE => STATIC_LIBJPEG_BUILDDIR do |t|
207
- chdir( STATIC_LIBJPEG_BUILDDIR ) do
208
- options = [
209
- "--target=#{CROSS_PREFIX}",
210
- "--host=#{CROSS_PREFIX}",
211
- "--build=#{RUBY_BUILD}",
212
- "--prefix=#{STATIC_INSTALLDIR}",
213
- "--disable-shared",
176
+ # generate the makefile in a clean build location
177
+ file libpng_makefile => [static_libpng_builddir, libz_a] do |t|
178
+ chdir( static_libpng_builddir ) do
179
+ options = [
180
+ "--target=#{host_platform}",
181
+ "--host=#{host_platform}",
182
+ "--build=#{ruby_build}",
183
+ "--prefix=#{static_installdir}",
184
+ "--disable-shared",
185
+ ]
186
+
187
+ configure_path = static_libpng_builddir + 'configure'
188
+ sh "env #{[libpng_env, configure_path.to_s, *options].join(" ")}"
189
+ end
190
+ end
191
+
192
+ # generate the makefile in a clean build location
193
+ task libpng_a => [libpng_makefile, libz_a] do |t|
194
+ chdir( static_libpng_builddir ) do
195
+ sh "make -j#{NUM_CPUS} install"
196
+ end
197
+ end
198
+
199
+ #
200
+ # Static libjpeg build tasks
201
+ #
202
+ directory static_libjpeg_builddir.to_s
203
+
204
+ # libjpeg source file should be stored there
205
+ file libjpeg_tarball => static_sourcesdir do |t|
206
+ # download the source file using wget or curl
207
+ chdir File.dirname(t.name) do
208
+ sh "wget '#{libjpeg_source_uri}' -O #{libjpeg_tarball}"
209
+ end
210
+ end
211
+
212
+ # Extract the libjpeg builds
213
+ file static_libjpeg_builddir => libjpeg_tarball do |t|
214
+ sh 'tar', '-xzf', libjpeg_tarball.to_s, '-C', static_libjpeg_builddir.parent.to_s
215
+ end
216
+
217
+ # generate the makefile in a clean build location
218
+ file libjpeg_makefile => static_libjpeg_builddir do |t|
219
+ chdir( static_libjpeg_builddir ) do
220
+ options = [
221
+ "--target=#{host_platform}",
222
+ "--host=#{host_platform}",
223
+ "--build=#{ruby_build}",
224
+ "--prefix=#{static_installdir}",
225
+ "--disable-shared",
226
+ ]
227
+
228
+ configure_path = static_libjpeg_builddir + 'configure'
229
+ cmd = [ configure_path.to_s, *options ]
230
+ sh *cmd
231
+ end
232
+ end
233
+
234
+ # build libjpeg.a
235
+ task libjpeg_a => [libjpeg_makefile] do |t|
236
+ chdir( static_libjpeg_builddir ) do
237
+ sh "make -j#{NUM_CPUS} install"
238
+ end
239
+ end
240
+
241
+ #
242
+ # Static libtiff build tasks
243
+ #
244
+ directory static_libtiff_builddir.to_s
245
+
246
+ # libtiff source file should be stored there
247
+ file libtiff_tarball => static_sourcesdir do |t|
248
+ # download the source file using wget or curl
249
+ chdir File.dirname(t.name) do
250
+ sh "wget '#{libtiff_source_uri}' -O #{libtiff_tarball}"
251
+ end
252
+ end
253
+
254
+ # Extract the libtiff builds
255
+ file static_libtiff_builddir => libtiff_tarball do |t|
256
+ sh 'tar', '-xzf', libtiff_tarball.to_s, '-C', static_libtiff_builddir.parent.to_s
257
+ end
258
+
259
+ self.libtiff_env = [
260
+ "'CPPFLAGS=-I#{static_installdir}/include'",
261
+ "'LDFLAGS=-L#{static_installdir}/lib'",
214
262
  ]
215
263
 
216
- configure_path = STATIC_LIBJPEG_BUILDDIR + 'configure'
217
- cmd = [ configure_path.to_s, *options ]
218
- sh *cmd
219
- end
220
- end
221
-
222
- # build libjpeg.a
223
- task LIBJPEG_A => [LIBJPEG_MAKEFILE] do |t|
224
- chdir( STATIC_LIBJPEG_BUILDDIR ) do
225
- sh "make -j#{NUM_CPUS} install"
226
- end
227
- end
228
-
229
- #
230
- # Static libtiff build tasks
231
- #
232
- directory STATIC_LIBTIFF_BUILDDIR.to_s
233
-
234
- # libtiff source file should be stored there
235
- file LIBTIFF_TARBALL => STATIC_SOURCESDIR do |t|
236
- # download the source file using wget or curl
237
- chdir File.dirname(t.name) do
238
- sh "wget '#{LIBTIFF_SOURCE_URI}' -O #{LIBTIFF_TARBALL}"
239
- end
240
- end
241
-
242
- # Extract the libtiff builds
243
- file STATIC_LIBTIFF_BUILDDIR => LIBTIFF_TARBALL do |t|
244
- sh 'tar', '-xzf', LIBTIFF_TARBALL.to_s, '-C', STATIC_LIBTIFF_BUILDDIR.parent.to_s
245
- end
246
-
247
- LIBTIFF_ENV = [
248
- "'CPPFLAGS=-I#{STATIC_INSTALLDIR}/include'",
249
- "'LDFLAGS=-L#{STATIC_INSTALLDIR}/lib'",
250
- ]
251
-
252
- # generate the makefile in a clean build location
253
- file LIBTIFF_MAKEFILE => [STATIC_LIBTIFF_BUILDDIR, LIBJPEG_A, LIBZ_A] do |t|
254
- chdir( STATIC_LIBTIFF_BUILDDIR ) do
255
- options = [
256
- "--target=#{CROSS_PREFIX}",
257
- "--host=#{CROSS_PREFIX}",
258
- "--build=#{RUBY_BUILD}",
259
- "--prefix=#{STATIC_INSTALLDIR}",
260
- "--disable-shared",
261
- "--with-zlib-include-dir=#{STATIC_LIBZ_BUILDDIR}",
262
- "--with-zlib-lib-dir=#{File.dirname(LIBZ_A)}",
263
- "--with-jpeg-include-dir=#{STATIC_LIBJPEG_BUILDDIR}",
264
- "--with-jpeg-lib-dir=#{File.dirname(LIBJPEG_A)}",
264
+ # generate the makefile in a clean build location
265
+ file libtiff_makefile => [static_libtiff_builddir, libjpeg_a, libz_a] do |t|
266
+ chdir( static_libtiff_builddir ) do
267
+ options = [
268
+ "--target=#{host_platform}",
269
+ "--host=#{host_platform}",
270
+ "--build=#{ruby_build}",
271
+ "--prefix=#{static_installdir}",
272
+ "--disable-shared",
273
+ "--with-zlib-include-dir=#{static_libz_builddir}",
274
+ "--with-zlib-lib-dir=#{File.dirname(libz_a)}",
275
+ "--with-jpeg-include-dir=#{static_libjpeg_builddir}",
276
+ "--with-jpeg-lib-dir=#{File.dirname(libjpeg_a)}",
277
+ ]
278
+
279
+ configure_path = static_libtiff_builddir + 'configure'
280
+ sh "env #{[libtiff_env, configure_path.to_s, *options].join(" ")}"
281
+ end
282
+ end
283
+
284
+ # build libtiff.a
285
+ task libtiff_a => [libtiff_makefile] do |t|
286
+ chdir( static_libtiff_builddir ) do
287
+ sh "make -j#{NUM_CPUS} install"
288
+ end
289
+ end
290
+
291
+
292
+ #
293
+ # Static libfox build tasks
294
+ #
295
+ directory static_libfox_builddir.to_s
296
+
297
+ # libfox source file should be stored there
298
+ file libfox_tarball => static_sourcesdir do |t|
299
+ # download the source file using wget or curl
300
+ chdir File.dirname(t.name) do
301
+ sh "wget '#{libfox_source_uri}' -O #{libfox_tarball}"
302
+ end
303
+ end
304
+
305
+ # Extract the libfox builds
306
+ file static_libfox_builddir => libfox_tarball do |t|
307
+ sh 'tar', '-xzf', libfox_tarball.to_s, '-C', static_libfox_builddir.parent.to_s
308
+ end
309
+
310
+ self.libfox_env = [
311
+ "'CPPFLAGS=-I#{static_installdir}/include'",
312
+ "'LDFLAGS=-L#{static_installdir}/lib'",
265
313
  ]
266
314
 
267
- configure_path = STATIC_LIBTIFF_BUILDDIR + 'configure'
268
- sh "env #{[LIBTIFF_ENV, configure_path.to_s, *options].join(" ")}"
269
- end
270
- end
271
-
272
- # build libtiff.a
273
- task LIBTIFF_A => [LIBTIFF_MAKEFILE] do |t|
274
- chdir( STATIC_LIBTIFF_BUILDDIR ) do
275
- sh "make -j#{NUM_CPUS} install"
276
- end
277
- end
278
-
279
-
280
- #
281
- # Static libfox build tasks
282
- #
283
- directory STATIC_LIBFOX_BUILDDIR.to_s
284
-
285
- # libfox source file should be stored there
286
- file LIBFOX_TARBALL => STATIC_SOURCESDIR do |t|
287
- # download the source file using wget or curl
288
- chdir File.dirname(t.name) do
289
- sh "wget '#{LIBFOX_SOURCE_URI}' -O #{LIBFOX_TARBALL}"
290
- end
291
- end
292
-
293
- # Extract the libfox builds
294
- file STATIC_LIBFOX_BUILDDIR => LIBFOX_TARBALL do |t|
295
- sh 'tar', '-xzf', LIBFOX_TARBALL.to_s, '-C', STATIC_LIBFOX_BUILDDIR.parent.to_s
296
- end
297
-
298
- LIBFOX_ENV = [
299
- "'CPPFLAGS=-I#{STATIC_INSTALLDIR}/include'",
300
- "'LDFLAGS=-L#{STATIC_INSTALLDIR}/lib'",
301
- ]
302
-
303
- # generate the makefile in a clean build location
304
- file LIBFOX_MAKEFILE => [STATIC_LIBFOX_BUILDDIR, LIBJPEG_A, LIBZ_A] do |t|
305
- chdir( STATIC_LIBFOX_BUILDDIR ) do
306
- options = [
307
- "--target=#{CROSS_PREFIX}",
308
- "--host=#{CROSS_PREFIX}",
309
- "--build=#{RUBY_BUILD}",
310
- "--prefix=#{STATIC_INSTALLDIR}",
311
- "--disable-shared",
312
- "--without-xft",
313
- "--without-x",
315
+ # generate the makefile in a clean build location
316
+ file libfox_makefile => [static_libfox_builddir, libjpeg_a, libz_a] do |t|
317
+ chdir( static_libfox_builddir ) do
318
+ options = [
319
+ "--target=#{host_platform}",
320
+ "--host=#{host_platform}",
321
+ "--build=#{ruby_build}",
322
+ "--prefix=#{static_installdir}",
323
+ "--disable-shared",
324
+ "--without-xft",
325
+ "--without-x",
326
+ ]
327
+
328
+ configure_path = static_libfox_builddir + 'configure'
329
+ sh "env #{[libfox_env, configure_path.to_s, *options].join(" ")}"
330
+ end
331
+ end
332
+
333
+ # build libfox.a
334
+ task libfox_a => [libfox_makefile] do |t|
335
+ chdir( static_libfox_builddir ) do
336
+ sh "make -j#{NUM_CPUS} #{fox_env.join(" ")} install"
337
+ end
338
+ end
339
+
340
+
341
+ #
342
+ # Static libfxscintilla build tasks
343
+ #
344
+ directory static_libfxscintilla_builddir.to_s
345
+
346
+ # libfxscintilla source file should be stored there
347
+ file libfxscintilla_tarball => static_sourcesdir do |t|
348
+ # download the source file using wget or curl
349
+ chdir File.dirname(t.name) do
350
+ sh "wget '#{libfxscintilla_source_uri}' -O #{libfxscintilla_tarball}"
351
+ end
352
+ end
353
+
354
+ # Extract the libfxscintilla builds
355
+ file static_libfxscintilla_builddir => libfxscintilla_tarball do |t|
356
+ sh 'tar', '-xzf', libfxscintilla_tarball.to_s, '-C', static_libfxscintilla_builddir.parent.to_s
357
+ end
358
+
359
+ self.fox_env = [
360
+ "'CFLAGS=-I#{static_installdir}/include'",
361
+ "'CPPFLAGS=-I#{static_installdir}/include'",
362
+ "'LDFLAGS=-L#{static_installdir}/lib'",
363
+ "'FOX_CFLAGS=-I#{static_installdir}/include/fox-1.6 -DFOX_1_6'",
364
+ "'FOX_LIBS=-L#{static_installdir}/lib -lFOX-1.6'",
314
365
  ]
315
366
 
316
- configure_path = STATIC_LIBFOX_BUILDDIR + 'configure'
317
- sh "env #{[LIBFOX_ENV, configure_path.to_s, *options].join(" ")}"
367
+ # generate the makefile in a clean build location
368
+ file libfxscintilla_makefile => [static_libfxscintilla_builddir, libfox_a] do |t|
369
+ chdir( static_libfxscintilla_builddir ) do
370
+ options = [
371
+ "--target=#{host_platform}",
372
+ "--host=#{host_platform}",
373
+ "--build=#{ruby_build}",
374
+ "--prefix=#{static_installdir}",
375
+ "--disable-shared",
376
+ ]
377
+
378
+ configure_path = static_libfxscintilla_builddir + 'configure'
379
+ sh "env #{[fox_env, configure_path.to_s, *options].join(" ")}"
380
+ end
381
+ end
382
+
383
+ # build libfxscintilla.a
384
+ task libfxscintilla_a => [libfxscintilla_makefile] do |t|
385
+ chdir( static_libfxscintilla_builddir ) do
386
+ sh "make -j#{NUM_CPUS} #{fox_env.join(" ")} install"
387
+ end
388
+ end
389
+
390
+ desc "compile static libz libraries"
391
+ task :static_libs => [ libz_a, libpng_a, libjpeg_a, libtiff_a, libfox_a, libfxscintilla_a ]
318
392
  end
319
393
  end
320
394
 
321
- # build libfox.a
322
- task LIBFOX_A => [LIBFOX_MAKEFILE] do |t|
323
- chdir( STATIC_LIBFOX_BUILDDIR ) do
324
- sh "make -j#{NUM_CPUS} #{FOX_ENV.join(" ")} install"
325
- end
326
- end
327
-
328
-
329
- #
330
- # Static libfxscintilla build tasks
331
- #
332
- directory STATIC_LIBFXSCINTILLA_BUILDDIR.to_s
333
-
334
- # libfxscintilla source file should be stored there
335
- file LIBFXSCINTILLA_TARBALL => STATIC_SOURCESDIR do |t|
336
- # download the source file using wget or curl
337
- chdir File.dirname(t.name) do
338
- sh "wget '#{LIBFXSCINTILLA_SOURCE_URI}' -O #{LIBFXSCINTILLA_TARBALL}"
339
- end
340
- end
341
-
342
- # Extract the libfxscintilla builds
343
- file STATIC_LIBFXSCINTILLA_BUILDDIR => LIBFXSCINTILLA_TARBALL do |t|
344
- sh 'tar', '-xzf', LIBFXSCINTILLA_TARBALL.to_s, '-C', STATIC_LIBFXSCINTILLA_BUILDDIR.parent.to_s
345
- end
346
-
347
- FOX_ENV = [
348
- "'CFLAGS=-I#{STATIC_INSTALLDIR}/include'",
349
- "'CPPFLAGS=-I#{STATIC_INSTALLDIR}/include'",
350
- "'LDFLAGS=-L#{STATIC_INSTALLDIR}/lib'",
351
- "'FOX_CFLAGS=-I#{STATIC_INSTALLDIR}/include/fox-1.6 -DFOX_1_6'",
352
- "'FOX_LIBS=-L#{STATIC_INSTALLDIR}/lib -lFOX-1.6'",
353
- ]
354
-
355
- # generate the makefile in a clean build location
356
- file LIBFXSCINTILLA_MAKEFILE => [STATIC_LIBFXSCINTILLA_BUILDDIR, LIBFOX_A] do |t|
357
- chdir( STATIC_LIBFXSCINTILLA_BUILDDIR ) do
358
- options = [
359
- "--target=#{CROSS_PREFIX}",
360
- "--host=#{CROSS_PREFIX}",
361
- "--build=#{RUBY_BUILD}",
362
- "--prefix=#{STATIC_INSTALLDIR}",
363
- "--disable-shared",
364
- ]
365
-
366
- configure_path = STATIC_LIBFXSCINTILLA_BUILDDIR + 'configure'
367
- sh "env #{[FOX_ENV, configure_path.to_s, *options].join(" ")}"
368
- end
369
- end
370
-
371
- # build libfxscintilla.a
372
- task LIBFXSCINTILLA_A => [LIBFXSCINTILLA_MAKEFILE] do |t|
373
- chdir( STATIC_LIBFXSCINTILLA_BUILDDIR ) do
374
- sh "make -j#{NUM_CPUS} #{FOX_ENV.join(" ")} install"
395
+ if File.exist?(File.expand_path("~/.rake-compiler/config.yml"))
396
+ CrossLibraries = [
397
+ 'i386-mingw32',
398
+ 'x64-mingw32',
399
+ ].map do |platform|
400
+ CrossLibrary.new platform
375
401
  end
402
+ else
403
+ $stderr.puts "Cross-compilation disabled -- rake-compiler not properly installed"
404
+ CrossLibraries = []
376
405
  end
377
406
 
378
407
 
379
-
380
- desc "compile static libz libraries"
381
- task :static_libs => [ LIBZ_A, LIBPNG_A, LIBJPEG_A, LIBTIFF_A, LIBFOX_A, LIBFXSCINTILLA_A ]
382
-
383
408
  desc 'cross compile required libs for win32'
384
409
  task :cross => [ :mingw32, :static_libs ]
385
410
 
@@ -390,7 +415,6 @@ task :mingw32 do
390
415
  warn "Please refer to your distribution/package manager documentation about installation."
391
416
  fail
392
417
  end
393
- ENV['CROSS_PREFIX'] = Rake::ExtensionCompiler.mingw_host
394
418
  end
395
419
 
396
420
 
@@ -26,7 +26,7 @@
26
26
 
27
27
  #include "FXRbCommon.h"
28
28
 
29
- #ifndef RUBY_1_9
29
+ #if defined(RUBY_1_8)
30
30
  extern "C" {
31
31
  #include "rubysig.h" /* For CHECK_INTS */
32
32
  }
@@ -97,14 +97,14 @@ long FXRbApp::onChoreThreads(FXObject*,FXSelector,void*){
97
97
  wait.tv_usec=100*sleepTime;
98
98
 
99
99
  // Confirm that this thread can be interrupted, then go to sleep
100
- #ifndef RUBY_1_9
100
+ #if defined(RUBY_1_8)
101
101
  CHECK_INTS;
102
102
  if(!rb_thread_critical)
103
103
  rb_thread_wait_for(wait);
104
104
  #else
105
105
  // if(!rb_thread_critical) rb_thread_wait_for(wait);
106
106
  rb_thread_wait_for(wait);
107
- #endif /* RUBY_1_9 */
107
+ #endif /* RUBY_1_8 */
108
108
 
109
109
  // Re-register this chore for next time
110
110
  addChore(this,ID_CHORE_THREADS);
@@ -39,19 +39,19 @@
39
39
  #include <signal.h> // for definitions of SIGINT, etc.
40
40
  #endif
41
41
 
42
- #ifdef RUBY_1_9
43
-
44
- #include "ruby/io.h"
45
- #include "ruby/st.h"
46
-
47
- #else
42
+ #if defined(RUBY_1_8)
48
43
 
49
44
  extern "C" {
50
45
  #include "st.h"
51
46
  #include "rubyio.h" // for GetOpenFile(), etc.
52
47
  }
53
48
 
54
- #endif /* RUBY_1_9 */
49
+ #else
50
+
51
+ #include "ruby/io.h"
52
+ #include "ruby/st.h"
53
+
54
+ #endif /* RUBY_1_8 */
55
55
 
56
56
 
57
57
  // Opaque type declaration from SWIG runtime
@@ -204,17 +204,17 @@ FXInputHandle FXRbGetWriteFileHandle(VALUE obj) {
204
204
  VALUE vwrite = rb_intern("@write");
205
205
  if(rb_ivar_defined(obj, vwrite)) obj = rb_ivar_get(obj, vwrite);
206
206
  fd = FIX2INT(rb_funcall(obj, rb_intern("fileno"), 0));
207
- #elif defined(RUBY_1_9)
207
+ #elif defined(RUBY_1_8)
208
+ OpenFile *fptr;
209
+ GetOpenFile(obj, fptr);
210
+ FILE *fpw=GetWriteFile(fptr);
211
+ fd = fileno(fpw);
212
+ #else
208
213
  rb_io_t *fptr;
209
214
  GetOpenFile(obj, fptr);
210
215
  VALUE wrio = fptr->tied_io_for_writing;
211
216
  if(wrio) obj = wrio;
212
217
  fd = FIX2INT(rb_funcall(obj, rb_intern("fileno"), 0));
213
- #else
214
- OpenFile *fptr;
215
- GetOpenFile(obj, fptr);
216
- FILE *fpw=GetWriteFile(fptr);
217
- fd = fileno(fpw);
218
218
  #endif
219
219
  #ifdef WIN32
220
220
  #ifdef __CYGWIN__
@@ -552,7 +552,7 @@ static VALUE FXRbConvertMessageData(FXObject* sender,FXObject* recv,FXSelector s
552
552
  return to_ruby(reinterpret_cast<FXEvent*>(ptr));
553
553
  }
554
554
  else if(type==SEL_SIGNAL){
555
- return to_ruby(static_cast<int>(reinterpret_cast<long>(ptr)));
555
+ return to_ruby(static_cast<int>(reinterpret_cast<FXuval>(ptr)));
556
556
  }
557
557
  else if(type==SEL_IO_READ ||
558
558
  type==SEL_IO_WRITE ||
@@ -600,7 +600,7 @@ static VALUE FXRbConvertMessageData(FXObject* sender,FXObject* recv,FXSelector s
600
600
  }
601
601
  }
602
602
  else if(sender->isMemberOf(FXMETACLASS(FXColorDialog))){
603
- if(type==SEL_CHANGED || type==SEL_COMMAND) return to_ruby(static_cast<FXColor>(reinterpret_cast<unsigned long>(ptr)));
603
+ if(type==SEL_CHANGED || type==SEL_COMMAND) return to_ruby(static_cast<FXColor>(reinterpret_cast<FXuval>(ptr)));
604
604
  }
605
605
  else if(sender->isMemberOf(FXMETACLASS(FXColorRing))){
606
606
  if(type==SEL_CHANGED || type==SEL_COMMAND){
@@ -609,7 +609,7 @@ static VALUE FXRbConvertMessageData(FXObject* sender,FXObject* recv,FXSelector s
609
609
  }
610
610
  }
611
611
  else if(sender->isMemberOf(FXMETACLASS(FXColorSelector))){
612
- if(type==SEL_CHANGED || type==SEL_COMMAND) return to_ruby(static_cast<FXColor>(reinterpret_cast<unsigned long>(ptr)));
612
+ if(type==SEL_CHANGED || type==SEL_COMMAND) return to_ruby(static_cast<FXColor>(reinterpret_cast<FXuval>(ptr)));
613
613
  }
614
614
  else if(sender->isMemberOf(FXMETACLASS(FXColorWell))){
615
615
  if(type==SEL_CHANGED ||
@@ -617,7 +617,7 @@ static VALUE FXRbConvertMessageData(FXObject* sender,FXObject* recv,FXSelector s
617
617
  type==SEL_CLICKED ||
618
618
  type==SEL_DOUBLECLICKED ||
619
619
  type==SEL_TRIPLECLICKED) {
620
- VALUE v=to_ruby(static_cast<FXColor>(reinterpret_cast<unsigned long>(ptr)));
620
+ VALUE v=to_ruby(static_cast<FXColor>(reinterpret_cast<FXuval>(ptr)));
621
621
  return v;
622
622
  }
623
623
  }
@@ -819,7 +819,7 @@ static VALUE FXRbConvertMessageData(FXObject* sender,FXObject* recv,FXSelector s
819
819
  }
820
820
  else if(sender->isMemberOf(FXMETACLASS(FXSpinner))){
821
821
  if(type==SEL_CHANGED || type==SEL_COMMAND)
822
- return to_ruby(static_cast<FXint>(reinterpret_cast<long>(ptr)));
822
+ return to_ruby(static_cast<FXint>(reinterpret_cast<FXuval>(ptr)));
823
823
  }
824
824
  else if(sender->isMemberOf(FXMETACLASS(FXSplitter))){
825
825
  if(type==SEL_CHANGED || type==SEL_COMMAND)
@@ -79,7 +79,7 @@ def do_rake_compiler_setup
79
79
  have_library( 'opengl32' ) && append_library( $libs, 'opengl32' )
80
80
  have_library( 'winspool', 'EnumPrintersA') && append_library( $libs, 'winspool' )
81
81
 
82
- CONFIG['CC'] += "\nCXX=#{ENV['CROSS_PREFIX']}-g++" # Hack CXX into Makefile for cross compilation
82
+ CONFIG['CC'] += "\nCXX=#{RbConfig::CONFIG["host"]}-g++" # Hack CXX into Makefile for cross compilation
83
83
  CONFIG['LDSHARED'].gsub!('gcc', 'g++') # ensure C++ linker is used, so that libstdc++ is linked static
84
84
  $LDFLAGS += " -s -static-libgcc -static-libstdc++" # mingw-w64 v4.7 defaults to dynamic linking
85
85
  elsif RUBY_PLATFORM =~ /mingw/
@@ -145,8 +145,9 @@ end
145
145
  # Platform-specific modifications
146
146
  do_rake_compiler_setup
147
147
 
148
- # Check for Ruby 1.9
148
+ $CFLAGS += " -DRUBY_1_8" if RUBY_VERSION =~ /1\.8\./
149
149
  $CFLAGS += " -DRUBY_1_9" if RUBY_VERSION =~ /1\.9\./
150
+ $CFLAGS += " -DRUBY_2_0" if RUBY_VERSION =~ /2\.0\./
150
151
 
151
152
  # Last step: build the makefile
152
153
  create_makefile("fox16_c")
@@ -41,6 +41,13 @@
41
41
  #define RSTRING_PTR(s) RSTRING((s))->ptr
42
42
  #endif
43
43
 
44
+ #ifndef NUM2SIZET
45
+ #define NUM2SIZET(s) NUM2ULONG(s)
46
+ #endif
47
+ #ifndef SIZET2NUM
48
+ #define SIZET2NUM(s) ULONG2NUM(s)
49
+ #endif
50
+
44
51
  // Opaque type declaration for SWIG runtime support
45
52
  struct swig_type_info;
46
53
 
@@ -322,7 +329,7 @@ inline VALUE fxid_to_int(FXID id){
322
329
  #ifndef WIN32
323
330
  return UINT2NUM(static_cast<unsigned int>(id));
324
331
  #else
325
- return ULONG2NUM(reinterpret_cast<unsigned long>(id));
332
+ return SIZET2NUM(reinterpret_cast<size_t>(id));
326
333
  #endif
327
334
  }
328
335
 
@@ -334,7 +341,7 @@ inline FXID int_to_fxid(VALUE value){
334
341
  #ifndef WIN32
335
342
  return static_cast<FXID>(NUM2UINT(value));
336
343
  #else
337
- return reinterpret_cast<FXID>(NUM2ULONG(value));
344
+ return reinterpret_cast<FXID>(NUM2SIZET(value));
338
345
  #endif
339
346
  }
340
347
 
@@ -1,5 +1,5 @@
1
1
  module Fox
2
2
  def Fox.fxrubyversion
3
- "1.6.26"
3
+ "1.6.27"
4
4
  end
5
5
  end
@@ -197,8 +197,8 @@ public:
197
197
 
198
198
  %extend {
199
199
  /// Return pointer to display
200
- unsigned long getDisplay() const {
201
- return reinterpret_cast<unsigned long>(self->getDisplay());
200
+ FXuval getDisplay() const {
201
+ return reinterpret_cast<FXuval>(self->getDisplay());
202
202
  }
203
203
  }
204
204
 
@@ -53,13 +53,13 @@ public:
53
53
 
54
54
  %extend {
55
55
  /// Return current context, if any
56
- static unsigned long getCurrentContext(){
57
- return reinterpret_cast<unsigned long>(FXGLCanvas::getCurrentContext());
56
+ static FXuval getCurrentContext(){
57
+ return reinterpret_cast<FXuval>(FXGLCanvas::getCurrentContext());
58
58
  }
59
59
 
60
60
  /// Get GL context handle
61
- unsigned long getContext() const {
62
- return reinterpret_cast<unsigned long>(self->getContext());
61
+ FXuval getContext() const {
62
+ return reinterpret_cast<FXuval>(self->getContext());
63
63
  }
64
64
  }
65
65
 
@@ -139,11 +139,12 @@ public:
139
139
  // Convert wParam argument
140
140
  uptr_t wp;
141
141
  switch(TYPE(wParam)){
142
+ case T_BIGNUM:
142
143
  case T_FIXNUM:
143
- wp=static_cast<uptr_t>(NUM2UINT(wParam));
144
+ wp=static_cast<uptr_t>(NUM2SIZET(wParam));
144
145
  break;
145
146
  case T_STRING:
146
- wp=static_cast<uptr_t>(reinterpret_cast<long>(RSTRING_PTR(wParam)));
147
+ wp=static_cast<uptr_t>(reinterpret_cast<FXuval>(RSTRING_PTR(wParam)));
147
148
  break;
148
149
  case T_TRUE:
149
150
  case T_FALSE:
@@ -157,11 +158,12 @@ public:
157
158
  // Convert lParam argument
158
159
  sptr_t lp;
159
160
  switch(TYPE(lParam)){
161
+ case T_BIGNUM:
160
162
  case T_FIXNUM:
161
- lp=static_cast<sptr_t>(NUM2UINT(lParam));
163
+ lp=static_cast<sptr_t>(NUM2SIZET(lParam));
162
164
  break;
163
165
  case T_STRING:
164
- lp=static_cast<sptr_t>(reinterpret_cast<long>(RSTRING_PTR(lParam)));
166
+ lp=static_cast<sptr_t>(reinterpret_cast<FXival>(RSTRING_PTR(lParam)));
165
167
  break;
166
168
  case T_TRUE:
167
169
  case T_FALSE:
metadata CHANGED
@@ -1,22 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fxruby
3
3
  version: !ruby/object:Gem::Version
4
- hash: 59
4
+ hash: 57
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 6
9
- - 26
10
- version: 1.6.26
9
+ - 27
10
+ version: 1.6.27
11
11
  platform: ruby
12
12
  authors:
13
13
  - Lyle Johnson
14
14
  - Lars Kanis
15
15
  autorequire:
16
16
  bindir: bin
17
- cert_chain: []
17
+ cert_chain:
18
+ - |
19
+ -----BEGIN CERTIFICATE-----
20
+ MIIDPDCCAiSgAwIBAgIBADANBgkqhkiG9w0BAQUFADBEMQ0wCwYDVQQDDARsYXJz
21
+ MR8wHQYKCZImiZPyLGQBGRYPZ3JlaXotcmVpbnNkb3JmMRIwEAYKCZImiZPyLGQB
22
+ GRYCZGUwHhcNMTMwMzExMjAyMjIyWhcNMTQwMzExMjAyMjIyWjBEMQ0wCwYDVQQD
23
+ DARsYXJzMR8wHQYKCZImiZPyLGQBGRYPZ3JlaXotcmVpbnNkb3JmMRIwEAYKCZIm
24
+ iZPyLGQBGRYCZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZb4Uv
25
+ RFJfRu/VEWiy3psh2jinETjiuBrL0NeRFGf8H7iU9+gx/DI/FFhfHGLrDeIskrJx
26
+ YIWDMmEjVO10UUdj7wu4ZhmU++0Cd7Kq9/TyP/shIP3IjqHjVLCnJ3P6f1cl5rxZ
27
+ gqo+d3BAoDrmPk0rtaf6QopwUw9RBiF8V4HqvpiY+ruJotP5UQDP4/lVOKvA8PI9
28
+ P0GmVbFBrbc7Zt5h78N3UyOK0u+nvOC23BvyHXzCtcFsXCoEkt+Wwh0RFqVZdnjM
29
+ LMO2vULHKKHDdX54K/sbVCj9pN9h1aotNzrEyo55zxn0G9PHg/G3P8nMvAXPkUTe
30
+ brhXrfCwWRvOXA4TAgMBAAGjOTA3MAsGA1UdDwQEAwIEsDAJBgNVHRMEAjAAMB0G
31
+ A1UdDgQWBBRAHK81igrXodaDj8a8/BIKsaZrETANBgkqhkiG9w0BAQUFAAOCAQEA
32
+ Iswhcol3ytXthaUH3k5LopZ09viZrZHzAw0QleI3Opl/9QEGJ2BPV9+93iC0OrNL
33
+ hmnxig6vKK1EeJ5PHXJ8hOI3nTZBrOmQcEXNBqyToP1FHMWZqwZ8wiBPXtiCqDBR
34
+ ePQ25J9xFNzQ1ItgzNSpx5cs67QNKrx5woocoBHD6kStFbshZPJx4axl3GbUFQd5
35
+ H//3YdPQOH3jaVeUXhS+pz/gfbx8fhFAtsQ+855A3HO7g2ZRIg/atAp/0MFyn5s5
36
+ 0rq+VHOIPyvxF5khT0mYAcNmZTC8z1yPsqdgwfYNDjsSWwiIRSPUSmJRvfjM8hsW
37
+ mMFp4kPUHbWOqCp2mz9gCA==
38
+ -----END CERTIFICATE-----
18
39
 
19
- date: 2013-02-16 00:00:00 Z
40
+ date: 2013-04-05 00:00:00 Z
20
41
  dependencies:
21
42
  - !ruby/object:Gem::Dependency
22
43
  name: rdoc
@@ -973,24 +994,24 @@ files:
973
994
  - test/stress2.rb
974
995
  - test/stress3.rb
975
996
  - test/testcase.rb
976
- - ext/fox16_c/scintilla_wrap.cpp
977
- - ext/fox16_c/dc_wrap.cpp
978
- - ext/fox16_c/fx3d_wrap.cpp
979
- - ext/fox16_c/menu_wrap.cpp
980
- - ext/fox16_c/layout_wrap.cpp
981
- - ext/fox16_c/label_wrap.cpp
982
997
  - ext/fox16_c/ui_wrap.cpp
983
- - ext/fox16_c/frames_wrap.cpp
984
- - ext/fox16_c/treelist_wrap.cpp
985
998
  - ext/fox16_c/mdi_wrap.cpp
986
- - ext/fox16_c/list_wrap.cpp
987
- - ext/fox16_c/text_wrap.cpp
988
- - ext/fox16_c/icons_wrap.cpp
989
999
  - ext/fox16_c/iconlist_wrap.cpp
990
- - ext/fox16_c/table_wrap.cpp
1000
+ - ext/fox16_c/frames_wrap.cpp
991
1001
  - ext/fox16_c/dialogs_wrap.cpp
992
- - ext/fox16_c/image_wrap.cpp
1002
+ - ext/fox16_c/label_wrap.cpp
1003
+ - ext/fox16_c/icons_wrap.cpp
1004
+ - ext/fox16_c/treelist_wrap.cpp
993
1005
  - ext/fox16_c/core_wrap.cpp
1006
+ - ext/fox16_c/text_wrap.cpp
1007
+ - ext/fox16_c/menu_wrap.cpp
1008
+ - ext/fox16_c/list_wrap.cpp
1009
+ - ext/fox16_c/image_wrap.cpp
1010
+ - ext/fox16_c/scintilla_wrap.cpp
1011
+ - ext/fox16_c/fx3d_wrap.cpp
1012
+ - ext/fox16_c/table_wrap.cpp
1013
+ - ext/fox16_c/layout_wrap.cpp
1014
+ - ext/fox16_c/dc_wrap.cpp
994
1015
  - ext/fox16_c/include/inlinestubs.h
995
1016
  - ext/fox16_c/librb.c
996
1017
  - doap.rdf
@@ -0,0 +1,2 @@
1
+ =|���c�/�_�s�<'�'��Ke�+/����K������n�Of��\!׶���9g�$��w�0ۨׄ5����=I���yX)3�`I]�V��V�� ��,KOQI̢!���pu�Mc���4y�"�{
2
+ mˌ���d?��R��j�����v�����(XC٨q������*��n�����C�M�D �V|am?��i�����ϱT��ݰ�DӠ��� ���n�QK��ڑ��tnl���B'�3C��B��