| # |
| # 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. |
| # |
| |
| # Rakefile for ruby-rpm -*- ruby -*- |
| require 'rake/clean' |
| require 'rake/testtask' |
| require 'rake/gempackagetask' |
| require 'pathname' |
| |
| PKG_NAME='ruby-qpid' |
| PKG_VERSION='0.10.2' |
| GEM_NAME='qpid' |
| |
| EXT_CONF="ext/sasl/extconf.rb" |
| MAKEFILE="ext/sasl/Makefile" |
| SASL_MODULE="ext/sasl/sasl.so" |
| SASL_SRC=SASL_MODULE.gsub(/.so$/, ".c") |
| |
| # |
| # Additional files for clean/clobber |
| # |
| |
| CLEAN.include [ "**/*~", "lib/*/spec_cache", SASL_MODULE, "ext/**/*.o" ] |
| |
| CLOBBER.include [ "config.save", "ext/**/mkmf.log", |
| MAKEFILE ] |
| |
| file MAKEFILE => EXT_CONF do |t| |
| Dir::chdir(File::dirname(EXT_CONF)) do |
| unless sh "ruby #{File::basename(EXT_CONF)}" |
| $stderr.puts "Failed to run extconf" |
| break |
| end |
| end |
| end |
| |
| file SASL_MODULE => [ MAKEFILE, SASL_SRC ] do |t| |
| Dir::chdir(File::dirname(EXT_CONF)) do |
| unless sh "make" |
| $stderr.puts "make failed" |
| break |
| end |
| end |
| end |
| desc "Build the native library and AMQP spec cache" |
| task :build => :spec_cache |
| |
| Rake::TestTask.new(:test) do |t| |
| t.test_files = FileList['tests/*.rb'].exclude("tests/util.rb") |
| t.libs = [ 'lib', 'ext/sasl' ] |
| end |
| |
| Rake::TestTask.new(:"test_0-8") do |t| |
| t.test_files = FileList["tests_0-8/*.rb"] |
| t.libs = [ 'lib', 'ext/sasl' ] |
| end |
| |
| desc "Create cached versions of the AMQP specs" |
| task :spec_cache => SASL_MODULE do |t| |
| pid = fork do |
| $:.insert(0, "lib", "ext/sasl") |
| require 'qpid' |
| Qpid::Spec010::load() |
| end |
| Process.wait(pid) |
| end |
| |
| # |
| # Packaging |
| # |
| |
| PKG_FILES = FileList[ |
| "DISCLAIMER", "LICENSE.txt", "NOTICE.txt", |
| "Rakefile", "RELEASE_NOTES", |
| "lib/**/*.rb", "lib/*/spec_cache/*.rb*", "tests/**/*", "examples/**", "ext/**/*.[ch]", |
| "ext/**/MANIFEST", "ext/**/extconf.rb" |
| ] |
| |
| DIST_FILES = FileList[ |
| "pkg/*.tgz", "pkg/*.gem" |
| ] |
| |
| SPEC = Gem::Specification.new do |s| |
| s.name = GEM_NAME |
| s.version = PKG_VERSION |
| s.email = "qpid-dev@incubator.apache.org" |
| s.homepage = "http://cwiki.apache.org/qpid/" |
| s.summary = "Ruby client for Qpid" |
| s.files = PKG_FILES |
| s.required_ruby_version = '>= 1.8.1' |
| s.description = "Ruby client for Qpid" |
| end |
| |
| Rake::GemPackageTask.new(SPEC) do |pkg| |
| task pkg.package_dir => [ :spec_cache ] |
| pkg.need_tar = true |
| pkg.need_zip = true |
| end |