# # 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[ "LICENSE.txt", "NOTICE.txt", "Rakefile", "RELEASE_NOTES", "lib/**/*.rb", "lib/**/*.xml", "lib/**/*.dtd", "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 = "dev@qpid.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" s.extensions << 'ext/sasl/extconf.rb' end Rake::GemPackageTask.new(SPEC) do |pkg| task pkg.package_dir => [ :spec_cache ] pkg.need_tar = true pkg.need_zip = true end