Recursive Rake

Hello all,

I'm working on a very large set of build tasks for several .NET projects.
I've come up with a fairly simple rake script that with slight modification
(differing includes, resources, output type, etc) is able to build any of
the projects individually.

The problem is that I'm now to the point of building the larger outer
project, which will in turn need to build several of the inner library
projects. I'm unsure of the best way with Rake to handle this.

I know that with Make you could effectively recurse the directories, each
having their own make files and use those to build the individual
dependencies. I could simulate this behavior in Rake, but I'm not sure it's
neccessarily the best way. I'd also wondered about including the rakefile
from the inner projects and just use the tasks from those in the outer
file. A

nyone who has experience with this, or just ideas on how to handle this, I
would appreciate comments. Thanks!

···

--
===Tanner Burson===
tanner.burson@gmail.com
http://tannerburson.com <---Might even work one day...

Hi,

I use Rake to make HTMLs from RDs, to upload a package to the server,
to do unit tests, to announce a new version of package to ML, and so
on. I have my original Rake task libraries for common use and
`require' the Rake library.

neccessarily the best way. I'd also wondered about including the rakefile
from the inner projects and just use the tasks from those in the outer

Simply `load' the inner rakefile to include another rakefile.

···

From: Tanner Burson <tanner.burson@gmail.com>
Subject: Recursive Rake
Date: Wed, 7 Dec 2005 01:14:39 +0900

--
rubikitch

tanner.burson wrote:

Hello all,

I'm working on a very large set of build tasks for several .NET
projects.
I've come up with a fairly simple rake script that with slight
modification
(differing includes, resources, output type, etc) is able to build any
of
the projects individually.

The problem is that I'm now to the point of building the larger outer
project, which will in turn need to build several of the inner library
projects. I'm unsure of the best way with Rake to handle this.

There was a recent discussion about this on the Rake mailing list.
Different folks approached it in different ways. In particular, one
person in that thread supports a HUGE build system using Rake. See
http://rubyforge.org/pipermail/rake-devel/2005-December/thread.html for
details.

-- Jim Weirich

···

--
Posted via http://www.ruby-forum.com/\.

Perhaps you want to try Rant, which is an alternative to Rake.
It has all features of Rake and more. Support for the problem
you described is built in to some degree.

Assuming there is a directory that contains the "inner projects",
it could have an Rantfile looking like:

    inner_dirs = ["inner_project_1", "inner_project_2"]
    
    desc "Run tests for all inner projects."
    task :test => inner_dirs.map { |n| "#{n}/test" }

    # load Rantfiles of inner projects
    subdirs inner_dirs

And all inner project directories have an Rantfile that defines
a "test" task, e.g. inner_project_1/Rantfile contains:

    task :test do
        sys "command to run tests for this inner project"
    end

Then from the outer directory, you can type:
    
    $ rant test

to run the tests for all projects. To run the tests only
for inner_project_1:

    $ rant inner_project_1/test

or:

    $ cd inner_project_1
    $ rant test

Rant homepage: http://make.ruby-co.de
Feature comparison to rake:
    http://make.rubyforge.org/files/doc/rant_vs_rake_rdoc.html

Regards,
  Stefan

···

On Tuesday 06 December 2005 17:14, Tanner Burson wrote:

Hello all,

I'm working on a very large set of build tasks for several .NET
projects. I've come up with a fairly simple rake script that with
slight modification (differing includes, resources, output type,
etc) is able to build any of the projects individually.

The problem is that I'm now to the point of building the larger
outer project, which will in turn need to build several of the
inner library projects. I'm unsure of the best way with Rake to
handle this.

I know that with Make you could effectively recurse the
directories, each having their own make files and use those to
build the individual dependencies. I could simulate this behavior
in Rake, but I'm not sure it's neccessarily the best way. I'd also
wondered about including the rakefile from the inner projects and
just use the tasks from those in the outer file. A

nyone who has experience with this, or just ideas on how to handle
this, I would appreciate comments. Thanks!

tanner.burson wrote:
> Hello all,
>
> I'm working on a very large set of build tasks for several .NET
> projects.
> I've come up with a fairly simple rake script that with slight
> modification
> (differing includes, resources, output type, etc) is able to build any
> of
> the projects individually.
>
> The problem is that I'm now to the point of building the larger outer
> project, which will in turn need to build several of the inner library
> projects. I'm unsure of the best way with Rake to handle this.

There was a recent discussion about this on the Rake mailing list.
Different folks approached it in different ways. In particular, one
person in that thread supports a HUGE build system using Rake. See
http://rubyforge.org/pipermail/rake-devel/2005-December/thread.html for
details.

Thanks for the information Jim. I would definitely like to see more
information regarding your change for loading the entire dependency graph in
at once, as that's more or less what I'd like to do.

-- Jim Weirich

···

On 12/6/05, Jim Weirich <jim@weirichhouse.org> wrote:

--
Posted via http://www.ruby-forum.com/\.

--
===Tanner Burson===
tanner.burson@gmail.com
http://tannerburson.com <---Might even work one day...