Update date in Changelog in preparation for staging
[buildr.git] / Rakefile
1 # Licensed to the Apache Software Foundation (ASF) under one or more
2 # contributor license agreements.  See the NOTICE file distributed with this
3 # work for additional information regarding copyright ownership.  The ASF
4 # licenses this file to you under the Apache License, Version 2.0 (the
5 # "License"); you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #    http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
13 # License for the specific language governing permissions and limitations under
14 # the License.
15
16 # To work-around a bug with gemcutter: http://stackoverflow.com/questions/4932881/gemcutter-rake-build-now-throws-undefined-method-write-for-syckemitter
17 require 'psych' if RUBY_VERSION >= '1.9.2' && !RUBY_PLATFORM[/java/]
18
19 # We need JAVA_HOME for most things (setup, spec, etc).
20 unless ENV['JAVA_HOME']
21   if RUBY_PLATFORM[/java/]
22     ENV['JAVA_HOME'] = Java.java.lang.System.getProperty('java.home')
23   elsif RUBY_PLATFORM[/darwin/]
24     ENV['JAVA_HOME'] = '/System/Library/Frameworks/JavaVM.framework/Home'
25   else
26     fail "Please set JAVA_HOME first (set JAVA_HOME=... or env JAVA_HOME=... rake ...)"
27   end
28 end
29
30
31 # Load the Gem specification for the current platform (Ruby or JRuby).
32 def spec(platform = RUBY_PLATFORM[/java/] || 'ruby')
33   @specs ||= ['ruby', 'java', 'x86-mswin32'].inject({}) { |hash, spec_platform|
34     $platform = spec_platform
35     hash.update(spec_platform=>Gem::Specification.load('buildr.gemspec'))
36   }
37   @specs[platform]
38 end
39
40 desc 'Clean up all temporary directories used for running tests, creating documentation, packaging, etc.'
41 task :clobber