# Rakefile for Qpid -*- ruby -*- # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # task :noop # look for a root directory for out-of-tree builds OUTPUT_DIR=ENV["OUTPUT_DIR"] || "." require "rubygems" require "rubygems/package_task" require "rake/clean" require "rake/extensiontask" require "rake/rdoctask" require "rake/testtask" require "cucumber/rake/task" require "spec/rake/spectask" CLOBBER.include("pkg") load "./lib/qpid/version.rb" #------------- # Gem Details. #------------- NAME = "qpid" # VERSION = Qpid::VERSION AUTHOR = "Darryl L. Pierce" EMAIL = "dpierce@redhat.com" HOMEPAGE = "http://qpid.apache.org" SUMMARY = "Qpid is an enterprise messaging framework." desc "Default: run all tests." task :default => :test desc "Runs all tests." task :test => :"test:all" #--------------- # Testing tasks. #--------------- namespace :test do desc "Run RSpec tests." Spec::Rake::SpecTask.new do |t| t.ruby_opts = ['-rtest/unit'] t.spec_files = FileList["spec/**/*_spec.rb"] t.rcov = true t.rcov_opts = [ '--exclude', 'lib\/qpid.rb,spec\/,lib\/ruby', ] end desc "Run all tests (default)." task :all => [:spec, :features] Cucumber::Rake::Task.new(:features) do |t| t.libs = ["lib", "ext/nonblockio"] t.cucumber_opts = "--format progress" end end #--------------------- # Documentation tasks. #--------------------- Rake::RDocTask.new(:rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", :rerdoc => "rdoc:force") do |rd| rd.main = "README.rdoc" rd.options << "--all" rd.rdoc_files.include("README.rdoc", "lib/**/*.rb") end #----------------- # Package the gem. #----------------- spec = Gem::Specification.new do |s| s.name = NAME s.version = Qpid::VERSION s.platform = Gem::Platform::RUBY s.extra_rdoc_files = ["README.rdoc"] s.summary = SUMMARY s.description = s.summary s.author = AUTHOR s.email = EMAIL s.homepage = HOMEPAGE s.extensions = FileList["ext/**/extconf.rb"] s.require_path = "lib" # DEPRECATED s.autorequire = NAME s.files = FileList["LICENSE", "README.rdoc", "Rakefile", "TODO", "lib/**/*.rb", "test/**/*.rb", "examples/**/*.rb", "ext/**/*", "features/**/*", "spec/**/*"] end Gem::PackageTask.new(spec) do |pkg| pkg.package_dir = "#{OUTPUT_DIR}/pkg" end #------------------ # Build native code #------------------ Rake::ExtensionTask.new("cqpid", spec)