Author: assaf
Date: Mon Jan 28 10:48:43 2008
New Revision: 615988

URL: http://svn.apache.org/viewvc?rev=615988&view=rev
Log:
Added compiler dependencies

Modified:
    incubator/buildr/trunk/lib/core/compile.rb

Modified: incubator/buildr/trunk/lib/core/compile.rb
URL: 
http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/core/compile.rb?rev=615988&r1=615987&r2=615988&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/core/compile.rb (original)
+++ incubator/buildr/trunk/lib/core/compile.rb Mon Jan 28 10:48:43 2008
@@ -77,6 +77,13 @@
           attrs.each { |name, value| instance_variable_set("@#{name}", value) }
         end
 
+        # Returns additional dependencies required by this language.  For 
example, since the
+        # test framework picks on these, you can use the JUnit framework with 
Scala.
+        # Defaults to obtaining a list of artifact specifications from the 
REQUIRES constant.
+        def dependencies
+          @dependencies ||= FileList[*(const_get('REQUIRES') rescue [])]
+        end
+
       end
 
       # Construct a new compiler with the specified options.  Note that 
options may
@@ -105,6 +112,12 @@
         raise 'Not implemented'
       end
 
+      # Returns additional dependencies required by this language.  For 
example, since the
+      # test framework picks on these, you can use the JUnit framework with 
Scala.
+      def dependencies
+        self.class.dependencies
+      end
+
     private
 
       # Use this to complain about CompileTask options not supported by this 
compiler.
@@ -320,6 +333,7 @@
       from Array(cls.sources).map { |path| @project.path_to(:source, @usage, 
path) }.
         select { |path| File.exist?(path) } if sources.empty?
       into @project.path_to(:target, @usage, cls.target) unless target
+      with @compiler.dependencies
       self
     end
 


Reply via email to