From: Christian Boos Date: 2002-02-09T05:57:59+09:00 Subject: RE: Setting the Ruby > -----Original Message----- > From: Phil Tomson [mailto:ptkwt@shell1.aracnet.com] > Sent: Friday, February 08, 2002 8:26 PM > To: ruby-talk ML; undisclosed-recipients: > Subject: Re: Setting the Ruby > > ... > be seen as a replacement for CVS? If it was good people would use it and > Ruby would get installed. How about the discussion about a 'make' > replacement that was big here a few months back? Same story, if we had a > viable make replacement that was Ruby based it would help spread Ruby. > I'm working on it (Rubuild), but so far, it has not "crystallized". Expect an alpha version by the end of the month (maybe :) So far, the idea is to have 'BuildSet' objects that logically group some root 'BuildNode' objects. A 'BuildNode' can have explicit dependencies on other 'BuildNode' objects. Each 'BuildNode' knows how to rebuild itself, using some 'Tool' object. To effectively trigger a build, one gives a 'Configuration' object to the 'make' method of a 'BuildSet'. The combination of the 'BuildSet' info and of the 'Configuration' info enables the right 'Tool' instance to be created. Ok, that was a very sketchy description :). Basically the build files will look like: ####################################################### require 'rubuild/qt2' # triggers the require of the rest include Rubuild class Qt2Integration < BuildSet attr_reader :qruby # so that it can be referenced from # another build file elsewhere def initialize super "qt2/integration" @qruby = Cplusplus::Library.new "qruby" @qruby << "qruby.cpp" # the Library creates a # Cplusplus::Source BuildNode # for /\.cpp$/ dependencies @qruby << Cplusplus::Qt2::Modifier.new # a tool modifier will change # the settings for the tools # used (here Cplusplus::Compiler # and Cplusplus::Linker) self << @qruby end end if $0 == __FILE__ local = Qt2Integration.new local.make # default config is used, # object files will be created under # ENV['RUBUILD_POOL']/default/qt2/integration local.make (Configuration.new :debug => true) # will build in 'debug' mode under # ENV['RUBUILD_POOL']/debug/qt2/integration end #################################### (see also http://www.bct-portal.com/opensource/ruby/rubuild/index.html, but the site is also quite 'alpha', and there is no package to download right now). -- Christian