-
Improvements:
- GH-236: Added support for setting
required_rubygems_version
for fat-gems that specify the Linux libc. [Patch by Mike Dalessio]
- GH-236: Added support for setting
-
Thanks:
- Mike Dalessio
-
Improvements:
- GH-232 GH-233: Changed to use
require
instead of copying content ofrbconfig.rb
for__FILE__
inrbconfig.rb
. [Patch by ParadoxV5]
- GH-232 GH-233: Changed to use
-
Thanks:
- ParadoxV5
-
Fixes:
- GH-225: Fixed a bug that
rake compile
may not work on Windows. [Reported by Lukasz Suleja] - GH-224 GH-226: Fixed a bug that 1.2.4 doesn't work on Ruby < 2.6. [Reported by Ivo Anjo] [Patch by Mike Dalessio and Akira Matsuda separately]
- GH-225: Fixed a bug that
-
Thanks:
- Lukasz Suleja
- Ivo Anjo
- Mike Dalessio
- Akira Matsuda
-
Enhancements:
- GH-221: Enabled syntax highlighting in documents. [Patch by Ryo Nakamura]
- GH-202 GH-222: Use environment variables to set install paths. [Reported by Brandon Fish] [Patch by Michael Go]
-
Thanks:
- Ryo Nakamura
- Brandon Fish
- Michael Go
-
Enhancements:
- GH-217: Added support for
nil
in build options again. [Patch by Mike Dalessio]
- GH-217: Added support for
-
Fixes:
- GH-219: Fixed a typo in documentation. [Patch by y-yagi]
-
Thanks:
- Mike Dalessio
- y-yagi
-
Enhancements:
- GH-211: Added
extra_sources
that is for dynamic sources. [Patch by James Tucker] - GH-213: Stopped using
--release
on Java 8. [Patch by James Pavel Rosický] - GH-215: Added support for extra options with space. [Reported by Jun Aruga]
- GH-211: Added
-
Fixes:
- GH-212: Fixed a typo in documentation. [Patch by Jan-Benedikt Jagusch]
-
Thanks:
- James Tucker
- Jan-Benedikt Jagusch
- Pavel Rosický
- Jun Aruga
-
Enhancements:
- GH-209: Added support for RubyGems 3.3.21 or later. [Patch by Mike Dalessio]
-
Fixes:
- GH-208: Fixed a typo in documentation. [Patch by Garen Torikian]
-
Thanks:
- Garen Torikian
- Mike Dalessio
- Enhancements:
- Defer requiring
yaml
. ruby/stringio#21
- Defer requiring
- Enhancements:
- Fixes:
- Fix wrong
required_ruby_version
when someRUBY_CC_VERSION
s are missing. #198 [Patch by Lars Kanis]
- Fix wrong
- Fixes:
- Fix binary paths for staging and clobber. #197 [Patch by konsolebox]
- Fixes:
- Fix a regression bug that
Symbol
can't be used forname
ofRake::ExtensionTask.new
.
- Fix a regression bug that
- Fixes:
- Fix a regression bug that wrong install location is used when name that includes
/
is specified toRake::ExtensionTask.new
. #196 [Reported by konsolebox]
- Fix a regression bug that wrong install location is used when name that includes
- Fixes:
- Fix a regression bug that installed gem can't be found on cross compile. #195 [Reported by Mike Dalessio]
- Fixes:
- Fix a regression bug that wrong install location is used. #194 [Reported by Andrew Kane]
-
Changes:
- Use .tar.gz instead of .tar.bz2 for Ruby archive. #179 [Patch by Masaki Hara]
- Stop removing
CC
,CXX
,CPPFLAGS
andLDFLAGS
environment variables for cross-build. #182 [Patch by Lars Kanis] - Remove IronRuby related message. #184 [Patch by Thomas E Enebo]
- Suppress a warning. #185 [Patch by Olle Jonsson]
- Rename
History.txt
toHistory.md
. #174 [Patch by MSP-Greg] - Use
make install
instead of copying artifacts manually. #191 [Patch by Lars Kanis]
-
Enhancements:
-
Changes:
- Bump the default Java bytecode to 1.7. #172 [Patch by Charles Oliver Nutter]
-
Enhancements:
- Bugfixes:
- Fix a bug that JavaExtenstionTask can't build anything. #163 [Reported by Kai Kuchenbecker]
-
Changes:
- Use "-Xlint" option for JRuby native extension by default. #158 [Patch by Stephen George]
-
Enhancements:
-
Enhancements:
- Added Rake::JavaExtensionTask#encoding= to pass the -encoding option to javac. #157 [Patch by Tiago Dias]
-
Bugfixes:
- Drop EOL'd rubyforge_project directive from .gemspec. #155 [Patch by Olle Jonsson]
- Bugfixes:
- Enhancements:
- Stop to make unreleased Ruby installable. #150 [Reported by MSP-Greg]
- Enhancements:
- Enhancements:
- Enhancements:
- Support specifying required Ruby versions. #137 [Patch by Lars Kanis]
- Bugfixes:
- Bugfixes:
- Add missing dependency.
- Enhancements:
- Really support extension in sub directory.
- Bugfixes:
- Support Symbol as extension name again. #134 [Patch by Takashi Kokubun]
- Bugfixes:
- May fix "make" detection on Windows. #123 [Reported by Aaron Stone]
-
Enhancements:
- Add more descriptions into README. Closes #105 [Patch by Aaron Stone]
- Remove needless executable bits. Closes #107 [Patch by Thibault Jouan]
- Update .gitignore. Closes #108 [Patch by Thibault Jouan]
- Improve "make" detection on some platforms such as FreeBSD. Closes #109 [Patch by Thibault Jouan]
- Enable cucumber steps for POSIX on *BSD. Closes #110 [Patch by Thibault Jouan]
- Stop to build bundled extensions.
- Add description about CLI option into README. Closes #115 [Patch by Richard Michael]
- Update description about using rake-compiler on virtual machine in README. Closes #116, #117 [Patch by Lars Kanis]
- Update fake mechanism to be compatible with Bundler. Closes #121 [Patch by Lars Kanis]
-
Bugfixes:
- Enhancements:
- Support adding bundled files in cross_compiling block. Closes #100 [Patch by Aaron Stone]
-
Notes:
- Change maintainer to Kouhei Sutou from Luis Lavena. Thanks Luis Lavena for your great works!
- Change repository to https://github.com/rake-compiler/rake-compiler from https://github.com/luislavena/rake-compiler .
-
Bugfixes:
- Loose RubyGems dependency a little bit to ease old Debian/Ubuntu. Closes #93
- 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
-
Enhancements:
-
Bugfixes:
-
Enhancements:
- Consistently use RubyGems features available since version 1.3.2 and avoid deprecation warnings with Rake > 0.8.7.
-
Bugfixes:
-
Enhancements:
-
Bump default cross-ruby version to 1.8.7-p334.
-
ExtensionTask now support config_includes to load additional directories. [jfinkhaeuser]
Rake::ExtensionTask.new("myext", GEM_SPEC) do |ext| ext.config_includes << File.expand_path("my", "custom", "dir") end
-
-
Bugfixes:
- 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 #19
-
Bugfixes:
- Generate a fake.rb compatible with Ruby 1.9.2. Closes #25
- fake.rb will not try to mimic Ruby's own fake to the letter. Closes #28
- Expand symlinks for tmp_dir. Closes #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:
-
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 #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 #11
- Workaround path with spaces issues using relative paths. Closes #6
- Removed gemspec, GitHub gems no more
-
Known issues
-
Usage of rake-compiler under projects with Jeweler requires some tweaks Please read issue 73) for Jeweler: http://github.com/technicalpickles/jeweler/issues/73
For a workaround, look here: http://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.