Updated for new smart object API.
[ruby-evas.git] / Rakefile
1 require "rake/clean"
2 require "rake/testtask"
3 require "rake/rdoctask"
4 require "rake/packagetask"
5 require "rake/contrib/compositepublisher"
6 require "rake/contrib/sshpublisher"
7
8 require "rake/configuretask"
9 require "rake/extensiontask"
10
11 PKG_NAME = "ruby-evas"
12
13 ext_objs = [
14         :rb_evas, :rb_evas_main, :rb_evas_object, :rb_evas_object_events,
15         :rb_gradient, :rb_image, :rb_line, :rb_polygon, :rb_rectangle,
16         :rb_smart, :rb_text
17 ]
18
19 task :default => [:ext]
20
21 config = Rake::ConfigureTask.new do |t|
22         t.tests << Rake::ConfigureTask::
23                    PkgConfigTest.new("evas", :is_critical => true)
24 end
25
26 task :ext => [:pre_ext]
27
28 ext = Rake::ExtensionTask.new :ext => ext_objs do |t|
29         t.dir = "src"
30         t.lib_name = "#{t.dir}/evas.so"
31 end
32
33 task :pre_ext => [:configure] do
34         ext.link_libs << config.evas.libs
35
36         cflags = [
37                 ext.env[:cflags],
38                 config.evas.cflags
39         ]
40
41         ext.env.update(:cflags => cflags)
42 end
43
44 task :install => [:ext] do |t|
45         destdir = "#{ENV["DESTDIR"]}"
46         sitearchdir = ENV["RUBYARCHDIR"] || Config::CONFIG['sitearchdir']
47
48         ddir = destdir + sitearchdir
49         FileUtils::Verbose.mkdir_p(ddir) unless File.directory?(ddir)
50         FileUtils::Verbose.install(ext.lib_name, ddir, :mode => 0755)
51
52         ddir = destdir + sitearchdir + "/evas"
53         FileUtils::Verbose.mkdir_p(ddir) unless File.directory?(ddir)
54
55         headers = ["src/rb_evas.h", "src/rb_evas_object.h"]
56         FileUtils::Verbose.install(headers, ddir, :mode => 0644)
57 end
58
59 Rake::RDocTask.new do |t|
60         t.rdoc_dir = "doc"
61         t.title = "ruby-evas -- Ruby bindings for Evas"
62         t.options = ["--line-numbers", "--inline-source", "--main", "README"]
63         t.rdoc_files = FileList[
64                 "AUTHORS", "COPYING", "README",
65                 "src/rb_evas.c", "src/rb_evas_main.c", "src/rb_evas_object.c",
66                 "src/rb_evas_object_events.c", "src/rb_gradient.c",
67                 "src/rb_image.c", "src/rb_line.c", "src/rb_polygon.c",
68                 "src/rb_rectangle.c", "src/rb_smart.c", "src/rb_text.c"
69         ]
70 end
71
72 task :publish => [:rdoc] do
73         p = Rake::CompositePublisher.new
74         p.add(Rake::SshFreshDirPublisher.new("code-monkey.de",
75                                              "public_docs/" +
76                                              PKG_NAME, "doc"))
77         p.upload
78 end