File: Rakefile

package info (click to toggle)
ruby-msgpack 1.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 972 kB
  • sloc: ruby: 4,789; ansic: 4,309; java: 1,809; makefile: 4
file content (82 lines) | stat: -rw-r--r-- 2,242 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

require 'bundler'
Bundler::GemHelper.install_tasks

require 'fileutils'

require 'rspec/core'
require 'rspec/core/rake_task'
require 'yard'
if Gem::Version.new(RUBY_VERSION) > Gem::Version.new('2.6.0')
  require 'ruby_memcheck'
  require 'ruby_memcheck/rspec/rake_task'

  RubyMemcheck.config(binary_name: 'msgpack')
end

task :spec => :compile

desc 'Run RSpec code examples and measure coverage'
task :coverage do |t|
  ENV['SIMPLE_COV'] = '1'
  Rake::Task["spec"].invoke
end

desc 'Generate YARD document'
YARD::Rake::YardocTask.new(:doc) do |t|
  t.files   = ['lib/msgpack/version.rb','doclib/**/*.rb']
  t.options = []
  t.options << '--debug' << '--verbose' if $trace
end

spec = eval File.read("msgpack.gemspec")

if RUBY_PLATFORM =~ /java/
  require 'rake/javaextensiontask'

  Rake::JavaExtensionTask.new('msgpack', spec) do |ext|
    ext.ext_dir = 'ext/java'
    jruby_home = RbConfig::CONFIG['prefix']
    jars = ["#{jruby_home}/lib/jruby.jar"]
    ext.classpath = jars.map { |x| File.expand_path(x) }.join(':')
    ext.lib_dir = File.join(*['lib', 'msgpack', ENV['FAT_DIR']].compact)
    ext.release = '8'
  end
else
  require 'rake/extensiontask'

  Rake::ExtensionTask.new('msgpack', spec) do |ext|
    ext.ext_dir = 'ext/msgpack'
    ext.cross_compile = true
    ext.lib_dir = File.join(*['lib', 'msgpack', ENV['FAT_DIR']].compact)
    # cross_platform names are of MRI's platform name
    ext.cross_platform = ['x86-mingw32', 'x64-mingw32']
  end
end

test_pattern = case
               when RUBY_PLATFORM =~ /java/ then 'spec/{,jruby/}*_spec.rb'
               when RUBY_ENGINE =~ /rbx/ then 'spec/*_spec.rb'
               else 'spec/{,cruby/}*_spec.rb' # MRI
               end
spec_config = lambda do |t|
  t.rspec_opts = ["-c", "-f progress"]
  t.rspec_opts << "-Ilib"
  t.pattern = test_pattern
  t.verbose = true
end
RSpec::Core::RakeTask.new(:spec, &spec_config)
if Gem::Version.new(RUBY_VERSION) > Gem::Version.new('2.6.0')
  namespace :spec do
    RubyMemcheck::RSpec::RakeTask.new(valgrind: :compile, &spec_config)
  end
end

namespace :build do
  desc 'Build gem for JRuby after cleaning'
  task :java => [:clean, :spec, :build]
end

CLEAN.include('lib/msgpack/msgpack.*')

task :default => [:spec, :build, :doc]