diff options
Diffstat (limited to 'qpid/ruby/Rakefile')
-rw-r--r-- | qpid/ruby/Rakefile | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/qpid/ruby/Rakefile b/qpid/ruby/Rakefile new file mode 100644 index 0000000000..9b0878813d --- /dev/null +++ b/qpid/ruby/Rakefile @@ -0,0 +1,116 @@ +# +# 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 |