Rake-compiler 0.6.0 Released

rake-compiler version 0.6.0 has been released!

= rake-compiler

rake-compiler aims to help Gem developers while dealing with Ruby C
extensions, simplifying the code and reducing the duplication.

It follows convention over configuration and set an standardized
structure to build and package C extensions in your gems.

This is the result of experiences dealing with several Gems that
required
native extensions across platforms and different user configurations
where details like portability and clarity of code were lacking.

== An Overview

Let’s summarize what rake-compiler provides:

  • No custom rake tasks required. Less code duplication and errors.

  • Painlessly build extensions on different platforms (Linux, OSX and
    Windows).

  • Allow multiple extensions be compiled inside the same gem.

  • Mimics RubyGems installation process, so helps as test environment.

  • Simplify cross platform compilation of extensions (target Windows from
    Linux).

Changes:

=== 0.6.0 / 2009-07-25

  • Enhancements

    • Implemented ‘fat-binaries’ generation for cross compiling
      (for now). Thanks to Aaron P. 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)