blob: 81c3119e1a9cffe26e87d7888b2ce659a1c71459 [file] [log] [blame]
Brian Silverman9c614bc2016-02-15 20:20:02 -05001require "rubygems"
2require "rubygems/package_task"
3require "rake/extensiontask" unless RUBY_PLATFORM == "java"
4require "rake/testtask"
5
6spec = Gem::Specification.load("google-protobuf.gemspec")
7
8if RUBY_PLATFORM == "java"
9 if `which mvn` == ''
10 raise ArgumentError, "maven needs to be installed"
11 end
12 task :clean do
13 system("mvn clean")
14 end
15
16 task :compile do
17 system("mvn package")
18 end
19else
20 Rake::ExtensionTask.new("protobuf_c", spec) do |ext|
21 ext.ext_dir = "ext/google/protobuf_c"
22 ext.lib_dir = "lib/google"
23 ext.cross_compile = true
24 ext.cross_platform = [
25 'x86-mingw32', 'x64-mingw32',
26 'x86_64-linux', 'x86-linux',
27 'universal-darwin'
28 ]
29 end
30
31 task 'gem:windows' do
32 require 'rake_compiler_dock'
33 RakeCompilerDock.sh "bundle && rake cross native gem RUBY_CC_VERSION=2.3.0:2.2.2:2.1.6"
34 end
35end
36
37Gem::PackageTask.new(spec) do |pkg|
38end
39
40Rake::TestTask.new(:test => :build) do |t|
41 t.test_files = FileList["tests/*.rb"]
42end
43
44task :build => [:clean, :compile]
45task :default => [:build]
46
47# vim:sw=2:et