sigar/Rakefile

89 lines
1.9 KiB
Ruby

require 'rubygems'
require 'rake/gempackagetask'
#so we can: ssh host rake -f $hudson_workspace/sigar/Rakefile
Dir.chdir(File.dirname(__FILE__))
props = {}
File.open("bindings/java/version.properties").each { |line|
next if line =~ /^#/
line.chomp!
line.strip!
next if line.empty?
key,val = line.split('=')
props[key] = val
}
GEM = props['project.name']
MAKE = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
spec = Gem::Specification.new do |s|
s.name = GEM
s.version = props['version.major'] + '.' + props['version.minor'] + '.' + props['version.maint']
s.summary = props['project.summary']
s.description = s.summary
s.author = props['project.author']
s.email = props['project.email']
s.homepage = props['project.homepage']
s.platform = Gem::Platform::RUBY
s.has_rdoc = false
s.extensions = 'bindings/ruby/extconf.rb'
s.files =
%w(COPYING EXCEPTIONS README Rakefile) +
%w(bindings/SigarWrapper.pm) +
Dir.glob("bindings/ruby/**/*") +
Dir.glob("bindings/java/version.properties") +
Dir.glob("include/*.h") +
Dir.glob("src/**/*.[ch]")
end
Rake::GemPackageTask.new(spec) do |pkg|
pkg.gem_spec = spec
end
task :make_spec do
File.open("#{GEM}.gemspec", "w") do |file|
file.puts spec.to_ruby
end
end
def in_ext()
ext = 'bindings/ruby'
Dir.chdir(ext) if File.directory? ext
end
desc 'Build sigar extension'
task :build do
in_ext();
unless system("ruby extconf.rb")
STDERR.puts "Failed to configure"
break
end
unless system(MAKE)
STDERR.puts 'Failed to ' + MAKE
break
end
end
desc 'Clean sigar extension'
task :clean do
in_ext()
system(MAKE + ' clean')
end
desc 'Dist Clean sigar extension'
task :distclean do
in_ext()
system(MAKE + ' distclean')
end
desc 'Run sigar examples (test)'
task :examples => [:build] do
in_ext()
Dir["examples/*.rb"].each do |file|
cmd = "ruby #{file}"
print cmd + "\n"
system(cmd)
end
end