| # 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. |
| # |
| |
| require "rubygems" |
| require "rubygems/package_task" |
| |
| require "rake/clean" |
| require "rake/extensiontask" |
| require "rake/rdoctask" |
| |
| CPROTON_BUILD=ENV["CPROTON_BUILD"].nil? ? nil : "#{ENV['CPROTON_BUILD']}/bindings/ruby" |
| |
| if CPROTON_BUILD.nil? |
| puts "********************************************************" |
| puts "Please set CPROTON_BUILD to build the native extensions." |
| puts "********************************************************" |
| puts "" |
| end |
| |
| PROTON_HOME=ENV["PROTON_HOME"] |
| |
| if PROTON_HOME.nil? |
| puts "*************************************************************" |
| puts "Please source the config.sh file to set the PROTON_HOME path." |
| puts "*************************************************************" |
| puts "" |
| end |
| |
| |
| require "rspec/core/rake_task" |
| |
| CLOBBER.include("ext/cproton/cproton.c") |
| |
| load "lib/qpid_proton/version.rb" |
| |
| task :package => :swig |
| |
| task :swig do |
| system "swig -ruby -I../../include -o ext/cproton/cproton.c ruby.i" |
| end |
| |
| RSpec::Core::RakeTask.new(:rspec) do |t| |
| t.ruby_opts = [ |
| "-I #{CPROTON_BUILD}", |
| "-I lib" |
| ] |
| t.rspec_opts = [ |
| "--color", |
| "--format", |
| "progress" |
| ] |
| end |
| |
| Rake::RDocTask.new do |rd| |
| rd.main = "README.rdoc" |
| rd.rdoc_files.include("README.rdoc", |
| "lib/**/*.rb") |
| end |
| |
| # Gem specification and packaging |
| spec = Gem::Specification.new do |s| |
| s.name = Qpid::Proton::NAME |
| s.version = Qpid::Proton::VERSION |
| s.platform = Gem::Platform::RUBY |
| |
| s.author = "Darryl L. Pierce" |
| s.email = "dpierce@redhat.com" |
| s.homepage = "http://qpid.apache.org/proton" |
| s.license = "ASL" |
| |
| s.summary = "Ruby language bindings for the Qpid Proton messaging framework" |
| s.description = <<-EOF |
| Proton is a high performance, lightweight messaging library. It can be used in |
| the widest range of messaging applications including brokers, client libraries, |
| routers, bridges, proxies, and more. Proton is based on the AMQP 1.0 messaging |
| standard. |
| EOF |
| s.rubyforge_project = "qpid_proton" |
| |
| s.requirements << "none" |
| s.require_path = "lib" |
| s.extensions << "ext/cproton/extconf.rb" |
| |
| s.files = Dir[ |
| "TODO", |
| "ChangeLog", |
| "ext/cproton/*.rb", |
| "ext/cproton/*.c", |
| "lib/**/*.rb", |
| "features/**/*.rb" |
| ] |
| end |
| |
| Rake::ExtensionTask.new("cproton", spec) do |t| |
| t.config_options << "--with-qpid-proton-lib=${CPROTON_BUILD}" |
| t.config_options << "--with-qpid-proton-include=#{PROTON_HOME}/proton-c/include" |
| end |
| |
| Gem::PackageTask.new(spec) do |pkg| |
| end |