libyajl2 0.1.16 → 0.1.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +6 -0
- data/Rakefile +14 -5
- data/ext/libyajl2/extconf.rb +58 -25
- data/lib/libyajl2/version.rb +1 -1
- data/libyajl2.gemspec +2 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0222174194de7fe3d97647c4ae36f05291600292
|
4
|
+
data.tar.gz: aee3ce42d2dbea873ca1ebb679fe7257d898b249
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db3188ee1f24819652ffd52f796010765ff3c1ae6b7cbbfbe5e6146a7d4cf2b123da86cb54826034ee3a51d2d5314c8dc7c94137417188ef0adebb40c60fe6b0
|
7
|
+
data.tar.gz: 526218da5db57efc70c19853f42b3ce8773475703f83f12ca244fc28e8ee2a9d931d81bdc62a49977ef5d2e9672da9db550c8cfb3d41be5d92427c35f7fddec4
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -84,12 +84,12 @@ task :prep do
|
|
84
84
|
FileUtils.cp Dir["#{vendor_src_path}/*.h"], build_path
|
85
85
|
|
86
86
|
# the *.c files need api/yajl_foo.h headers
|
87
|
-
Dir.mkdir "#{build_path}/api" unless
|
87
|
+
Dir.mkdir "#{build_path}/api" unless File.exist?("#{build_path}/api")
|
88
88
|
FileUtils.cp Dir["#{vendor_src_path}/api/*.h"], "#{build_path}/api"
|
89
89
|
|
90
90
|
# the header files need yajl/yajl_foo.h headers (and windows symlinks
|
91
91
|
# are a bit of a PITA so just copy them all)
|
92
|
-
Dir.mkdir "#{build_path}/yajl" unless
|
92
|
+
Dir.mkdir "#{build_path}/yajl" unless File.exist?("#{build_path}/yajl")
|
93
93
|
FileUtils.cp Dir["#{vendor_src_path}/api/*.h"], "#{build_path}/yajl"
|
94
94
|
|
95
95
|
# apply patches that haven't yet been pushed upstream
|
@@ -102,6 +102,15 @@ task :prep do
|
|
102
102
|
generate_yajl_version
|
103
103
|
end
|
104
104
|
|
105
|
+
desc "Deploy headers (for after compile)"
|
106
|
+
task :headers do
|
107
|
+
include_path = File.expand_path("../lib/libyajl2/vendored-libyajl2/include/yajl", __FILE__)
|
108
|
+
build_path = File.expand_path("../ext/libyajl2", __FILE__)
|
109
|
+
|
110
|
+
FileUtils.mkdir_p(include_path)
|
111
|
+
FileUtils.cp Dir["#{build_path}/api/*.h"], include_path
|
112
|
+
end
|
113
|
+
|
105
114
|
#
|
106
115
|
# FIXME: need a rake task to update the git submodule and need to do that before shipping
|
107
116
|
#
|
@@ -205,9 +214,9 @@ desc 'Run all style checks'
|
|
205
214
|
task :style => ['style:rubocop', 'style:reek']
|
206
215
|
|
207
216
|
desc 'Run style + spec tests by default on travis'
|
208
|
-
task :travis => ['
|
217
|
+
task :travis => ['spec', 'style']
|
209
218
|
|
210
219
|
desc 'Run style, spec and test kichen on travis'
|
211
|
-
task :travis_all => ['
|
220
|
+
task :travis_all => ['spec', 'integration:cloud', 'style']
|
212
221
|
|
213
|
-
task :default => ['
|
222
|
+
task :default => ['spec', 'integration:vagrant', 'style']
|
data/ext/libyajl2/extconf.rb
CHANGED
@@ -2,7 +2,6 @@ exit(0) if ENV["USE_SYSTEM_LIBYAJL2"]
|
|
2
2
|
|
3
3
|
require 'rbconfig'
|
4
4
|
require 'fileutils'
|
5
|
-
require 'mkmf'
|
6
5
|
|
7
6
|
module Libyajl2Build
|
8
7
|
class BuildError < StandardError; end
|
@@ -23,6 +22,10 @@ module Libyajl2Build
|
|
23
22
|
PREFIX
|
24
23
|
end
|
25
24
|
|
25
|
+
def self.deps
|
26
|
+
require 'mkmf'
|
27
|
+
end
|
28
|
+
|
26
29
|
def self.setup_env
|
27
30
|
RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC']
|
28
31
|
|
@@ -42,36 +45,65 @@ module Libyajl2Build
|
|
42
45
|
end
|
43
46
|
|
44
47
|
def self.makemakefiles
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
end
|
48
|
+
if RUBY_PLATFORM == "java"
|
49
|
+
File.open("Makefile", "w+") do |f|
|
50
|
+
f.write <<EOF
|
51
|
+
CC = gcc
|
52
|
+
TARGET = libyajl
|
53
|
+
DLLIB = $(TARGET).so
|
54
|
+
CFLAGS = -I. -I../../../../ext/libyajl2 -fPIC -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -fPIC -std=c99 -pedantic -Wpointer-arith -Wno-format-y2k -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -Wextra -Wundef -Wwrite-strings -Wold-style-definition -Wredundant-decls -Wno-unused-parameter -Wno-sign-compare -Wmissing-prototypes -O2 -DNDEBUG
|
55
|
+
LDFLAGS = -L. -fstack-protector -rdynamic -Wl,-export-dynamic
|
56
|
+
LIBS = -lpthread -ldl -lcrypt -lm -lc
|
57
|
+
OBJS = yajl_alloc.o yajl_tree.o yajl_gen.o yajl_buf.o yajl.o yajl_encode.o yajl_lex.o yajl_parser.o yajl_version.o
|
56
58
|
|
57
|
-
|
58
|
-
system("make V=1")
|
59
|
-
# ...so we can hack up what install does later and copy over the include files
|
59
|
+
all: $(DLLIB)
|
60
60
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
61
|
+
$(DLLIB): $(OBJS)
|
62
|
+
\t$(CC) -shared -o $(DLLIB) $(OBJS) $(LDFLAGS) $(LIBS)
|
63
|
+
|
64
|
+
%.o: ../../../../ext/libyajl2/%.c
|
65
|
+
\t$(COMPILE.c) $(OUTPUT_OPTION) $<
|
65
66
|
|
66
|
-
|
67
|
-
|
67
|
+
install:
|
68
|
+
\tmkdir -p #{prefix}/lib
|
69
|
+
\tcp $(DLLIB) #{prefix}/lib/$(DLLIB)
|
70
|
+
\tmkdir -p #{prefix}/include/yajl
|
71
|
+
\tcp yajl/*.h #{prefix}/include/yajl
|
72
|
+
EOF
|
73
|
+
end
|
74
|
+
else
|
75
|
+
deps
|
76
|
+
setup_env
|
77
|
+
dir_config("libyajl")
|
78
|
+
create_makefile("libyajl")
|
79
|
+
|
80
|
+
# on windows the Makefile will try to export Init_libyajl which is wrong because we aren't a ruby lib.
|
81
|
+
# i could not figure out how to tell mkmf.rb to stop being so helpful, so instead will just patch it here.
|
82
|
+
if windows?
|
83
|
+
makefile = IO.read("Makefile")
|
84
|
+
makefile.gsub!(/\$\(DEFFILE\)/, '')
|
85
|
+
File.open("Makefile", 'w+') {|f| f.write(makefile) }
|
86
|
+
end
|
87
|
+
|
88
|
+
system("pwd")
|
89
|
+
# we cheat and build it right away...
|
90
|
+
system("make >make.out 2>&1") || raise # rubinius doesn't like the output this generates
|
91
|
+
# ...so we can hack up what install does later and copy over the include files
|
92
|
+
|
93
|
+
# not sure why ruby windows produces .so's instead of .dll's
|
94
|
+
if windows?
|
95
|
+
FileUtils.mv "libyajl.so", "yajl.dll"
|
96
|
+
end
|
97
|
+
|
98
|
+
File.open("Makefile", "w+") do |f|
|
99
|
+
f.write <<EOF
|
68
100
|
TARGET = libyajl
|
69
101
|
DLLIB = $(TARGET).#{RbConfig::MAKEFILE_CONFIG['DLEXT']}
|
70
102
|
all:
|
71
103
|
|
72
104
|
EOF
|
73
|
-
|
74
|
-
|
105
|
+
if windows?
|
106
|
+
f.write <<EOF
|
75
107
|
install:
|
76
108
|
\tmkdir -p #{prefix}/lib
|
77
109
|
\tcp yajl.dll #{prefix}/lib/yajl.dll
|
@@ -80,14 +112,15 @@ install:
|
|
80
112
|
\tmkdir -p #{prefix}/include/yajl
|
81
113
|
\tcp yajl/*.h #{prefix}/include/yajl
|
82
114
|
EOF
|
83
|
-
|
84
|
-
|
115
|
+
else
|
116
|
+
f.write <<EOF
|
85
117
|
install:
|
86
118
|
\tmkdir -p #{prefix}/lib
|
87
119
|
\tcp $(DLLIB) #{prefix}/lib/$(DLLIB)
|
88
120
|
\tmkdir -p #{prefix}/include/yajl
|
89
121
|
\tcp yajl/*.h #{prefix}/include/yajl
|
90
122
|
EOF
|
123
|
+
end
|
91
124
|
end
|
92
125
|
end
|
93
126
|
end
|
data/lib/libyajl2/version.rb
CHANGED
data/libyajl2.gemspec
CHANGED
@@ -24,7 +24,8 @@ Gem::Specification.new do |spec|
|
|
24
24
|
# required for 'rake spec'
|
25
25
|
spec.add_development_dependency "bundler"
|
26
26
|
spec.add_development_dependency "rake"
|
27
|
-
|
27
|
+
# rake-compiler 0.9.2 is required for rbx compiles, and in turn requires rubygems >= 1.8.25
|
28
|
+
spec.add_development_dependency "rake-compiler", "~> 0.9"
|
28
29
|
# pin mime-types in order to work on ruby 1.8.7
|
29
30
|
spec.add_development_dependency "mime-types", "~> 1.16"
|
30
31
|
spec.add_development_dependency "rspec", "~> 2.14"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libyajl2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lamont-granquist
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05
|
11
|
+
date: 2014-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: '0.9'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: '0.9'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: mime-types
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|