pixbufutils 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,4 @@
1
+ pixbufutils
2
+ ===========
3
+
4
+ gdk-pixbuf related utils for ruby
data/Rakefile ADDED
@@ -0,0 +1,48 @@
1
+ require 'rubygems'
2
+ gem 'rake-compiler'
3
+ require 'rake/extensiontask'
4
+ BASE_DIR = Dir.pwd
5
+ require 'rubygems/package_task'
6
+ require 'rake/testtask'
7
+
8
+ exts = []
9
+
10
+ namespace :prepare do
11
+ FileList["ext/*/*.cr"].each do |cr|
12
+ dir = File.dirname(cr)
13
+ name = File.basename(dir)
14
+ desc "Generate source for #{name}"
15
+ task(name.intern) do
16
+ sh 'rubber-generate', '--build-dir', dir, cr
17
+ end
18
+ end
19
+ end
20
+
21
+ spec = Gem::Specification.new do |s|
22
+ s.name = "pixbufutils"
23
+ s.author = "Geoff Youngs"
24
+ s.email = "git@intersect-uk.co.uk"
25
+ s.version = "0.0.1"
26
+ s.homepage = "http://github.com/geoffyoungs/pixbufutils"
27
+ s.summary = "Additional utils for Gdk::Pixbuf"
28
+ s.add_dependency("rubber-generate", ">= 0.0.17")
29
+ s.add_dependency("glib2", ">= 1.1.6")
30
+ s.add_dependency("gdk_pixbuf2", ">= 1.1.6")
31
+ s.platform = Gem::Platform::RUBY
32
+ s.extensions = FileList["ext/*/extconf.rb"]
33
+ s.files = FileList['ext/*/*.{c,h,cr,rd}'] + ['Rakefile', 'README.md']
34
+ s.description = <<-EOF
35
+ Misc functions for alpha channel extraction, gamma, tinting, masking, blur etc.
36
+ EOF
37
+ end
38
+ Gem::PackageTask.new(spec) do |pkg|
39
+ pkg.need_tar = true
40
+ end
41
+ Rake::ExtensionTask.new("pixbufutils", spec)
42
+
43
+ Rake::TestTask.new do |t|
44
+ t.test_files = FileList['test/*_test.rb']
45
+ end
46
+
47
+ task :default, :compile
48
+
@@ -0,0 +1,109 @@
1
+ require 'mkmf'
2
+ use_gems = false
3
+ begin
4
+ require 'mkmf-gnome2'
5
+ rescue LoadError
6
+ use_gems = true
7
+ end
8
+
9
+ if use_gems or Object.const_defined?('Gem')
10
+ require 'rubygems'
11
+ gem 'glib2'
12
+ require 'mkmf-gnome2'
13
+ %w[rbglib.h rbgtk.h rbpango.h rbatk.h].each do |header|
14
+ Gem.find_files(header).each do |f|
15
+ $CFLAGS += " '-I#{File.dirname(f)}'"
16
+ end
17
+ end
18
+ end
19
+ # Look for headers in {gem_root}/ext/{package}
20
+ if use_gems
21
+ %w[
22
+ glib2 ].each do |package|
23
+ require package
24
+ $CFLAGS += " -I"+Gem.loaded_specs[package].full_gem_path+"/ext/"+package
25
+ end
26
+ end
27
+ if RbConfig::CONFIG.has_key?('rubyhdrdir')
28
+ $CFLAGS += " -I" + RbConfig::CONFIG['rubyhdrdir']+'/ruby'
29
+ end
30
+
31
+ $CFLAGS += " -I."
32
+ have_func("rb_errinfo")
33
+ PKGConfig.have_package("gdk-pixbuf-2.0") or exit(-1)
34
+ PKGConfig.have_package("gdk-2.0") or exit(-1)
35
+ have_header("gdk-pixbuf/gdk-pixbuf.h") or exit(-1)
36
+ have_header("rbglib.h") or exit(-1)
37
+ have_header("rbgobject.h") or exit(-1)
38
+ have_header("tiffio.h") or exit(-1)
39
+ have_header("gdk/gdk.h") or exit(-1)
40
+ have_library("tiff") or exit(-1)
41
+ $LIBS += " -ltiff"
42
+
43
+ STDOUT.print("checking for new allocation framework... ") # for ruby-1.7
44
+ if Object.respond_to? :allocate
45
+ STDOUT.print "yes
46
+ "
47
+ $defs << "-DHAVE_OBJECT_ALLOCATE"
48
+ else
49
+ STDOUT.print "no
50
+ "
51
+ end
52
+
53
+ top = File.expand_path(File.dirname(__FILE__) + '/..') # XXX
54
+ $CFLAGS += " " + ['glib/src'].map{|d|
55
+ "-I" + File.join(top, d)
56
+ }.join(" ")
57
+
58
+ have_func("rb_define_alloc_func") # for ruby-1.8
59
+
60
+ #set_output_lib('libruby-pixbufutils.a')
61
+ if /cygwin|mingw/ =~ RUBY_PLATFORM
62
+ top = "../.."
63
+ [
64
+ ["glib/src", "ruby-glib2"],
65
+ ].each{|d,l|
66
+ $LDFLAGS << sprintf(" -L%s/%s", top, d)
67
+ $libs << sprintf(" -l%s", l)
68
+ }
69
+ end
70
+ begin
71
+ srcdir = File.expand_path(File.dirname($0))
72
+
73
+ begin
74
+
75
+ obj_ext = "."+$OBJEXT
76
+
77
+ $libs = $libs.split(/ /).uniq.join(' ')
78
+ $source_files = Dir.glob(sprintf("%s/*.c", srcdir)).map{|fname|
79
+ fname[0, srcdir.length+1] = ''
80
+ fname
81
+ }
82
+ $objs = $source_files.collect do |item|
83
+ item.gsub(/.c$/, obj_ext)
84
+ end
85
+
86
+ #
87
+ # create Makefile
88
+ #
89
+ $defs << "-DRUBY_PIXBUFUTILS_COMPILATION"
90
+ # $CFLAGS << $defs.join(' ')
91
+ create_makefile("pixbufutils", srcdir)
92
+ raise Interrupt if not FileTest.exist? "Makefile"
93
+
94
+ File.open("Makefile", "a") do |mfile|
95
+ $source_files.each do |e|
96
+ mfile.print sprintf("%s: %s
97
+ ", e.gsub(/.c$/, obj_ext), e)
98
+ end
99
+ end
100
+ ensure
101
+ #Dir.chdir ".."
102
+ end
103
+
104
+ #create_top_makefile()
105
+ rescue Interrupt
106
+ print " [error] " + $!.to_s + "
107
+ "
108
+ end
109
+