[cairo-commit:00107] rcairo/rcairo [master] use packnga.
null+rcairo at clear-code.com
null+rcairo at clear-code.com
Wed Oct 12 08:52:54 EDT 2011
Kouhei Sutou 2011-10-12 12:52:54 +0000 (Wed, 12 Oct 2011)
New Revision: 2567acf1c837e6a7b6d9d8b4c15c9338827af08b
Log:
use packnga.
Added files:
Gemfile
Modified files:
Rakefile
Added: Gemfile (+14 -0) 100644
===================================================================
--- /dev/null
+++ Gemfile 2011-10-12 12:52:54 +0000 (8de5479)
@@ -0,0 +1,14 @@
+# -*- mode: ruby; coding: utf-8 -*-
+
+source "http://rubygems.org/"
+
+group :development, :test do
+ gem 'pkg-config'
+ gem "test-unit"
+ gem "test-unit-notify"
+ gem "rake"
+ gem "rake-compiler"
+ gem "jeweler"
+ gem "yard"
+ gem "packnga"
+end
Modified: Rakefile (+39 -65)
===================================================================
--- Rakefile 2011-10-10 15:06:04 +0000 (e27f184)
+++ Rakefile 2011-10-12 12:52:54 +0000 (d6644f3)
@@ -5,13 +5,13 @@ require 'English'
require 'find'
require 'fileutils'
require 'rubygems'
-require 'hoe'
+require 'rubygems/package_task'
+require 'yard'
+require 'jeweler'
require 'rake/extensiontask'
+require 'packnga'
base_dir = File.join(File.dirname(__FILE__))
-truncate_base_dir = Proc.new do |x|
- x.gsub(/^#{Regexp.escape(base_dir + File::SEPARATOR)}/, '')
-end
cairo_ext_dir = File.join(base_dir, 'ext', 'cairo')
cairo_lib_dir = File.join(base_dir, 'lib')
@@ -24,74 +24,54 @@ def guess_rcairo_version
Cairo.bindings_version
end
-manifest = File.join(base_dir, "Manifest.txt")
-manifest_contents = []
-base_dir_included_components = %w(AUTHORS COPYING ChangeLog GPL
- NEWS README.doc Rakefile
- extconf.rb pkg-config.rb)
-excluded_components = %w(.cvsignore .gdb_history CVS depend Makefile pkg
- .test-result .gitignore .git vendor)
-excluded_suffixes = %w(.png .ps .pdf .o .so .a .txt .~ .log)
-Find.find(base_dir) do |target|
- target = truncate_base_dir[target]
- components = target.split(File::SEPARATOR)
- if components.size == 1 and !File.directory?(target)
- next unless base_dir_included_components.include?(components[0])
- end
- Find.prune if (excluded_components - components) != excluded_components
- next if excluded_suffixes.include?(File.extname(target))
- manifest_contents << target if File.file?(target)
-end
-
-File.open(manifest, "w") do |f|
- f.puts manifest_contents.sort.join("\n")
-end
-
-# For Hoe's no user friendly default behavior. :<
-File.open("README.txt", "w") {|file| file << "= Dummy README\n== XXX\n"}
-FileUtils.cp("NEWS", "History.txt")
-at_exit do
- FileUtils.rm_f("README.txt")
- FileUtils.rm_f("History.txt")
- FileUtils.rm_f(manifest)
-end
-
ENV["VERSION"] ||= guess_rcairo_version
version = ENV["VERSION"].dup
-project = Hoe.spec('cairo') do |project|
- project.version = version
- project.rubyforge_name = 'cairo'
+spec = nil
+Jeweler::Tasks.new do |_spec|
+ spec = _spec
+ spec.name = "cairo"
+ spec.version = version
+ spec.rubyforge_project = 'cairo'
+ spec.homepage = 'http://cairographics.org/rcairo'
authors = File.join(base_dir, "AUTHORS")
- project.author = File.readlines(authors).collect do |line|
+ spec.authors = File.readlines(authors).collect do |line|
if /\s*<[^<>]*>$/ =~ line
$PREMATCH
else
nil
end
end.compact
- project.email = ['cairo at cairographics.org']
- project.summary = 'Ruby bindings for cairo'
- project.url = 'http://cairographics.org/rcairo'
- project.test_globs = []
- project.spec_extras = {
- :extensions => ['ext/cairo/extconf.rb'],
- :require_paths => ['lib'],
- :has_rdoc => false,
- }
- project.extra_dev_deps << ['pkg-config', '>= 0']
- platform = ENV["FORCE_PLATFORM"]
- project.spec_extras[:platform] = platform if platform
- news = File.join(base_dir, "NEWS")
- project.changes = File.read(news).gsub(/\n+^Release(?m:.*)/, '')
- project.description = "Ruby bindings for cairo"
- project.need_tar = false
- project.remote_rdoc_dir = "doc"
+ spec.email = ['cairo at cairographics.org']
+ spec.summary = 'Ruby bindings for cairo'
+ spec.description = "Ruby bindings for cairo"
+ spec.license = "Ruby's"
+ spec.files = FileList["{lib,samples}/**/*.rb",
+ "ext/**/{*.def,depend,*.rb,*.c,*.h}",
+ "AUTHORS", "COPYING", "GPL", "Gemfile",
+ "NEWS", "README.rdoc", "Rakefile"]
+ spec.test_files = FileList["test/**/*.rb"]
+end
+
+Rake::Task["release"].prerequisites.clear
+Jeweler::RubygemsDotOrgTasks.new do
+end
+
+Gem::PackageTask.new(spec) do |pkg|
+ pkg.need_tar_gz = true
end
-project.spec.dependencies.delete_if {|dependency| dependency.name == "hoe"}
+document_task = Packnga::DocumentTask.new(spec) do |t|
+ t.yard do |yard_task|
+ yard_task.files += FileList["ext/**/*.c"]
+ # yard_task.options += ["--markup", "textile"]
+ end
+end
+
+Packnga::ReleaseTask.new(spec) do |task|
+end
binary_dir = File.join("vendor", "local")
-Rake::ExtensionTask.new("cairo", project.spec) do |ext|
+Rake::ExtensionTask.new("cairo", spec) do |ext|
ext.cross_compile = true
ext.cross_compiling do |spec|
if /mingw|mswin/ =~ spec.platform.to_s
@@ -148,12 +128,6 @@ task "download_windows_binaries" do
end
end
-# fix Hoe's incorrect guess.
-project.spec.executables.clear
-
-task(:release).prerequisites.reject! {|name| name == "clean"}
-task(:release_to_rubyforge).prerequisites.reject! {|name| name == "clean"}
-
# for releasing
task :dist => [:docs] do
sh "./dist.sh", version
More information about the cairo-commit
mailing list