[Rubygems-developers] The return of PLATFORM constants

Eric Hodel drbrain at segment7.net
Thu May 15 03:45:43 EDT 2008


On May 11, 2008, at 10:18 AM, Daniel Berger wrote:

> I have a few C extensions where I would like to be able to provide a
> way to specify a generic platform.
>
> For example, the sys-cpu source is the same for both FreeBSD and OS X.
> However, as things stand now I must create two separate gems - one for
> each platform. Here's where a Gem::Platform::BSD constant would be
> very handy. Or whatever you want to call it.

The same binary works on FreeBSD and OS X?  Or is it a source-only gem?

If it is a source-only gem, is there a way to handle this with  
extconf.rb instead?  While OS X has FreeBSD roots, the two don't have  
completely compatible internals, so its hard to describe this in  
RubyGems.

> I'm in a similar situation with gems that aren't particular to any
> version of a given platform or compiler. For example, the sys-cpu
> source for Solaris is the same for any version of Solaris, be it 2.6
> or 2.10. Here's where a Gem::Platform::SOLARIS would be very handy.
>
> Is there any chance of adding these? If not, what are my options
> outside of building a gem on every platform?

You should be able to hand-specify a platform with something like  
Gem::Platform.new 'x86-freebsd', but there seems to be a bug.

Currently Gem::Platform is rather strict, as it is easier to make it  
more permissive in future releases than less permissive in future  
releases.


More information about the Rubygems-developers mailing list