Bugfixes:
Fix specs to run (and pass) on Ruby 2.1 and beyond. Pull #94 [hggh]
Bugfixes:
Pre-load resolver to avoid Bundler blow up during cross-compilation Pull #83 [larskanis]
Bugfixes:
Restore compatibility with RubyGems platforms for cross-compilation (i386-mingw32 and x86-mingw32 are the same and supported)
Enhancements:
Add support for cross-builds and multiple platforms (x86/x64). Pull #74 [larskanis]
$ rake-compiler cross-ruby VERSION=1.8.7-p371 $ rake-compiler cross-ruby VERSION=1.9.3-p392 $ rake-compiler cross-ruby VERSION=2.0.0-p0 $ rake-compiler cross-ruby VERSION=2.0.0-p0 HOST=x86_64-w64-mingw32 $ rake cross compile RUBY_CC_VERSION=1.8.7:1.9.3:2.0.0 # Rakefile ext.cross_platform = %w[i386-mingw32 x64-mingw32]
Support for cross-platform specific options. Pull #74 [larskanis]
# Rakefile ext.cross_config_options << "--with-common-option" ext.cross_config_options << {"x64-mingw32" => "--enable-64bits"}
Bugfixes:
Correct fat-gems support caused by RubyGems issues. Pull #76 [knu]
Deprecations:
Requires minimum Ruby 1.8.7 and RubyGems 1.8.25
Usage of 'i386-mswin32' needs to be changed to 'i386-mswin32-60'
See 0.9.0 changes.
Bugfixes:
Support FreeBSD 'mingw32-gcc' cross compiler. Closes #72 [knu]
Bugfixes:
Unset CC, LDFLAGS and CPPFLAGS prior cross-compiling. Closes #55
Bugfixes:
Raise error when either make or gmake could be found. Closes #53, #54
Enhancements:
Invocation from command line now support extra options similar to RubyGems. Closes #4 from Pull #47 [jonforums]
$ rake compile -- --with-opt-dir=/opt/local
Bugfixes:
Only emit cross-compilation warnings for C when `cross` is invoked. Closes #16 from Pull #48 [mvz]
Only emit warnings when invoking cross-compilation tasks for JRuby. Pull #45 [jfirebaugh]
Use x86 MinGW cross-compiler. Pull #49 [larskanis]
Enhancements:
Consistently use RubyGems features available since version 1.3.2 and avoid deprecation warnings with Rake > 0.8.7.
Bugfixes:
Use correct platform in fake.rb. Pull #39 [kou]
Workaround Gem::Specification and Gem::PackageTask limitations. Closes #43
Enhancements:
Bump default cross-ruby version to 1.8.7-p334.
ExtensionTask now support config_includes to load additional directories.
Rake::BaseExtensionTask.new(“myext”, GEM_SPEC) do |ext|
ext.config_includes << File.expand_path("my", "custom", "dir")
end
Bugfixes:
Warn if compiled files exists in extension's source directory. Closes GH-35
Workaround issue with WINE using proper build option. Closes GH-37
Use FileUtils#install instead of cp. Closes GH-33 [Eric Wong]
Update README instructions for OSX. Closes GH-29 [tmm1]
Bugfixes:
Use Winsock2 as default to match Ruby 1.9.2 library linking.
Bugfixes:
Prefer Psych over Syck for YAML parsing on Ruby 1.9.2. [tenderlove]
Enhancements:
Promoted stable version for cross-compilation to 1.8.6-p398. Closes GH-19
Bugfixes:
Generate a fake.rb compatible with Ruby 1.9.2. Closes GH-25
fake.rb will not try to mimic Ruby's own fake to the letter. Closes GH-28
Expand symlinks for tmp_dir. Closes GH-24
Silence make output during rake-compiler invocation.
Usage of Gem.ruby instead of RbConfig ruby_install_name This solve issues with ruby vs. ruby.exe and jruby.exe
Experimental:
Allow setting of HOST during cross-compilation. This enable usage of mingw-w64 compiler and not the first one found in the PATH.
rake-compiler cross-ruby VERSION=1.9.2-p0 HOST=i686-w64-mingw32 rake-compiler cross-ruby HOST=i386-mingw32 (OSX mingw32 port) rake-compiler cross-ruby HOST=i586-pc-mingw32 (Debian/Ubuntu mingw32)
Bugfixes:
Update gem files to make “gem install -t” works. Closes GH-14
Update mocks to work under 1.8.7. Closes GH-15 [luisparravicini]
Do not allow cross-ruby be executed under Windows. Closes GH-22
Experimental:
Allow JRuby to compile C extensions [timfel]. It is now possible compile C extensions using latest JRuby. Offered in experimental mode since JRuby cext hasn't been officially released.
Enhancements
Allow generation of JRuby extensions. Thanks to Alex Coles (myabc) for the contribution. This will allow, with proper JDK tools, cross compilation of JRuby gems from MRI.
Rake::JavaExtensionTask.new('my_java_extension', GEM_SPEC) do |ext| # most of ExtensionTask options can be used # plus, java_compiling: ext.java_compiling do |gem_spec| gem_spec.post_install_message = "This is a native JRuby gem!" end end
Please note that cross-compiling JRuby gems requires either JRUBY_HOME or JRUBY_PARENT_CLASSPATH environment variables being properly set.
Allow alteration of the Gem Specification when cross compiling. Closes GH-3 This is useful to indicate a custom requirement message, like DLLs installation or similar.
Rake::ExtensionTask.new('my_extension', GEM_SPEC) do |ext| ext.cross_compile = true # ... ext.cross_compiling do |gem_spec| gem_spec.post_install_message = "You've installed a binary version of this gem" end end
Bugfixes
Detect GNU make independently of distribution based naming. Thanks to flori for patches.
Usage of dup to duplicate gemspec instead of YAML dumping.
No longer support Ruby older than 1.8.6
No longer support RubyGems older than 1.3.5
Force definition of binary directory and executables. Closes GH-11
Workaround path with spaces issues using relative paths. Closes GH-6
Removed gemspec, GitHub gems no more
Known issues
Usage of rake-compiler under projects with Jeweler requires some tweaks Please read issue GH-73 for Jeweler: github.com/technicalpickles/jeweler/issues#issue/73
For a workaround, look here: gist.github.com/251663
Enhancements
Implemented 'fat-binaries' generation for cross compiling (for now). Thanks to Aaron Patterson for the suggestion and original idea.
rake cross native gem RUBY_CC_VERSION=1.8.6:1.9.1
Will package extensions for 1.8 and 1.9 versions of Ruby.
Can now cross compile extensions for 1.9 using 1.8.x as base. Be warned: works from 1.8 to 1.9, but not if your default ruby is 1.9
rake cross compile RUBY_CC_VERSION=1.9.1
Allow simultaneous versions of Ruby to compile extensions. This change allow 1.8.x compiles co-exist with 1.9.x ones and don't override each other.
Please perform rake clobber
prior compiling again.
Allow optional source file URL for cross-compile tasks. (Thanks to deepj for the patches)
rake-compiler cross-ruby VERSION=1.9.1-p0 SOURCE=http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.bz2
Bugfixes
Removed strict versioning for gems since it clash with fat binaries. From
now on, if your gem only targets a specific version of Ruby, please
indicate it in the Gem::Specification (required_ruby_version
)
Enhancements
Allow generation of multiple gems for Windows (EXPERIMENTAL) This allows build gems for both VC6 and MinGW builts of Ruby (Thanks to Jonathan Stott for the suggestion)
Rake::ExtensionTask.new('my_extension', GEM_SPEC) do |ext| ext.cross_compile = true ext.cross_platform = ['i386-mswin32', 'i386-mingw32'] end
Enhancements
Target specific versions of Ruby when generating binaries. This avoids installing a 1.8.x binary gem in 1.9.x and viceversa. (Thanks to Aaron Patterson for the patches)
Bugfixes
No longer raises error if rake-compiler configuration is missing. Not all users of a project would have it installed. (Thanks to Aaron Patterson for the patch)
Enhancements
Bended the convention for extension folder. Defining ext_dir
for custom extension location.
Rake::ExtensionTask.new('my_extension') do |ext| ext.ext_dir = 'custom/location' # look into custom/location end # instead of ext/my_extension
Better detection of mingw target across Linux/OSX. Exposed it as Rake::ExtensionCompiler
Display list of available tasks when calling rake-compiler script
Track Ruby full versioning (x.y.z). This will help the compilation of extensions targetting 1.8.6/7 and 1.9.1
Bugfixes
Better output of Rake development tasks (Thanks to Luis Parravicini).
Proper usage of Gem::Platform for native gems (Thanks to Dirkjan Bussink).
Don't use autoload for YAML (present problems with Ruby 1.9.1).
Enhancements
Download cross-ruby source code using HTTP instead of FTP.
Disabled Tcl/Tk extension building on cross-ruby (helps with 1.9).
Bugfixes
Workaround bug introduced by lack of Gem::Specification cloning. Fixes DM LH #757.
Use proper binary extension on OSX (reported by Dirkjan Bussink).
Ensure lib/binary task is defined prior clear of requisites.
New features
Let you specify the Ruby version used for cross compilation instead of default one.
rake cross compile RUBY_CC_VERSION=1.8
Enhancements
Properly update rake-compiler configuration when new version is installed.
Automated release process to RubyForge, yay!
Bugfixes
Corrected documentation to reflect the available options
New features
Allow cross compilation (cross compile) using mingw32 on Linux or OSX.
Allow packaging of gems for Windows on Linux or OSX.
Enhancements
Made generation of extensions safe and target folders per-platform
Bugfixes
Ensure binaries for the specific platform are copied before packaging.