Forum: Ruby Building extensions with Hoe

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
807270f56f26ad90755eef71f2c228fe?d=identicon&s=25 Alex Gutteridge (Guest)
on 2007-01-16 02:58
(Received via mailing list)
Hi,

I'm developing a library that includes a C extension, so during
development I need to keep re-compiling the extension before testing.

I'm using Hoe for packaging, so I've added the following task to my
Rakefile.rb which allows me to rebuild the extension using extconf.rb/
make. My library has a further dependency on an external C library
(libR), at the moment this is semi-hardcoded into the script by
referencing the environment variable R_HOME:

desc "Uses extconf.rb and make to build the extension"
task :build_extension do
   Dir.chdir('ext')
   system("ruby extconf.rb --with-R-dir=$R_HOME")
   system("make")
   Dir.chdir('..')
end

Two questions (I'm pretty new with Rake/Hoe so forgive me if these
are obvious):

1. The 'build_extension' task works fine, but seems a little hacky,
how do other people build extensions with Rake/Hoe?

2. Can I retrospectively add this task as a dependency of the 'test'
task, so that when I run my tests I can ensure the library is freshly
built?

Alex Gutteridge

Bioinformatics Center
Kyoto University
58479f76374a3ba3c69b9804163f39f4?d=identicon&s=25 Eric Hodel (Guest)
on 2007-01-21 03:37
(Received via mailing list)
On Jan 15, 2007, at 17:53, Alex Gutteridge wrote:
> task :build_extension do
> how do other people build extensions with Rake/Hoe?
RubyGems looks for both an extconf.rb and an 'extension' rake task.

> 2. Can I retrospectively add this task as a dependency of the
> 'test' task, so that when I run my tests I can ensure the library
> is freshly built?

I'm not sure how to do this with rake, but we'd accept a patch to Hoe.

--
Eric Hodel - drbrain@segment7.net - http://blog.segment7.net

I LIT YOUR GEM ON FIRE!
918c6daad03c85e51ad1a11f57017947?d=identicon&s=25 Devin Mullins (twifkak)
on 2007-01-21 04:27
(Received via mailing list)
Alex Gutteridge wrote:
> 2. Can I retrospectively add this task as a dependency of the 'test'
> task, so that when I run my tests I can ensure the library is freshly
> built?
Yes. I forget exactly, but it's something easy like
Rake::Task['test'].prerequisites << 'build_extension'.

Devin
This topic is locked and can not be replied to.