I’ll like to introduce you rake-compiler gem version 0.2.1
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
== Current functionality:
One-liner to be able to compile extensions using Rake
One-liner to be able to package native extensions into Gems.
3 Lines of code to be able to cross compile extensions for Windows
from Linux or OSX
Same 3 lines of code to be able to package those extensions into
Gems for Windows.
I know 3 lines sounds a lot… but compared to current alternatives
(ala: none), 3 lines is cheap.
== How to get it
Right now it’s only available at github:
gem install luislavena-rake-compiler --source http://gems.github.com
Soon at rubyforge, both will be keep on sync.
You can use any gem packaging and releasing tool with rake-compiler
(Hoe, Echoe, MrBones, etc). It doesn’t interfere as long you can
provide a Gem::Specification to hook into the native gems generation.
== Target audience
rake-compiler is not only to generate gems for Windows. Under certain
circumstances users request binary gems for Linux since their
production servers lack the build tools available under development
environments. This solution ease the path on all these fields.
While there is no project page for it (yet), I encourage users send
their feedback to Ruby Installer development mailing list.
rake-compiler is a side project of One-Click Installer and attempts
reduce the gap between users across platforms.
Several users contributed to make this project a reality, which
- Aaron P. from nokogiri for the simplified cross compile ruby
tasks that inspired the ones implemented in this project
- Dan K. from DataMapper and DataObjects for care about support of
- Jonathan Stott from DataMapper and DataObjects for hacking in cross
compilation into DO and playing with the workflow
Thanks to everyone for their support and feedback during the
development of this project!
Human beings, who are almost unique in having the ability to learn from
the experience of others, are also remarkable for their apparent
disinclination to do so.