You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by as...@apache.org on 2009/02/27 09:57:33 UTC

svn commit: r748441 - in /buildr/trunk: Rakefile rakelib/setup.rake

Author: assaf
Date: Fri Feb 27 08:57:32 2009
New Revision: 748441

URL: http://svn.apache.org/viewvc?rev=748441&view=rev
Log:
Rakefile now determines JAVA_HOME. The gem_setup method now accepts version and source info (required for Github gems).

Modified:
    buildr/trunk/Rakefile
    buildr/trunk/rakelib/setup.rake

Modified: buildr/trunk/Rakefile
URL: http://svn.apache.org/viewvc/buildr/trunk/Rakefile?rev=748441&r1=748440&r2=748441&view=diff
==============================================================================
--- buildr/trunk/Rakefile (original)
+++ buildr/trunk/Rakefile Fri Feb 27 08:57:32 2009
@@ -14,10 +14,19 @@
 # the License.
 
 
-require 'rake/gempackagetask'
+RakeFileUtils.verbose_flag = Rake.application.options.trace # Rake 0.8.3 is too chatty!
 
 
-RakeFileUtils.verbose_flag = Rake.application.options.trace
+# We need JAVA_HOME for most things (setup, spec, etc).
+unless ENV['JAVA_HOME']
+  if RUBY_PLATFORM[/java/]
+    ENV['JAVA_HOME'] = java.lang.System.getProperty('java.home')
+  elsif RUBY_PLATFORM[/darwin/]
+    ENV['JAVA_HOME'] = '/System/Library/Frameworks/JavaVM.framework/Home'
+  else
+    fail "Please set JAVA_HOME first (set JAVA_HOME=... or env JAVA_HOME=... rake ...)"
+  end
+end
 
 
 def spec(platform = RUBY_PLATFORM[/java/] || 'ruby')
@@ -29,6 +38,13 @@
 end
 
 
+require 'rake/gempackagetask'
+
+
+
+
+
+
 desc 'Compile Java libraries used by Buildr'
 task 'compile' do
   puts 'Compiling Java libraries ...'

Modified: buildr/trunk/rakelib/setup.rake
URL: http://svn.apache.org/viewvc/buildr/trunk/rakelib/setup.rake?rev=748441&r1=748440&r2=748441&view=diff
==============================================================================
--- buildr/trunk/rakelib/setup.rake (original)
+++ buildr/trunk/rakelib/setup.rake Fri Feb 27 08:57:32 2009
@@ -24,13 +24,6 @@
   Config::CONFIG['host_os'] =~ /windows|cygwin|bccwin|cygwin|djgpp|mingw|mswin|wince/i
 end
 
-def set_java_home
-  if !ENV['JAVA_HOME'] && RUBY_PLATFORM[/java/]
-    ENV['JAVA_HOME'] = java.lang.System.getProperty('java.home')
-  end
-  fail "Please set JAVA_HOME first #{'(no need to run as sudo)' if ENV['USER'] == 'root'}" unless ENV['JAVA_HOME']
-end
-
 def sudo_needed?
   !( windows? || ENV['GEM_HOME'] )
 end
@@ -54,18 +47,15 @@
   sh *args.map{ |a| a.inspect }.join(' ')
 end
 
-def install_gem(name, ver_requirement = ['> 0'])
-  dep = Gem::Dependency.new(name, ver_requirement)
-  @load_cache = true
+def install_gem(name, options = {}) # ver_requirement = ['> 0'])
+  dep = Gem::Dependency.new(name, options[:version] || '>0')
   if Gem::SourceIndex.from_installed_gems.search(dep).empty?
-    spec = Gem::SourceInfoCache.search(dep, true, @load_cache).last
-    fail "#{dep} not found in local or remote repository!" unless spec
-    puts "Installing #{spec.full_name} ..."
-    args = ['install']
-    args.push '--install-dir', ENV['GEM_HOME'] if ENV['GEM_HOME']
-    args.push spec.name, '-v', spec.version.to_s
+    puts "Installing #{name} ..."
+    args = 'install', name
+    args << '--version' << options[:version] if options[:version]
+    args << '--source' << options[:source] if options[:source]
+    args << '--install-dir' << ENV['GEM_HOME'] if ENV['GEM_HOME']
     gem_run *args
-    @load_cache = false # Just update the Gem cache once
   end
 end
 
@@ -73,7 +63,6 @@
 desc "If you're building from sources, run this task first to setup the necessary dependencies."
 missing = spec.dependencies.select { |dep| Gem::SourceIndex.from_installed_gems.search(dep).empty? }
 task 'setup' do
-  set_java_home
   missing.each do |dep|
     install_gem dep.name, dep.version_requirements
   end