proj4rb 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/{README → README.rdoc} +0 -0
- data/Rakefile +72 -0
- data/ext/Makefile +212 -0
- data/ext/mkmf.log +25 -0
- data/ext/projrb.c +1 -1
- metadata +58 -20
- data/ext/mingw/rakefile.rb +0 -38
- data/rakefile.rb +0 -130
data/{README → README.rdoc}
RENAMED
File without changes
|
data/Rakefile
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "rubygems"
|
4
|
+
require "rake/extensiontask"
|
5
|
+
require "rake/testtask"
|
6
|
+
require "rubygems/package_task"
|
7
|
+
require "rdoc/task"
|
8
|
+
require "yaml"
|
9
|
+
|
10
|
+
# Read the spec file
|
11
|
+
GEM_NAME = "proj4rb"
|
12
|
+
SO_NAME = "proj4_ruby"
|
13
|
+
spec = Gem::Specification.load("#{GEM_NAME}.gemspec")
|
14
|
+
|
15
|
+
# Setup compile tasks
|
16
|
+
Rake::ExtensionTask.new do |ext|
|
17
|
+
ext.gem_spec = spec
|
18
|
+
ext.name = SO_NAME
|
19
|
+
ext.ext_dir = "ext"
|
20
|
+
ext.lib_dir = "lib/#{RUBY_VERSION.sub(/\.\d$/, '')}"
|
21
|
+
ext.config_options << "--with-proj-dir=C:/MinGW/local"
|
22
|
+
end
|
23
|
+
|
24
|
+
# Setup generic gem
|
25
|
+
Gem::PackageTask.new(spec) do |pkg|
|
26
|
+
pkg.package_dir = 'pkg'
|
27
|
+
pkg.need_tar = false
|
28
|
+
end
|
29
|
+
|
30
|
+
# Setup Windows Gem
|
31
|
+
if RUBY_PLATFORM.match(/win32|mingw32/)
|
32
|
+
binaries = (FileList['lib/**/*.so',
|
33
|
+
'lib/**/*dll'])
|
34
|
+
|
35
|
+
# Windows specification
|
36
|
+
win_spec = spec.clone
|
37
|
+
win_spec.instance_variable_set(:@cache_file, nil)
|
38
|
+
win_spec.platform = Gem::Platform::CURRENT
|
39
|
+
win_spec.files += binaries.to_a
|
40
|
+
|
41
|
+
# Unset extensions
|
42
|
+
win_spec.extensions = nil
|
43
|
+
|
44
|
+
# Rake task to build the windows package
|
45
|
+
Gem::PackageTask.new(win_spec) do |pkg|
|
46
|
+
pkg.package_dir = 'pkg'
|
47
|
+
pkg.need_tar = false
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# RDoc Task
|
52
|
+
desc "Generate rdoc documentation"
|
53
|
+
RDoc::Task.new("rdoc") do |rdoc|
|
54
|
+
rdoc.rdoc_dir = 'doc'
|
55
|
+
rdoc.title = "Proj4rb"
|
56
|
+
# Show source inline with line numbers
|
57
|
+
rdoc.options << "--line-numbers"
|
58
|
+
# Make the readme file the start page for the generated html
|
59
|
+
rdoc.main = 'README.rdoc'
|
60
|
+
rdoc.rdoc_files.include('doc/*.rdoc',
|
61
|
+
'ext/projrb.c',
|
62
|
+
'README',
|
63
|
+
'proj4rb.gemspec',
|
64
|
+
'Changelog',
|
65
|
+
'MIT-LICENSE')
|
66
|
+
end
|
67
|
+
|
68
|
+
# Test Task
|
69
|
+
Rake::TestTask.new do |t|
|
70
|
+
t.libs << "test"
|
71
|
+
t.verbose = true
|
72
|
+
end
|
data/ext/Makefile
ADDED
@@ -0,0 +1,212 @@
|
|
1
|
+
|
2
|
+
SHELL = /bin/sh
|
3
|
+
|
4
|
+
# V=0 quiet, V=1 verbose. other values don't work.
|
5
|
+
V = 0
|
6
|
+
Q1 = $(V:1=)
|
7
|
+
Q = $(Q1:0=@)
|
8
|
+
ECHO1 = $(V:1=@:)
|
9
|
+
ECHO = $(ECHO1:0=@echo)
|
10
|
+
|
11
|
+
#### Start of system configuration section. ####
|
12
|
+
|
13
|
+
srcdir = .
|
14
|
+
topdir = /c/MinGW/local/ruby/include/ruby-1.9.1
|
15
|
+
hdrdir = /c/MinGW/local/ruby/include/ruby-1.9.1
|
16
|
+
arch_hdrdir = c:/MinGW/local/ruby/include/ruby-1.9.1/$(arch)
|
17
|
+
VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
|
18
|
+
|
19
|
+
DESTDIR = c:
|
20
|
+
prefix = $(DESTDIR)/MinGW/local/ruby
|
21
|
+
rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
|
22
|
+
exec_prefix = $(prefix)
|
23
|
+
vendorhdrdir = $(rubyhdrdir)/vendor_ruby
|
24
|
+
sitehdrdir = $(rubyhdrdir)/site_ruby
|
25
|
+
rubyhdrdir = $(includedir)/$(RUBY_BASE_NAME)-$(ruby_version)
|
26
|
+
vendordir = $(rubylibprefix)/vendor_ruby
|
27
|
+
sitedir = $(rubylibprefix)/site_ruby
|
28
|
+
ridir = $(datarootdir)/$(RI_BASE_NAME)
|
29
|
+
mandir = $(datarootdir)/man
|
30
|
+
localedir = $(datarootdir)/locale
|
31
|
+
libdir = $(exec_prefix)/lib
|
32
|
+
psdir = $(docdir)
|
33
|
+
pdfdir = $(docdir)
|
34
|
+
dvidir = $(docdir)
|
35
|
+
htmldir = $(docdir)
|
36
|
+
infodir = $(datarootdir)/info
|
37
|
+
docdir = $(datarootdir)/doc/$(PACKAGE)
|
38
|
+
oldincludedir = $(DESTDIR)/usr/include
|
39
|
+
includedir = $(prefix)/include
|
40
|
+
localstatedir = $(prefix)/var
|
41
|
+
sharedstatedir = $(prefix)/com
|
42
|
+
sysconfdir = $(prefix)/etc
|
43
|
+
datadir = $(datarootdir)
|
44
|
+
datarootdir = $(prefix)/share
|
45
|
+
libexecdir = $(exec_prefix)/libexec
|
46
|
+
sbindir = $(exec_prefix)/sbin
|
47
|
+
bindir = $(exec_prefix)/bin
|
48
|
+
rubylibdir = $(rubylibprefix)/$(ruby_version)
|
49
|
+
archdir = $(rubylibdir)/$(arch)
|
50
|
+
sitelibdir = $(sitedir)/$(ruby_version)
|
51
|
+
sitearchdir = $(sitelibdir)/$(sitearch)
|
52
|
+
vendorlibdir = $(vendordir)/$(ruby_version)
|
53
|
+
vendorarchdir = $(vendorlibdir)/$(sitearch)
|
54
|
+
|
55
|
+
CC = gcc
|
56
|
+
CXX = g++
|
57
|
+
LIBRUBY = lib$(RUBY_SO_NAME).dll.a
|
58
|
+
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
|
59
|
+
LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
|
60
|
+
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
|
61
|
+
OUTFLAG = -o
|
62
|
+
COUTFLAG = -o
|
63
|
+
|
64
|
+
RUBY_EXTCONF_H =
|
65
|
+
cflags = $(optflags) $(debugflags) $(warnflags)
|
66
|
+
optflags = -O3
|
67
|
+
debugflags = -g
|
68
|
+
warnflags = -Wall -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration
|
69
|
+
CFLAGS = $(cflags)
|
70
|
+
INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
|
71
|
+
DEFS =
|
72
|
+
CPPFLAGS = -DHAVE_PROJ_API_H -Ic:/MinGW/local/include $(DEFS) $(cppflags)
|
73
|
+
CXXFLAGS = $(CFLAGS) $(cxxflags)
|
74
|
+
ldflags = -L. -Lc:/MinGW/local/lib
|
75
|
+
dldflags = -Wl,--enable-auto-image-base,--enable-auto-import $(DEFFILE)
|
76
|
+
ARCH_FLAG =
|
77
|
+
DLDFLAGS = $(ldflags) $(dldflags)
|
78
|
+
LDSHARED = $(CC) -shared $(if $(filter-out -g -g0,$(debugflags)),,-s)
|
79
|
+
LDSHAREDXX = $(CXX) -shared $(if $(filter-out -g -g0,$(debugflags)),,-s)
|
80
|
+
AR = ar
|
81
|
+
EXEEXT = .exe
|
82
|
+
|
83
|
+
RUBY_BASE_NAME = ruby
|
84
|
+
RUBY_INSTALL_NAME = ruby
|
85
|
+
RUBY_SO_NAME = msvcrt-ruby191
|
86
|
+
arch = i386-mingw32
|
87
|
+
sitearch = i386-msvcrt
|
88
|
+
ruby_version = 1.9.1
|
89
|
+
ruby = c:/MinGW/local/ruby/bin/ruby
|
90
|
+
RUBY = $(ruby)
|
91
|
+
RM = rm -f
|
92
|
+
RM_RF = $(RUBY) -run -e rm -- -rf
|
93
|
+
RMDIRS = rmdir --ignore-fail-on-non-empty -p
|
94
|
+
MAKEDIRS = /bin/mkdir -p
|
95
|
+
INSTALL = /bin/install -c
|
96
|
+
INSTALL_PROG = $(INSTALL) -m 0755
|
97
|
+
INSTALL_DATA = $(INSTALL) -m 644
|
98
|
+
COPY = cp
|
99
|
+
|
100
|
+
#### End of system configuration section. ####
|
101
|
+
|
102
|
+
preload =
|
103
|
+
|
104
|
+
libpath = . $(libdir)
|
105
|
+
LIBPATH = -L. -L$(libdir)
|
106
|
+
DEFFILE = $(TARGET)-$(arch).def
|
107
|
+
|
108
|
+
CLEANFILES = mkmf.log $(DEFFILE)
|
109
|
+
DISTCLEANFILES =
|
110
|
+
DISTCLEANDIRS =
|
111
|
+
|
112
|
+
extout =
|
113
|
+
extout_prefix =
|
114
|
+
target_prefix =
|
115
|
+
LOCAL_LIBS =
|
116
|
+
LIBS = $(LIBRUBYARG_SHARED) -lproj -lshell32 -lws2_32 -limagehlp
|
117
|
+
SRCS = projrb.c
|
118
|
+
OBJS = projrb.o
|
119
|
+
TARGET = proj4_ruby
|
120
|
+
DLLIB = $(TARGET).so
|
121
|
+
EXTSTATIC =
|
122
|
+
STATIC_LIB =
|
123
|
+
|
124
|
+
BINDIR = $(bindir)
|
125
|
+
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
|
126
|
+
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
|
127
|
+
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
128
|
+
HDRDIR = $(rubyhdrdir)/ruby$(target_prefix)
|
129
|
+
ARCHHDRDIR = $(rubyhdrdir)/$(arch)/ruby$(target_prefix)
|
130
|
+
|
131
|
+
TARGET_SO = $(DLLIB)
|
132
|
+
CLEANLIBS = $(TARGET).so
|
133
|
+
CLEANOBJS = *.o *.bak
|
134
|
+
|
135
|
+
all: $(DLLIB)
|
136
|
+
static: $(STATIC_LIB)
|
137
|
+
.PHONY: all install static install-so install-rb
|
138
|
+
.PHONY: clean clean-so clean-rb
|
139
|
+
|
140
|
+
clean-rb-default::
|
141
|
+
clean-rb::
|
142
|
+
clean-so::
|
143
|
+
clean: clean-so clean-rb-default clean-rb
|
144
|
+
@-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
|
145
|
+
|
146
|
+
distclean-rb-default::
|
147
|
+
distclean-rb::
|
148
|
+
distclean-so::
|
149
|
+
distclean: clean distclean-so distclean-rb-default distclean-rb
|
150
|
+
@-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
|
151
|
+
@-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
|
152
|
+
@-$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true
|
153
|
+
|
154
|
+
realclean: distclean
|
155
|
+
install: install-so install-rb
|
156
|
+
|
157
|
+
install-so: $(RUBYARCHDIR)
|
158
|
+
install-so: $(RUBYARCHDIR)/$(DLLIB)
|
159
|
+
$(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
|
160
|
+
@-$(MAKEDIRS) $(@D)
|
161
|
+
$(INSTALL_PROG) $(DLLIB) $(@D)
|
162
|
+
install-rb: pre-install-rb install-rb-default
|
163
|
+
install-rb-default: pre-install-rb-default
|
164
|
+
pre-install-rb: Makefile
|
165
|
+
pre-install-rb-default: Makefile
|
166
|
+
pre-install-rb-default:
|
167
|
+
$(ECHO) installing default proj4_ruby libraries
|
168
|
+
$(RUBYARCHDIR):
|
169
|
+
$(Q) $(MAKEDIRS) $@
|
170
|
+
|
171
|
+
site-install: site-install-so site-install-rb
|
172
|
+
site-install-so: install-so
|
173
|
+
site-install-rb: install-rb
|
174
|
+
|
175
|
+
.SUFFIXES: .c .m .cc .mm .cxx .cpp .o
|
176
|
+
|
177
|
+
.cc.o:
|
178
|
+
$(ECHO) compiling $(<)
|
179
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
180
|
+
|
181
|
+
.mm.o:
|
182
|
+
$(ECHO) compiling $(<)
|
183
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
184
|
+
|
185
|
+
.cxx.o:
|
186
|
+
$(ECHO) compiling $(<)
|
187
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
188
|
+
|
189
|
+
.cpp.o:
|
190
|
+
$(ECHO) compiling $(<)
|
191
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
192
|
+
|
193
|
+
.c.o:
|
194
|
+
$(ECHO) compiling $(<)
|
195
|
+
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
|
196
|
+
|
197
|
+
.m.o:
|
198
|
+
$(ECHO) compiling $(<)
|
199
|
+
$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
|
200
|
+
|
201
|
+
$(DLLIB): $(DEFFILE) $(OBJS) Makefile
|
202
|
+
$(ECHO) linking shared-object $(DLLIB)
|
203
|
+
@-$(RM) $(@)
|
204
|
+
$(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
$(DEFFILE):
|
209
|
+
$(ECHO) generating $(@)
|
210
|
+
$(Q) $(RUBY) -e "puts 'EXPORTS', '' + 'Init_$(TARGET)'.sub(/\..*\z/,'')" > $@
|
211
|
+
|
212
|
+
$(OBJS): $(hdrdir)/ruby.h $(hdrdir)/ruby/defines.h $(arch_hdrdir)/ruby/config.h
|
data/ext/mkmf.log
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
have_header: checking for proj_api.h... -------------------- no
|
2
|
+
|
3
|
+
"gcc -o conftest -Ic:/MinGW/local/ruby/include/ruby-1.9.1/i386-mingw32 -Ic:/MinGW/local/ruby/include/ruby-1.9.1/ruby/backward -Ic:/MinGW/local/ruby/include/ruby-1.9.1 -I. -O3 -g -Wall -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-long-long conftest.c -L. -Lc:/MinGW/local/ruby/lib -L. -lmsvcrt-ruby191-static -lshell32 -lws2_32 "
|
4
|
+
checked program was:
|
5
|
+
/* begin */
|
6
|
+
1: #include "ruby.h"
|
7
|
+
2:
|
8
|
+
3: #include <winsock2.h>
|
9
|
+
4: #include <windows.h>
|
10
|
+
5: int main() {return 0;}
|
11
|
+
/* end */
|
12
|
+
|
13
|
+
"gcc -E -Ic:/MinGW/local/ruby/include/ruby-1.9.1/i386-mingw32 -Ic:/MinGW/local/ruby/include/ruby-1.9.1/ruby/backward -Ic:/MinGW/local/ruby/include/ruby-1.9.1 -I. -O3 -g -Wall -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-long-long conftest.c -o conftest.i"
|
14
|
+
conftest.c:5:22: proj_api.h: No such file or directory
|
15
|
+
checked program was:
|
16
|
+
/* begin */
|
17
|
+
1: #include "ruby.h"
|
18
|
+
2:
|
19
|
+
3: #include <winsock2.h>
|
20
|
+
4: #include <windows.h>
|
21
|
+
5: #include <proj_api.h>
|
22
|
+
/* end */
|
23
|
+
|
24
|
+
--------------------
|
25
|
+
|
data/ext/projrb.c
CHANGED
@@ -73,7 +73,7 @@ static VALUE proj_error_message(VALUE self, VALUE rerrno) {
|
|
73
73
|
static VALUE proj_initialize(VALUE self, VALUE params){
|
74
74
|
_wrap_pj* wpj;
|
75
75
|
VALUE proj_params = rb_funcall(cProjection, idParseInitParameters, 1, params);
|
76
|
-
int size =
|
76
|
+
int size = RARRAY_LEN(proj_params);
|
77
77
|
char** c_params = (char **) malloc(size*sizeof(char *));
|
78
78
|
int i;
|
79
79
|
|
metadata
CHANGED
@@ -1,29 +1,49 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: proj4rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 15
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 0.4.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Guilhem Vellut
|
14
|
+
- Jochen Topf
|
15
|
+
- Charlie Savage
|
8
16
|
autorequire:
|
9
17
|
bindir: bin
|
10
18
|
cert_chain: []
|
11
19
|
|
12
|
-
date:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
20
|
+
date: 2011-07-30 00:00:00 Z
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
23
|
+
name: rake-compiler
|
24
|
+
prerelease: false
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 3
|
31
|
+
segments:
|
32
|
+
- 0
|
33
|
+
version: "0"
|
34
|
+
type: :development
|
35
|
+
version_requirements: *id001
|
36
|
+
description: " Proj4rb is a ruby binding for the Proj.4 Carthographic Projection library, that supports conversions between a very large number of geographic coordinate systems and datumspec.\n"
|
37
|
+
email:
|
18
38
|
executables: []
|
19
39
|
|
20
40
|
extensions:
|
21
41
|
- ext/extconf.rb
|
22
|
-
extra_rdoc_files:
|
23
|
-
|
42
|
+
extra_rdoc_files: []
|
43
|
+
|
24
44
|
files:
|
25
|
-
-
|
26
|
-
- README
|
45
|
+
- Rakefile
|
46
|
+
- README.rdoc
|
27
47
|
- MIT-LICENSE
|
28
48
|
- data/conus
|
29
49
|
- data/epsg
|
@@ -57,37 +77,55 @@ files:
|
|
57
77
|
- example/list-units.rb
|
58
78
|
- example/version.rb
|
59
79
|
- ext/extconf.rb
|
80
|
+
- ext/Makefile
|
81
|
+
- ext/mkmf.log
|
60
82
|
- ext/projrb.c
|
61
|
-
- ext/mingw/rakefile.rb
|
62
83
|
- ext/vc/proj4_ruby.sln
|
63
84
|
- ext/vc/proj4_ruby.vcproj
|
64
85
|
- lib/proj4.rb
|
65
|
-
|
86
|
+
- test/test_constants.rb
|
87
|
+
- test/test_create_projection.rb
|
88
|
+
- test/test_datums.rb
|
89
|
+
- test/test_ellipsoids.rb
|
90
|
+
- test/test_errors.rb
|
91
|
+
- test/test_init_projection.rb
|
92
|
+
- test/test_prime_meridians.rb
|
93
|
+
- test/test_projection_type.rb
|
94
|
+
- test/test_simple_projection.rb
|
95
|
+
- test/test_transform.rb
|
96
|
+
- test/test_units.rb
|
66
97
|
homepage: http://proj4rb.rubyforge.org/
|
67
98
|
licenses: []
|
68
99
|
|
69
100
|
post_install_message:
|
70
|
-
rdoc_options:
|
71
|
-
|
72
|
-
- README
|
101
|
+
rdoc_options: []
|
102
|
+
|
73
103
|
require_paths:
|
74
104
|
- lib
|
75
105
|
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
76
107
|
requirements:
|
77
108
|
- - ">="
|
78
109
|
- !ruby/object:Gem::Version
|
79
|
-
|
80
|
-
|
110
|
+
hash: 57
|
111
|
+
segments:
|
112
|
+
- 1
|
113
|
+
- 8
|
114
|
+
- 7
|
115
|
+
version: 1.8.7
|
81
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
82
118
|
requirements:
|
83
119
|
- - ">="
|
84
120
|
- !ruby/object:Gem::Version
|
121
|
+
hash: 3
|
122
|
+
segments:
|
123
|
+
- 0
|
85
124
|
version: "0"
|
86
|
-
version:
|
87
125
|
requirements:
|
88
126
|
- Proj.4 C library
|
89
127
|
rubyforge_project: proj4rb
|
90
|
-
rubygems_version: 1.
|
128
|
+
rubygems_version: 1.8.6
|
91
129
|
signing_key:
|
92
130
|
specification_version: 3
|
93
131
|
summary: Ruby bindings for the Proj.4 Carthographic Projection library
|
data/ext/mingw/rakefile.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
# We can't use Ruby's standard build procedures
|
2
|
-
# on Windows because the Ruby executable is
|
3
|
-
# built with VC++ while here we want to build
|
4
|
-
# with MingW. So just roll our own...
|
5
|
-
|
6
|
-
require 'rake/clean'
|
7
|
-
require 'rbconfig'
|
8
|
-
|
9
|
-
RUBY_INCLUDE_DIR = Config::CONFIG["archdir"]
|
10
|
-
RUBY_BIN_DIR = Config::CONFIG["bindir"]
|
11
|
-
RUBY_LIB_DIR = Config::CONFIG["libdir"]
|
12
|
-
RUBY_SHARED_LIB = Config::CONFIG["LIBRUBY"]
|
13
|
-
RUBY_SHARED_DLL = RUBY_SHARED_LIB.gsub(/lib$/, 'dll')
|
14
|
-
|
15
|
-
EXTENSION_NAME = "proj4_ruby.#{Config::CONFIG["DLEXT"]}"
|
16
|
-
|
17
|
-
CLEAN.include('*.o')
|
18
|
-
CLOBBER.include(EXTENSION_NAME)
|
19
|
-
|
20
|
-
task :default => "projrb"
|
21
|
-
|
22
|
-
SRC = FileList['../*.c']
|
23
|
-
OBJ = SRC.collect do |file_name|
|
24
|
-
File.basename(file_name).ext('o')
|
25
|
-
end
|
26
|
-
|
27
|
-
SRC.each do |srcfile|
|
28
|
-
objfile = File.basename(srcfile).ext('o')
|
29
|
-
file objfile => srcfile do
|
30
|
-
command = "gcc -c -fPIC -O2 -Wall -mms-bitfields -o #{objfile} #{srcfile} -I#{RUBY_INCLUDE_DIR} -I/local/include"
|
31
|
-
sh "sh -c '#{command}'"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
file "projrb" => OBJ do
|
36
|
-
command = "gcc -shared -o #{EXTENSION_NAME} #{OBJ} -lproj #{RUBY_BIN_DIR}/#{RUBY_SHARED_DLL} -L/local/lib"
|
37
|
-
sh "sh -c '#{command}'"
|
38
|
-
end
|
data/rakefile.rb
DELETED
@@ -1,130 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake'
|
3
|
-
require 'rake/testtask'
|
4
|
-
require 'rake/rdoctask'
|
5
|
-
require 'rake/gempackagetask'
|
6
|
-
require 'rake/clean'
|
7
|
-
require 'date'
|
8
|
-
require 'ftools'
|
9
|
-
|
10
|
-
CLOBBER.include('pkg/*', 'proj4rb-doc/**/*', 'lib/*.so', 'lib/*.bundle', 'lib/*.dll', 'ext/*.o', 'ext/*.so', 'ext/*.bundle', 'ext/*.dll', 'ext/Makefile', 'ext/mkmf.log')
|
11
|
-
|
12
|
-
desc "Create Makefile"
|
13
|
-
file 'ext/Makefile' => ['ext/extconf.rb'] do
|
14
|
-
sh 'cd ext; ruby extconf.rb'
|
15
|
-
end
|
16
|
-
|
17
|
-
desc "Build from C library"
|
18
|
-
task :build => ['ext/Makefile', 'ext/projrb.c'] do
|
19
|
-
sh 'cd ext; make'
|
20
|
-
end
|
21
|
-
|
22
|
-
# ------- Default Package ----------
|
23
|
-
FILES = FileList[
|
24
|
-
'rakefile.rb',
|
25
|
-
'README',
|
26
|
-
'MIT-LICENSE',
|
27
|
-
'data/**/*',
|
28
|
-
'doc/**/*',
|
29
|
-
'example/**/*',
|
30
|
-
'ext/*',
|
31
|
-
'ext/mingw/rakefile.rb',
|
32
|
-
'ext/vc/*.sln',
|
33
|
-
'ext/vc/*.vcproj',
|
34
|
-
'lib/**/*.rb'
|
35
|
-
]
|
36
|
-
|
37
|
-
# Default GEM Specification
|
38
|
-
default_spec = Gem::Specification::new do |s|
|
39
|
-
s.name = 'proj4rb'
|
40
|
-
s.version = "0.3.1"
|
41
|
-
s.summary = "Ruby bindings for the Proj.4 Carthographic Projection library"
|
42
|
-
s.description = <<-EOF
|
43
|
-
Proj4rb is a ruby binding for the Proj.4 Carthographic Projection library, that supports conversions between a very large number of geographic coordinate systems and datums.
|
44
|
-
EOF
|
45
|
-
s.author = 'Guilhem Vellut'
|
46
|
-
s.email = 'guilhem.vellut@gmail.com'
|
47
|
-
s.homepage = 'http://proj4rb.rubyforge.org/'
|
48
|
-
s.rubyforge_project = 'proj4rb'
|
49
|
-
s.required_ruby_version = '>= 1.8.4'
|
50
|
-
s.date = DateTime.now
|
51
|
-
|
52
|
-
s.platform = Gem::Platform::RUBY
|
53
|
-
s.requirements << 'Proj.4 C library'
|
54
|
-
s.require_path = 'lib'
|
55
|
-
s.extensions = ["ext/extconf.rb"]
|
56
|
-
s.files = FILES.to_a
|
57
|
-
s.test_files = FileList['test/test*.rb']
|
58
|
-
|
59
|
-
s.has_rdoc = true
|
60
|
-
s.extra_rdoc_files = ["README"]
|
61
|
-
s.rdoc_options.concat ['--main', 'README']
|
62
|
-
end
|
63
|
-
|
64
|
-
desc "Package the library as a gem"
|
65
|
-
Rake::GemPackageTask.new(default_spec) do |pkg|
|
66
|
-
# pkg.need_zip = true
|
67
|
-
pkg.need_tar = true
|
68
|
-
end
|
69
|
-
|
70
|
-
|
71
|
-
# ------- Windows Package ----------
|
72
|
-
binaries = (FileList['ext/mingw/*.so',
|
73
|
-
'ext/mingw/*.dll*'])
|
74
|
-
|
75
|
-
win_spec = default_spec.clone
|
76
|
-
win_spec.extensions = []
|
77
|
-
win_spec.platform = Gem::Platform::CURRENT
|
78
|
-
win_spec.files += binaries.map {|binaryname| "lib/#{File.basename(binaryname)}"}
|
79
|
-
|
80
|
-
desc "Create Windows Gem"
|
81
|
-
task :create_win32_gem do
|
82
|
-
# Copy the win32 extension built by MingW - easier to install
|
83
|
-
# since there are no dependencies of msvcr80.dll
|
84
|
-
current_dir = File.expand_path(File.dirname(__FILE__))
|
85
|
-
|
86
|
-
binaries.each do |binaryname|
|
87
|
-
target = File.join(current_dir, 'lib', File.basename(binaryname))
|
88
|
-
cp(binaryname, target)
|
89
|
-
end
|
90
|
-
|
91
|
-
# Create the gem, then move it to admin/pkg
|
92
|
-
Gem::Builder.new(win_spec).build
|
93
|
-
gem_file = "#{win_spec.name}-#{win_spec.version}-#{win_spec.platform}.gem"
|
94
|
-
mv(gem_file, "pkg/#{gem_file}")
|
95
|
-
|
96
|
-
# Remove win extension from top level directory
|
97
|
-
binaries.each do |binaryname|
|
98
|
-
target = File.join(current_dir, 'lib', File.basename(binaryname))
|
99
|
-
rm(target)
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
|
104
|
-
# --------- Test Task ---------
|
105
|
-
Rake::TestTask.new do |t|
|
106
|
-
t.libs << "test"
|
107
|
-
t.libs << "lib"
|
108
|
-
end
|
109
|
-
|
110
|
-
# --------- RDoc Documentation ---------
|
111
|
-
desc "Generate rdoc documentation"
|
112
|
-
Rake::RDocTask.new("rdoc") do |rdoc|
|
113
|
-
rdoc.rdoc_dir = 'doc/rdoc'
|
114
|
-
rdoc.title = "Proj4rb Documentation"
|
115
|
-
# Show source inline with line numbers
|
116
|
-
rdoc.options << "--inline-source" << "--line-numbers"
|
117
|
-
# Make the readme file the start page for the generated html
|
118
|
-
rdoc.options << '--main' << 'README'
|
119
|
-
rdoc.rdoc_files.include('doc/*.rdoc',
|
120
|
-
'ext/**/*.c',
|
121
|
-
'lib/**/*.rb',
|
122
|
-
'README',
|
123
|
-
'MIT-LICENSE')
|
124
|
-
end
|
125
|
-
|
126
|
-
task :default => :package
|
127
|
-
|
128
|
-
if RUBY_PLATFORM.match(/win32/)
|
129
|
-
task :package => :create_win32_gem
|
130
|
-
end
|