[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