Merge branch 'master' of gitorious.org:ruby-rpm/ruby-rpm into work-1.4
[ruby-rpm:ruby-rpm.git] / Rakefile
1 # Rakefile for ruby-rpm -*- ruby -*-
2 $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
3 require 'bundler'
4 Bundler::GemHelper.install_tasks
5 require "rpm/version"
6 require 'rake/testtask'
7
8 SPEC_FILE="distro/fedora/ruby-rpm.spec"
9
10 task :install => :build do
11   system "sudo gem install ruby-rpm-#{RPM::VERSION}.gem"
12 end
13
14 Rake::TestTask.new do |t|
15   t.libs << File.expand_path('../test', __FILE__)
16   t.libs << File.expand_path('../', __FILE__)
17   t.test_files = FileList['test/test*.rb']
18   t.verbose = true
19 end
20
21 extra_docs = ['README*', 'TODO*', 'CHANGELOG*']
22 doc_files = ['lib/**/*.rb', 'ext/rpm/*.c', *extra_docs]
23
24
25 begin
26  require 'yard'
27   YARD::Rake::YardocTask.new(:doc) do |t|
28     t.files   = doc_files
29     t.options = ['--no-private']
30   end
31 rescue LoadError
32   STDERR.puts "Install yard if you want prettier docs"
33   require 'rdoc/task'
34   Rake::RDocTask.new(:doc) do |rdoc|
35     rdoc.rdoc_dir = "doc"
36     rdoc.title = "#{RPM::PKG_NAME} #{RPM::VERSION}"
37     doc_files.each { |ex| rdoc.rdoc_files.include ex }
38   end
39 end
40
41 task :default => [:compile, :doc, :test]
42 gem 'rake-compiler', '>= 0.4.1'
43 require 'rake/extensiontask'
44 Rake::ExtensionTask.new('rpm')
45
46 desc "Build (S)RPM for #{RPM::PKG_NAME}"
47 task :rpm => [ :package ] do |t|
48   system("sed -i -e 's/^Version:.*$/Version: #{RPM::VERSION}/' #{SPEC_FILE}")
49   Dir::chdir("pkg") do |dir|
50     dir = File::expand_path(".")
51     system("rpmbuild --define '_topdir #{dir}' --define '_sourcedir #{dir}' --define '_srcrpmdir #{dir}' --define '_rpmdir #{dir}' -ba ../#{SPEC_FILE} > rpmbuild.log 2>&1")
52     if $? != 0
53       raise "rpmbuild failed"
54     end
55   end
56 end