File: Rakefile

package info (click to toggle)
watchman 4.9.0-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,992 kB
  • sloc: cpp: 27,459; python: 6,538; java: 3,404; php: 3,257; ansic: 2,803; javascript: 1,116; makefile: 671; ruby: 364; sh: 124; xml: 102; lisp: 4
file content (54 lines) | stat: -rw-r--r-- 1,384 bytes parent folder | download | duplicates (3)
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
# Copyright (c) 2014-present Facebook. All Rights Reserved.

require 'rubygems'
require 'rake/clean'
require 'rspec/core/rake_task'
require File.expand_path('lib/ruby-watchman/version.rb', File.dirname(__FILE__))

CLEAN.include Rake::FileList['*.gem', '**/*.so', '**/*.bundle', '**/*.o', '**/mkmf.log', '**/Makefile']

RSpec::Core::RakeTask.new(:spec)

task :default => :all

desc 'Build and run specs'
task :all => [:make, :spec]

file 'ext/ruby-watchman/Makefile' => %w[
  ext/ruby-watchman/depend
  ext/ruby-watchman/extconf.rb
] do
  Dir.chdir('ext/ruby-watchman') { ruby './extconf.rb' }
end

desc 'Build extension'
task :make => %w[
  ext/ruby-watchman/Makefile
  ext/ruby-watchman/watchman.c
  ext/ruby-watchman/watchman.h
] do
  Dir.chdir('ext/ruby-watchman') { system 'make' }
end
EXT_FILE = "ext/ruby-watchman/ext.#{RbConfig::CONFIG['DLEXT']}"
file EXT_FILE => :make

GEM_FILE_DEPENDENCIES = Dir[
  'ext/ruby-watchman/**/*.{c,h,rb}',
  'ext/ruby-watchman/depend',
  'lib/**/*.rb',
  'spec/**/*.rb'
] + [EXT_FILE] # not actually included in gem, but we want to be sure it builds

GEM_FILE = "ruby-watchman-#{RubyWatchman::VERSION}.gem"

file GEM_FILE => GEM_FILE_DEPENDENCIES do
  system 'gem build ruby-watchman.gemspec'
end

desc 'Build gem ("gem build")'
task :build => GEM_FILE

desc 'Publish gem ("gem push")'
task :push => :build do
  system "gem push #{GEM_FILE}"
end