On Fri, Sep 10, 2010 at 6:51 PM, James Tucker <jftucker at gmail.com> wrote:
>> I have proposed a number of times moving toward a single script invocation (maybe with some build helpers) rather than having specifically matched build types.
>> So, that would be moving towards having spec.extensions simply call:
>> spec.extensions.each { |e| system Gem.ruby, e }
>> We could have very simple helpers for migration, like so:
>> require "rubygems/extconf_make" # calls at_exit { system ENV['make'] || 'make' }
> require "rubygems/mkrf_make" # calls at_exit { system "rake" } # n.b. the correct path and bin name ofc.
>> You get the idea. We would migrate the old methods out in the long term, and then deprecate these. This way RubyGems can drop all specific build methods, and simply execute a single ruby script for each extension in the gem. If further utilities are required, they can be provided by the Gem api, or separate gems which may be dependencies (for example an extended mkmf, some helpers from rake-compiler, or the like).
>
Interesting idea, but RubyGems specifically tweak the installation directory:
http://github.com/rubygems/rubygems/blob/master/lib/rubygems/ext/builder.rb#L19-21
Because of that little thing, calling at_exit will not work as expected.
Bug, I see lot of potential on this.
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry