ffi-yajl 0.0.1-universal-java → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE +21 -201
  3. data/README.md +105 -10
  4. data/bin/ffi-yajl-bench +11 -11
  5. data/ext/ffi_yajl/ext/dlopen/dlopen.c +40 -0
  6. data/ext/ffi_yajl/ext/dlopen/extconf.rb +16 -0
  7. data/ext/ffi_yajl/ext/dlopen/yajl.sym +18 -0
  8. data/ext/ffi_yajl/ext/encoder/encoder.c +270 -115
  9. data/ext/ffi_yajl/ext/encoder/extconf.rb +71 -14
  10. data/ext/ffi_yajl/ext/parser/extconf.rb +71 -14
  11. data/ext/ffi_yajl/ext/parser/parser.c +85 -44
  12. data/lib/ffi_yajl/benchmark/encode.rb +39 -92
  13. data/lib/ffi_yajl/benchmark/encode_json_and_marshal.rb +23 -23
  14. data/lib/ffi_yajl/benchmark/encode_json_and_yaml.rb +24 -30
  15. data/lib/ffi_yajl/benchmark/encode_profile.rb +15 -19
  16. data/lib/ffi_yajl/benchmark/http.rb +21 -25
  17. data/lib/ffi_yajl/benchmark/parse.rb +77 -117
  18. data/lib/ffi_yajl/benchmark/parse_json_and_marshal.rb +27 -27
  19. data/lib/ffi_yajl/benchmark/parse_json_and_yaml.rb +30 -30
  20. data/lib/ffi_yajl/benchmark/parse_profile.rb +14 -18
  21. data/lib/ffi_yajl/benchmark/parse_profile_ruby_prof.rb +14 -19
  22. data/lib/ffi_yajl/benchmark/parse_stream.rb +28 -28
  23. data/lib/ffi_yajl/benchmark.rb +26 -6
  24. data/lib/ffi_yajl/encoder.rb +47 -6
  25. data/lib/ffi_yajl/ext.rb +37 -10
  26. data/lib/ffi_yajl/ffi/encoder.rb +150 -63
  27. data/lib/ffi_yajl/ffi/parser.rb +82 -64
  28. data/lib/ffi_yajl/ffi.rb +70 -46
  29. data/lib/ffi_yajl/map_library_name.rb +109 -0
  30. data/lib/ffi_yajl/parser.rb +69 -1
  31. data/lib/ffi_yajl/platform.rb +29 -0
  32. data/lib/ffi_yajl/version.rb +23 -1
  33. data/lib/ffi_yajl.rb +44 -8
  34. metadata +25 -238
  35. data/Rakefile +0 -62
  36. data/ext/libyajl2/extconf.rb +0 -65
  37. data/ext/libyajl2/vendored/.git +0 -1
  38. data/ext/libyajl2/vendored/.gitignore +0 -3
  39. data/ext/libyajl2/vendored/BUILDING +0 -23
  40. data/ext/libyajl2/vendored/BUILDING.win32 +0 -27
  41. data/ext/libyajl2/vendored/CMakeLists.txt +0 -79
  42. data/ext/libyajl2/vendored/COPYING +0 -13
  43. data/ext/libyajl2/vendored/ChangeLog +0 -175
  44. data/ext/libyajl2/vendored/README +0 -74
  45. data/ext/libyajl2/vendored/TODO +0 -9
  46. data/ext/libyajl2/vendored/YAJLDoc.cmake +0 -26
  47. data/ext/libyajl2/vendored/configure +0 -79
  48. data/ext/libyajl2/vendored/example/CMakeLists.txt +0 -23
  49. data/ext/libyajl2/vendored/example/README.md +0 -7
  50. data/ext/libyajl2/vendored/example/parse_config.c +0 -69
  51. data/ext/libyajl2/vendored/example/sample.config +0 -101
  52. data/ext/libyajl2/vendored/perf/CMakeLists.txt +0 -23
  53. data/ext/libyajl2/vendored/perf/documents.c +0 -1418
  54. data/ext/libyajl2/vendored/perf/documents.h +0 -28
  55. data/ext/libyajl2/vendored/perf/perftest.c +0 -134
  56. data/ext/libyajl2/vendored/reformatter/CMakeLists.txt +0 -39
  57. data/ext/libyajl2/vendored/reformatter/json_reformat.c +0 -194
  58. data/ext/libyajl2/vendored/src/CMakeLists.txt +0 -86
  59. data/ext/libyajl2/vendored/src/YAJL.dxy +0 -1258
  60. data/ext/libyajl2/vendored/src/api/yajl_common.h +0 -75
  61. data/ext/libyajl2/vendored/src/api/yajl_gen.h +0 -157
  62. data/ext/libyajl2/vendored/src/api/yajl_parse.h +0 -226
  63. data/ext/libyajl2/vendored/src/api/yajl_tree.h +0 -185
  64. data/ext/libyajl2/vendored/src/api/yajl_version.h.cmake +0 -23
  65. data/ext/libyajl2/vendored/src/yajl +0 -33
  66. data/ext/libyajl2/vendored/src/yajl.c +0 -175
  67. data/ext/libyajl2/vendored/src/yajl.pc.cmake +0 -9
  68. data/ext/libyajl2/vendored/src/yajl_alloc.c +0 -52
  69. data/ext/libyajl2/vendored/src/yajl_alloc.h +0 -34
  70. data/ext/libyajl2/vendored/src/yajl_buf.c +0 -103
  71. data/ext/libyajl2/vendored/src/yajl_buf.h +0 -57
  72. data/ext/libyajl2/vendored/src/yajl_bytestack.h +0 -69
  73. data/ext/libyajl2/vendored/src/yajl_encode.c +0 -220
  74. data/ext/libyajl2/vendored/src/yajl_encode.h +0 -34
  75. data/ext/libyajl2/vendored/src/yajl_gen.c +0 -354
  76. data/ext/libyajl2/vendored/src/yajl_lex.c +0 -763
  77. data/ext/libyajl2/vendored/src/yajl_lex.h +0 -117
  78. data/ext/libyajl2/vendored/src/yajl_parser.c +0 -498
  79. data/ext/libyajl2/vendored/src/yajl_parser.h +0 -78
  80. data/ext/libyajl2/vendored/src/yajl_tree.c +0 -503
  81. data/ext/libyajl2/vendored/src/yajl_version.c +0 -7
  82. data/ext/libyajl2/vendored/test/CMakeLists.txt +0 -23
  83. data/ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json +0 -1
  84. data/ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json.gold +0 -36
  85. data/ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json +0 -11
  86. data/ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json.gold +0 -9
  87. data/ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json +0 -1
  88. data/ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json.gold +0 -2
  89. data/ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json +0 -1
  90. data/ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json.gold +0 -2
  91. data/ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json +0 -1
  92. data/ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json.gold +0 -2
  93. data/ext/libyajl2/vendored/test/cases/am_eof.json +0 -1
  94. data/ext/libyajl2/vendored/test/cases/am_eof.json.gold +0 -4
  95. data/ext/libyajl2/vendored/test/cases/am_integers.json +0 -1
  96. data/ext/libyajl2/vendored/test/cases/am_integers.json.gold +0 -3
  97. data/ext/libyajl2/vendored/test/cases/am_multiple.json +0 -3
  98. data/ext/libyajl2/vendored/test/cases/am_multiple.json.gold +0 -5
  99. data/ext/libyajl2/vendored/test/cases/am_stuff.json +0 -7
  100. data/ext/libyajl2/vendored/test/cases/am_stuff.json.gold +0 -14
  101. data/ext/libyajl2/vendored/test/cases/ap_array_open.json +0 -1
  102. data/ext/libyajl2/vendored/test/cases/ap_array_open.json.gold +0 -2
  103. data/ext/libyajl2/vendored/test/cases/ap_eof_str.json +0 -1
  104. data/ext/libyajl2/vendored/test/cases/ap_eof_str.json.gold +0 -1
  105. data/ext/libyajl2/vendored/test/cases/ap_map_open.json +0 -1
  106. data/ext/libyajl2/vendored/test/cases/ap_map_open.json.gold +0 -2
  107. data/ext/libyajl2/vendored/test/cases/ap_partial_ok.json +0 -1
  108. data/ext/libyajl2/vendored/test/cases/ap_partial_ok.json.gold +0 -4
  109. data/ext/libyajl2/vendored/test/cases/array.json +0 -6
  110. data/ext/libyajl2/vendored/test/cases/array.json.gold +0 -22
  111. data/ext/libyajl2/vendored/test/cases/array_close.json +0 -1
  112. data/ext/libyajl2/vendored/test/cases/array_close.json.gold +0 -2
  113. data/ext/libyajl2/vendored/test/cases/bignums.json +0 -1
  114. data/ext/libyajl2/vendored/test/cases/bignums.json.gold +0 -5
  115. data/ext/libyajl2/vendored/test/cases/bogus_char.json +0 -4
  116. data/ext/libyajl2/vendored/test/cases/bogus_char.json.gold +0 -10
  117. data/ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json +0 -1
  118. data/ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json.gold +0 -2
  119. data/ext/libyajl2/vendored/test/cases/deep_arrays.json +0 -1
  120. data/ext/libyajl2/vendored/test/cases/deep_arrays.json.gold +0 -2049
  121. data/ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json +0 -1
  122. data/ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json.gold +0 -36
  123. data/ext/libyajl2/vendored/test/cases/doubles.json +0 -1
  124. data/ext/libyajl2/vendored/test/cases/doubles.json.gold +0 -7
  125. data/ext/libyajl2/vendored/test/cases/doubles_in_array.json +0 -1
  126. data/ext/libyajl2/vendored/test/cases/doubles_in_array.json.gold +0 -8
  127. data/ext/libyajl2/vendored/test/cases/empty_array.json +0 -1
  128. data/ext/libyajl2/vendored/test/cases/empty_array.json.gold +0 -3
  129. data/ext/libyajl2/vendored/test/cases/empty_string.json +0 -1
  130. data/ext/libyajl2/vendored/test/cases/empty_string.json.gold +0 -2
  131. data/ext/libyajl2/vendored/test/cases/escaped_bulgarian.json +0 -4
  132. data/ext/libyajl2/vendored/test/cases/escaped_bulgarian.json.gold +0 -7
  133. data/ext/libyajl2/vendored/test/cases/escaped_foobar.json +0 -1
  134. data/ext/libyajl2/vendored/test/cases/escaped_foobar.json.gold +0 -2
  135. data/ext/libyajl2/vendored/test/cases/false.json +0 -1
  136. data/ext/libyajl2/vendored/test/cases/false.json.gold +0 -2
  137. data/ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json +0 -1
  138. data/ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json.gold +0 -3
  139. data/ext/libyajl2/vendored/test/cases/fg_issue_7.json +0 -1
  140. data/ext/libyajl2/vendored/test/cases/fg_issue_7.json.gold +0 -3
  141. data/ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json +0 -1
  142. data/ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json.gold +0 -3
  143. data/ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json +0 -1
  144. data/ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json.gold +0 -3
  145. data/ext/libyajl2/vendored/test/cases/four_byte_utf8.json +0 -2
  146. data/ext/libyajl2/vendored/test/cases/four_byte_utf8.json.gold +0 -5
  147. data/ext/libyajl2/vendored/test/cases/high_overflow.json +0 -1
  148. data/ext/libyajl2/vendored/test/cases/high_overflow.json.gold +0 -2
  149. data/ext/libyajl2/vendored/test/cases/integers.json +0 -3
  150. data/ext/libyajl2/vendored/test/cases/integers.json.gold +0 -14
  151. data/ext/libyajl2/vendored/test/cases/invalid_utf8.json +0 -1
  152. data/ext/libyajl2/vendored/test/cases/invalid_utf8.json.gold +0 -3
  153. data/ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json +0 -1
  154. data/ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json.gold +0 -2
  155. data/ext/libyajl2/vendored/test/cases/leading_zero_in_number.json +0 -1
  156. data/ext/libyajl2/vendored/test/cases/leading_zero_in_number.json.gold +0 -5
  157. data/ext/libyajl2/vendored/test/cases/lonely_minus_sign.json +0 -7
  158. data/ext/libyajl2/vendored/test/cases/lonely_minus_sign.json.gold +0 -9
  159. data/ext/libyajl2/vendored/test/cases/lonely_number.json +0 -1
  160. data/ext/libyajl2/vendored/test/cases/lonely_number.json.gold +0 -2
  161. data/ext/libyajl2/vendored/test/cases/low_overflow.json +0 -1
  162. data/ext/libyajl2/vendored/test/cases/low_overflow.json.gold +0 -2
  163. data/ext/libyajl2/vendored/test/cases/map_close.json +0 -1
  164. data/ext/libyajl2/vendored/test/cases/map_close.json.gold +0 -2
  165. data/ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json +0 -1
  166. data/ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json.gold +0 -2
  167. data/ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json +0 -1
  168. data/ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json.gold +0 -2
  169. data/ext/libyajl2/vendored/test/cases/multiple.json +0 -3
  170. data/ext/libyajl2/vendored/test/cases/multiple.json.gold +0 -4
  171. data/ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json +0 -1
  172. data/ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json.gold +0 -8
  173. data/ext/libyajl2/vendored/test/cases/np_partial_bad.json +0 -1
  174. data/ext/libyajl2/vendored/test/cases/np_partial_bad.json.gold +0 -5
  175. data/ext/libyajl2/vendored/test/cases/null.json +0 -1
  176. data/ext/libyajl2/vendored/test/cases/null.json.gold +0 -2
  177. data/ext/libyajl2/vendored/test/cases/nulls_and_bools.json +0 -5
  178. data/ext/libyajl2/vendored/test/cases/nulls_and_bools.json.gold +0 -9
  179. data/ext/libyajl2/vendored/test/cases/simple.json +0 -5
  180. data/ext/libyajl2/vendored/test/cases/simple.json.gold +0 -9
  181. data/ext/libyajl2/vendored/test/cases/simple_with_comments.json +0 -11
  182. data/ext/libyajl2/vendored/test/cases/simple_with_comments.json.gold +0 -5
  183. data/ext/libyajl2/vendored/test/cases/string_invalid_escape.json +0 -1
  184. data/ext/libyajl2/vendored/test/cases/string_invalid_escape.json.gold +0 -3
  185. data/ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json +0 -1
  186. data/ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json.gold +0 -2
  187. data/ext/libyajl2/vendored/test/cases/string_with_escapes.json +0 -3
  188. data/ext/libyajl2/vendored/test/cases/string_with_escapes.json.gold +0 -7
  189. data/ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json +0 -2
  190. data/ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json.gold +0 -2
  191. data/ext/libyajl2/vendored/test/cases/three_byte_utf8.json +0 -1
  192. data/ext/libyajl2/vendored/test/cases/three_byte_utf8.json.gold +0 -7
  193. data/ext/libyajl2/vendored/test/cases/true.json +0 -1
  194. data/ext/libyajl2/vendored/test/cases/true.json.gold +0 -2
  195. data/ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json +0 -1
  196. data/ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json.gold +0 -4
  197. data/ext/libyajl2/vendored/test/cases/zerobyte.json +0 -1
  198. data/ext/libyajl2/vendored/test/cases/zerobyte.json.gold +0 -0
  199. data/ext/libyajl2/vendored/test/run_tests.sh +0 -94
  200. data/ext/libyajl2/vendored/test/yajl_test.c +0 -281
  201. data/ext/libyajl2/vendored/verify/CMakeLists.txt +0 -39
  202. data/ext/libyajl2/vendored/verify/json_verify.c +0 -116
  203. data/lib/ffi_yajl/json_gem.rb +0 -121
  204. data/lib/libyajl.so +0 -0
  205. data/lib/libyajl.so.2 +0 -0
  206. data/lib/libyajl.so.2.0.5 +0 -0
  207. data/lib/libyajl_s.a +0 -0
  208. data/spec/ffi_yajl/encoder_spec.rb +0 -39
  209. data/spec/ffi_yajl/json_gem_spec.rb +0 -355
  210. data/spec/ffi_yajl/parser_spec.rb +0 -78
  211. data/spec/spec_helper.rb +0 -14
data/lib/ffi_yajl.rb CHANGED
@@ -1,14 +1,50 @@
1
+ # Copyright (c) 2015 Lamont Granquist
2
+ # Copyright (c) 2013-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
22
 
2
- if ENV['FORCE_FFI_YAJL'] == "ext"
3
- require 'ffi_yajl/ext'
4
- elsif ENV['FORCE_FFI_YAJL'] == "ffi" || defined?(Yajl) || RUBY_VERSION.to_f < 1.9
5
- # - can't dynlink our libyajl2 c-ext and Yajl's libyajl1 c-ext into the same binary
6
- # - c-extension segfaults on ruby 1.8.7
7
- require 'ffi_yajl/ffi'
23
+ #
24
+ # Precedence:
25
+ #
26
+ # - The FORCE_FFI_YAJL env var takes precedence over everything else, the user
27
+ # theoretically knows best
28
+ # - Java always gets ffi because jruby only supports ffi
29
+ # - There is a conflict between loading libyajl 1.x and 2.x in the same VM
30
+ # process (on a fundamental basis, simply guru medidate about how the
31
+ # c-symbols work if you load both libs). For some reason the ffi interface
32
+ # seems to work fine sometimes (i'm not sure how) so we fall back to that--
33
+ # this is much more likely to be converted into a raise than to have the warn
34
+ # dropped, so don't bother asking for that.
35
+ # - Then we try the c-ext and rescue into ffi that fails
36
+ #
37
+ if ENV["FORCE_FFI_YAJL"] == "ext"
38
+ require_relative "ffi_yajl/ext"
39
+ elsif ENV["FORCE_FFI_YAJL"] == "ffi"
40
+ require_relative "ffi_yajl/ffi"
41
+ elsif RUBY_PLATFORM == "java"
42
+ require_relative "ffi_yajl/ffi"
8
43
  else
9
44
  begin
10
- require 'ffi_yajl/ext'
45
+ require_relative "ffi_yajl/ext"
11
46
  rescue LoadError
12
- require 'ffi_yajl/ffi'
47
+ warn "failed to load the ffi-yajl c-extension, falling back to ffi interface"
48
+ require_relative "ffi_yajl/ffi"
13
49
  end
14
50
  end
metadata CHANGED
@@ -1,270 +1,65 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-yajl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- platform: universal-java
4
+ version: 3.0.1
5
+ platform: ruby
6
6
  authors:
7
7
  - Lamont Granquist
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-09 00:00:00.000000000 Z
11
+ date: 2026-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rake
14
+ name: libyajl2
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '10.1'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '10.1'
27
- - !ruby/object:Gem::Dependency
28
- name: rspec
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '2.14'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '2.14'
41
- - !ruby/object:Gem::Dependency
42
- name: pry
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
17
+ - - ">="
46
18
  - !ruby/object:Gem::Version
47
- version: '0.9'
48
- type: :development
19
+ version: '2.1'
20
+ type: :runtime
49
21
  prerelease: false
50
22
  version_requirements: !ruby/object:Gem::Requirement
51
23
  requirements:
52
- - - "~>"
24
+ - - ">="
53
25
  - !ruby/object:Gem::Version
54
- version: '0.9'
26
+ version: '2.1'
55
27
  - !ruby/object:Gem::Dependency
56
- name: rake-compiler
28
+ name: cookstyle
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
31
  - - "~>"
60
32
  - !ruby/object:Gem::Version
61
- version: '0.9'
33
+ version: '8.1'
62
34
  type: :development
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
38
  - - "~>"
67
39
  - !ruby/object:Gem::Version
68
- version: '0.9'
69
- - !ruby/object:Gem::Dependency
70
- name: ffi
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.9'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.9'
40
+ version: '8.1'
83
41
  description: Ruby FFI wrapper around YAJL 2.x
84
- email: lamont@scriptkiddie.org
42
+ email: lamont@chef.io
85
43
  executables:
86
44
  - ffi-yajl-bench
87
45
  extensions:
88
- - ext/libyajl2/extconf.rb
46
+ - ext/ffi_yajl/ext/encoder/extconf.rb
47
+ - ext/ffi_yajl/ext/parser/extconf.rb
48
+ - ext/ffi_yajl/ext/dlopen/extconf.rb
89
49
  extra_rdoc_files:
90
50
  - README.md
91
51
  - LICENSE
92
52
  files:
93
53
  - LICENSE
94
54
  - README.md
95
- - Rakefile
96
55
  - bin/ffi-yajl-bench
56
+ - ext/ffi_yajl/ext/dlopen/dlopen.c
57
+ - ext/ffi_yajl/ext/dlopen/extconf.rb
58
+ - ext/ffi_yajl/ext/dlopen/yajl.sym
97
59
  - ext/ffi_yajl/ext/encoder/encoder.c
98
60
  - ext/ffi_yajl/ext/encoder/extconf.rb
99
61
  - ext/ffi_yajl/ext/parser/extconf.rb
100
62
  - ext/ffi_yajl/ext/parser/parser.c
101
- - ext/libyajl2/extconf.rb
102
- - ext/libyajl2/vendored/.git
103
- - ext/libyajl2/vendored/.gitignore
104
- - ext/libyajl2/vendored/BUILDING
105
- - ext/libyajl2/vendored/BUILDING.win32
106
- - ext/libyajl2/vendored/CMakeLists.txt
107
- - ext/libyajl2/vendored/COPYING
108
- - ext/libyajl2/vendored/ChangeLog
109
- - ext/libyajl2/vendored/README
110
- - ext/libyajl2/vendored/TODO
111
- - ext/libyajl2/vendored/YAJLDoc.cmake
112
- - ext/libyajl2/vendored/configure
113
- - ext/libyajl2/vendored/example/CMakeLists.txt
114
- - ext/libyajl2/vendored/example/README.md
115
- - ext/libyajl2/vendored/example/parse_config.c
116
- - ext/libyajl2/vendored/example/sample.config
117
- - ext/libyajl2/vendored/perf/CMakeLists.txt
118
- - ext/libyajl2/vendored/perf/documents.c
119
- - ext/libyajl2/vendored/perf/documents.h
120
- - ext/libyajl2/vendored/perf/perftest.c
121
- - ext/libyajl2/vendored/reformatter/CMakeLists.txt
122
- - ext/libyajl2/vendored/reformatter/json_reformat.c
123
- - ext/libyajl2/vendored/src/CMakeLists.txt
124
- - ext/libyajl2/vendored/src/YAJL.dxy
125
- - ext/libyajl2/vendored/src/api/yajl_common.h
126
- - ext/libyajl2/vendored/src/api/yajl_gen.h
127
- - ext/libyajl2/vendored/src/api/yajl_parse.h
128
- - ext/libyajl2/vendored/src/api/yajl_tree.h
129
- - ext/libyajl2/vendored/src/api/yajl_version.h.cmake
130
- - ext/libyajl2/vendored/src/yajl
131
- - ext/libyajl2/vendored/src/yajl.c
132
- - ext/libyajl2/vendored/src/yajl.pc.cmake
133
- - ext/libyajl2/vendored/src/yajl_alloc.c
134
- - ext/libyajl2/vendored/src/yajl_alloc.h
135
- - ext/libyajl2/vendored/src/yajl_buf.c
136
- - ext/libyajl2/vendored/src/yajl_buf.h
137
- - ext/libyajl2/vendored/src/yajl_bytestack.h
138
- - ext/libyajl2/vendored/src/yajl_encode.c
139
- - ext/libyajl2/vendored/src/yajl_encode.h
140
- - ext/libyajl2/vendored/src/yajl_gen.c
141
- - ext/libyajl2/vendored/src/yajl_lex.c
142
- - ext/libyajl2/vendored/src/yajl_lex.h
143
- - ext/libyajl2/vendored/src/yajl_parser.c
144
- - ext/libyajl2/vendored/src/yajl_parser.h
145
- - ext/libyajl2/vendored/src/yajl_tree.c
146
- - ext/libyajl2/vendored/src/yajl_version.c
147
- - ext/libyajl2/vendored/test/CMakeLists.txt
148
- - ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json
149
- - ext/libyajl2/vendored/test/cases/ac_difficult_json_c_test_case_with_comments.json.gold
150
- - ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json
151
- - ext/libyajl2/vendored/test/cases/ac_simple_with_comments.json.gold
152
- - ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json
153
- - ext/libyajl2/vendored/test/cases/ag_false_then_garbage.json.gold
154
- - ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json
155
- - ext/libyajl2/vendored/test/cases/ag_null_then_garbage.json.gold
156
- - ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json
157
- - ext/libyajl2/vendored/test/cases/ag_true_then_garbage.json.gold
158
- - ext/libyajl2/vendored/test/cases/am_eof.json
159
- - ext/libyajl2/vendored/test/cases/am_eof.json.gold
160
- - ext/libyajl2/vendored/test/cases/am_integers.json
161
- - ext/libyajl2/vendored/test/cases/am_integers.json.gold
162
- - ext/libyajl2/vendored/test/cases/am_multiple.json
163
- - ext/libyajl2/vendored/test/cases/am_multiple.json.gold
164
- - ext/libyajl2/vendored/test/cases/am_stuff.json
165
- - ext/libyajl2/vendored/test/cases/am_stuff.json.gold
166
- - ext/libyajl2/vendored/test/cases/ap_array_open.json
167
- - ext/libyajl2/vendored/test/cases/ap_array_open.json.gold
168
- - ext/libyajl2/vendored/test/cases/ap_eof_str.json
169
- - ext/libyajl2/vendored/test/cases/ap_eof_str.json.gold
170
- - ext/libyajl2/vendored/test/cases/ap_map_open.json
171
- - ext/libyajl2/vendored/test/cases/ap_map_open.json.gold
172
- - ext/libyajl2/vendored/test/cases/ap_partial_ok.json
173
- - ext/libyajl2/vendored/test/cases/ap_partial_ok.json.gold
174
- - ext/libyajl2/vendored/test/cases/array.json
175
- - ext/libyajl2/vendored/test/cases/array.json.gold
176
- - ext/libyajl2/vendored/test/cases/array_close.json
177
- - ext/libyajl2/vendored/test/cases/array_close.json.gold
178
- - ext/libyajl2/vendored/test/cases/bignums.json
179
- - ext/libyajl2/vendored/test/cases/bignums.json.gold
180
- - ext/libyajl2/vendored/test/cases/bogus_char.json
181
- - ext/libyajl2/vendored/test/cases/bogus_char.json.gold
182
- - ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json
183
- - ext/libyajl2/vendored/test/cases/codepoints_from_unicode_org.json.gold
184
- - ext/libyajl2/vendored/test/cases/deep_arrays.json
185
- - ext/libyajl2/vendored/test/cases/deep_arrays.json.gold
186
- - ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json
187
- - ext/libyajl2/vendored/test/cases/difficult_json_c_test_case.json.gold
188
- - ext/libyajl2/vendored/test/cases/doubles.json
189
- - ext/libyajl2/vendored/test/cases/doubles.json.gold
190
- - ext/libyajl2/vendored/test/cases/doubles_in_array.json
191
- - ext/libyajl2/vendored/test/cases/doubles_in_array.json.gold
192
- - ext/libyajl2/vendored/test/cases/empty_array.json
193
- - ext/libyajl2/vendored/test/cases/empty_array.json.gold
194
- - ext/libyajl2/vendored/test/cases/empty_string.json
195
- - ext/libyajl2/vendored/test/cases/empty_string.json.gold
196
- - ext/libyajl2/vendored/test/cases/escaped_bulgarian.json
197
- - ext/libyajl2/vendored/test/cases/escaped_bulgarian.json.gold
198
- - ext/libyajl2/vendored/test/cases/escaped_foobar.json
199
- - ext/libyajl2/vendored/test/cases/escaped_foobar.json.gold
200
- - ext/libyajl2/vendored/test/cases/false.json
201
- - ext/libyajl2/vendored/test/cases/false.json.gold
202
- - ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json
203
- - ext/libyajl2/vendored/test/cases/fg_false_then_garbage.json.gold
204
- - ext/libyajl2/vendored/test/cases/fg_issue_7.json
205
- - ext/libyajl2/vendored/test/cases/fg_issue_7.json.gold
206
- - ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json
207
- - ext/libyajl2/vendored/test/cases/fg_null_then_garbage.json.gold
208
- - ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json
209
- - ext/libyajl2/vendored/test/cases/fg_true_then_garbage.json.gold
210
- - ext/libyajl2/vendored/test/cases/four_byte_utf8.json
211
- - ext/libyajl2/vendored/test/cases/four_byte_utf8.json.gold
212
- - ext/libyajl2/vendored/test/cases/high_overflow.json
213
- - ext/libyajl2/vendored/test/cases/high_overflow.json.gold
214
- - ext/libyajl2/vendored/test/cases/integers.json
215
- - ext/libyajl2/vendored/test/cases/integers.json.gold
216
- - ext/libyajl2/vendored/test/cases/invalid_utf8.json
217
- - ext/libyajl2/vendored/test/cases/invalid_utf8.json.gold
218
- - ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json
219
- - ext/libyajl2/vendored/test/cases/isolated_surrogate_marker.json.gold
220
- - ext/libyajl2/vendored/test/cases/leading_zero_in_number.json
221
- - ext/libyajl2/vendored/test/cases/leading_zero_in_number.json.gold
222
- - ext/libyajl2/vendored/test/cases/lonely_minus_sign.json
223
- - ext/libyajl2/vendored/test/cases/lonely_minus_sign.json.gold
224
- - ext/libyajl2/vendored/test/cases/lonely_number.json
225
- - ext/libyajl2/vendored/test/cases/lonely_number.json.gold
226
- - ext/libyajl2/vendored/test/cases/low_overflow.json
227
- - ext/libyajl2/vendored/test/cases/low_overflow.json.gold
228
- - ext/libyajl2/vendored/test/cases/map_close.json
229
- - ext/libyajl2/vendored/test/cases/map_close.json.gold
230
- - ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json
231
- - ext/libyajl2/vendored/test/cases/missing_integer_after_decimal_point.json.gold
232
- - ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json
233
- - ext/libyajl2/vendored/test/cases/missing_integer_after_exponent.json.gold
234
- - ext/libyajl2/vendored/test/cases/multiple.json
235
- - ext/libyajl2/vendored/test/cases/multiple.json.gold
236
- - ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json
237
- - ext/libyajl2/vendored/test/cases/non_utf8_char_in_string.json.gold
238
- - ext/libyajl2/vendored/test/cases/np_partial_bad.json
239
- - ext/libyajl2/vendored/test/cases/np_partial_bad.json.gold
240
- - ext/libyajl2/vendored/test/cases/null.json
241
- - ext/libyajl2/vendored/test/cases/null.json.gold
242
- - ext/libyajl2/vendored/test/cases/nulls_and_bools.json
243
- - ext/libyajl2/vendored/test/cases/nulls_and_bools.json.gold
244
- - ext/libyajl2/vendored/test/cases/simple.json
245
- - ext/libyajl2/vendored/test/cases/simple.json.gold
246
- - ext/libyajl2/vendored/test/cases/simple_with_comments.json
247
- - ext/libyajl2/vendored/test/cases/simple_with_comments.json.gold
248
- - ext/libyajl2/vendored/test/cases/string_invalid_escape.json
249
- - ext/libyajl2/vendored/test/cases/string_invalid_escape.json.gold
250
- - ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json
251
- - ext/libyajl2/vendored/test/cases/string_invalid_hex_char.json.gold
252
- - ext/libyajl2/vendored/test/cases/string_with_escapes.json
253
- - ext/libyajl2/vendored/test/cases/string_with_escapes.json.gold
254
- - ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json
255
- - ext/libyajl2/vendored/test/cases/string_with_invalid_newline.json.gold
256
- - ext/libyajl2/vendored/test/cases/three_byte_utf8.json
257
- - ext/libyajl2/vendored/test/cases/three_byte_utf8.json.gold
258
- - ext/libyajl2/vendored/test/cases/true.json
259
- - ext/libyajl2/vendored/test/cases/true.json.gold
260
- - ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json
261
- - ext/libyajl2/vendored/test/cases/unescaped_bulgarian.json.gold
262
- - ext/libyajl2/vendored/test/cases/zerobyte.json
263
- - ext/libyajl2/vendored/test/cases/zerobyte.json.gold
264
- - ext/libyajl2/vendored/test/run_tests.sh
265
- - ext/libyajl2/vendored/test/yajl_test.c
266
- - ext/libyajl2/vendored/verify/CMakeLists.txt
267
- - ext/libyajl2/vendored/verify/json_verify.c
268
63
  - lib/ffi_yajl.rb
269
64
  - lib/ffi_yajl/benchmark.rb
270
65
  - lib/ffi_yajl/benchmark/MIT-LICENSE
@@ -292,20 +87,13 @@ files:
292
87
  - lib/ffi_yajl/ffi.rb
293
88
  - lib/ffi_yajl/ffi/encoder.rb
294
89
  - lib/ffi_yajl/ffi/parser.rb
295
- - lib/ffi_yajl/json_gem.rb
90
+ - lib/ffi_yajl/map_library_name.rb
296
91
  - lib/ffi_yajl/parser.rb
92
+ - lib/ffi_yajl/platform.rb
297
93
  - lib/ffi_yajl/version.rb
298
- - lib/libyajl.so
299
- - lib/libyajl.so.2
300
- - lib/libyajl.so.2.0.5
301
- - lib/libyajl_s.a
302
- - spec/ffi_yajl/encoder_spec.rb
303
- - spec/ffi_yajl/json_gem_spec.rb
304
- - spec/ffi_yajl/parser_spec.rb
305
- - spec/spec_helper.rb
306
- homepage: http://github.com/lamont-granquist/ffi-yajl
94
+ homepage: http://github.com/chef/ffi-yajl
307
95
  licenses:
308
- - Apache-2.0
96
+ - MIT
309
97
  metadata: {}
310
98
  post_install_message:
311
99
  rdoc_options: []
@@ -315,15 +103,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
315
103
  requirements:
316
104
  - - ">="
317
105
  - !ruby/object:Gem::Version
318
- version: '0'
106
+ version: '3.1'
319
107
  required_rubygems_version: !ruby/object:Gem::Requirement
320
108
  requirements:
321
109
  - - ">="
322
110
  - !ruby/object:Gem::Version
323
111
  version: '0'
324
112
  requirements: []
325
- rubyforge_project:
326
- rubygems_version: 2.2.0
113
+ rubygems_version: 3.3.27
327
114
  signing_key:
328
115
  specification_version: 4
329
116
  summary: Ruby FFI wrapper around YAJL 2.x
data/Rakefile DELETED
@@ -1,62 +0,0 @@
1
- require 'rspec/core/rake_task'
2
- require 'rubygems/package_task'
3
- require 'rake/extensiontask'
4
-
5
- Dir[File.expand_path("../*gemspec", __FILE__)].reverse.each do |gemspec_path|
6
- gemspec = eval(IO.read(gemspec_path))
7
- Gem::PackageTask.new(gemspec).define
8
- end
9
-
10
- require 'ffi_yajl/version'
11
-
12
- desc "Run all specs in spec directory"
13
- RSpec::Core::RakeTask.new(:spec) do |t|
14
- t.pattern = FileList['spec/**/*_spec.rb']
15
- end
16
-
17
- desc "Build it and ship it"
18
- task :ship => [:clean, :gem] do
19
- sh("git tag #{Mixlib::ShellOut::VERSION}")
20
- sh("git push --tags")
21
- Dir[File.expand_path("../pkg/*.gem", __FILE__)].reverse.each do |built_gem|
22
- sh("gem push #{built_gem}")
23
- end
24
- end
25
-
26
- unix_gemspec = eval(File.read("ffi-yajl.gemspec"))
27
-
28
- task :clean do
29
- sh "rm -rf pkg/* lib/ffi_yajl/ext/*"
30
- end
31
-
32
- desc "install the gem locally"
33
- task :install => [:package] do
34
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
35
- sh %{gem install pkg/#{unix_gemspec.name}-#{unix_gemspec.version}-universal-java.gem}
36
- else
37
- sh %{gem install pkg/#{unix_gemspec.name}-#{unix_gemspec.version}.gem}
38
- end
39
- end
40
-
41
- spec = Gem::Specification.load('ffi-yajl.gemspec')
42
-
43
- Rake::ExtensionTask.new do |ext|
44
- ext.name = 'libyajl'
45
- ext.lib_dir = 'lib'
46
- ext.ext_dir = 'ext/libyajl2'
47
- ext.gem_spec = spec
48
- end
49
-
50
- Rake::ExtensionTask.new do |ext|
51
- ext.name = 'encoder'
52
- ext.lib_dir = 'lib/ffi_yajl/ext'
53
- ext.ext_dir = 'ext/ffi_yajl/ext/encoder'
54
- ext.gem_spec = spec
55
- end
56
-
57
- Rake::ExtensionTask.new do |ext|
58
- ext.name = 'parser'
59
- ext.lib_dir = 'lib/ffi_yajl/ext'
60
- ext.ext_dir = 'ext/ffi_yajl/ext/parser'
61
- ext.gem_spec = spec
62
- end
@@ -1,65 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rbconfig'
4
-
5
- cflags = ENV['CFLAGS']
6
- ldflags = ENV['LDFLAGS']
7
- cc = ENV['CC']
8
-
9
- # use the CC that ruby was compiled with by default
10
- cc ||= RbConfig::MAKEFILE_CONFIG['CC']
11
- cflags ||= ""
12
- ldflags ||= ""
13
-
14
- # then ultimately default back to gcc
15
- cc ||= "gcc"
16
-
17
- # FIXME: add more compilers with default options
18
- if cc =~ /gcc|clang/
19
- cflags << " -O3" unless cflags =~ /-O\d/
20
- cflags << " -Wall"
21
- end
22
-
23
- if !defined?(RUBY_ENGINE) || RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
24
- require 'mkmf'
25
-
26
- # yajl_complete_parse is only in >= 2.0
27
- libyajl2_ok = have_library("yajl", "yajl_complete_parse", [ "yajl/yajl_parse.h" ]) && have_func("yajl_complete_parse")
28
- else
29
- # always install libyajl2 on Jruby
30
- # FIXME: get the conditional mkmf stuff to work on Jruby
31
- libyajl2_ok = false
32
- end
33
-
34
- prefix=File.expand_path(File.join(File.dirname(__FILE__), "..", ".."))
35
-
36
- #dir_config 'libyajl2'
37
-
38
- if libyajl2_ok
39
- File.open("Makefile", "w") do |mf|
40
- mf.puts "# Dummy makefile when we don't build the library"
41
- mf.puts "all install::\n"
42
- end
43
- else
44
- ENV['CFLAGS'] = cflags
45
- ENV['LDFLAGS'] = ldflags
46
- ENV['CC'] = cc
47
- unless File.exists?("vendored")
48
- system("pwd")
49
- puts "FOOOOOOOO: #{__FILE__}"
50
- system("ls -lad #{File.expand_path(File.join(File.dirname(__FILE__), "vendored"))}")
51
- end
52
- system("cp -rf #{File.expand_path(File.join(File.dirname(__FILE__), "vendored"))} .") unless File.exists?("vendored")
53
-
54
- File.open("Makefile", "w") do |mf|
55
- mf.puts "# Makefile for building vendored libyajl2"
56
- mf.puts "CFLAGS = #{ENV['CFLAGS']}"
57
- mf.puts "LDFLAGS = #{ENV['LDFLAGS']}"
58
- mf.puts "CC = #{ENV['CC']}\n"
59
- mf.puts "all install::"
60
- mf.puts "\tcd vendored && ./configure --prefix=#{prefix}"
61
- mf.puts "\tcd vendored && make install"
62
- mf.puts "\tcp -f vendored/build/yajl-2.0.5/lib/libyajl.so .\n"
63
- end
64
- end
65
-
@@ -1 +0,0 @@
1
- gitdir: ../../../.git/modules/ext/libyajl2/vendored
@@ -1,3 +0,0 @@
1
- .DS_Store
2
- Makefile
3
- /build/
@@ -1,23 +0,0 @@
1
- Short story (If you already have ruby and cmake):
2
-
3
- ./configure && make install
4
-
5
- When things go wrong:
6
-
7
- attain CMake (http://www.cmake.org) and ruby (http://ruby-lang.org) and
8
- try again.
9
-
10
- OR, attain CMake and build by hand:
11
-
12
- 1. mkdir build
13
- 2. cd build
14
- 3. cmake ..
15
- 4. make
16
- 5. build output left in yajl-X.Y.Z
17
-
18
- NOTE: for 64-bit systems where lib64 is used you can pass the cmake
19
- variable LIB_SUFFIX to cause installation into the system's 'lib64'
20
- directory.
21
-
22
- best,
23
- lloyd
@@ -1,27 +0,0 @@
1
- YAJL has been successfully built using Visual Studio 8. CMake, a
2
- build file generator, is used to build the software. CMake supports
3
- several different build environments, so you may either build YAJL
4
- using the IDE via the following steps:
5
-
6
- 1. acquire cmake (http://www.cmake.org)
7
- 2. mkdir build
8
- 3. cd build
9
- 4. cmake ..
10
- 5. devenv YetAnotherJSONParser.sln /project ALL_BUILD /build Release
11
- 6. build output is left in build/yajl-X.Y.Z
12
-
13
- Or you can build from the command line using nmake:
14
-
15
- 1. Click Start > Programs > Microsoft Visual Studio > Visual Studio
16
- Tools > Visual Studio Command Prompt -- for your version of Visual
17
- Studio, which will open a command prompt. You may verify that the
18
- compiler is in your path by typing "cl /?" at the prompt.
19
- 2. cd C:\path\to\yajl\source\
20
- 3. mkdir build
21
- 4. cd build
22
- 5. cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..
23
- 6. nmake
24
- 7. nmake install
25
-
26
- Earlier versions of visual studio and other build generators haven't
27
- been thoroughly tested, but should work without any major issues.
@@ -1,79 +0,0 @@
1
- # Copyright (c) 2007-2011, Lloyd Hilaiel <lloyd@hilaiel.com>
2
- #
3
- # Permission to use, copy, modify, and/or distribute this software for any
4
- # purpose with or without fee is hereby granted, provided that the above
5
- # copyright notice and this permission notice appear in all copies.
6
- #
7
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14
-
15
- CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
16
-
17
- PROJECT(YetAnotherJSONParser C)
18
-
19
- SET (YAJL_MAJOR 2)
20
- SET (YAJL_MINOR 0)
21
- SET (YAJL_MICRO 5)
22
-
23
- SET (YAJL_DIST_NAME "yajl-${YAJL_MAJOR}.${YAJL_MINOR}.${YAJL_MICRO}")
24
-
25
- IF (NOT CMAKE_BUILD_TYPE)
26
- SET(CMAKE_BUILD_TYPE "Release")
27
- ENDIF (NOT CMAKE_BUILD_TYPE)
28
-
29
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
30
-
31
- IF (WIN32)
32
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
33
- ADD_DEFINITIONS(-DWIN32)
34
- SET(linkFlags "/PDB:NONE /INCREMENTAL:NO /OPT:NOREF /OPT:NOICF")
35
- SET(CMAKE_EXE_LINKER_FLAGS "${linkFlags}"
36
- CACHE STRING "YAJL linker flags" FORCE)
37
- SET(CMAKE_EXE_LINKER_FLAGS_DEBUG ""
38
- CACHE STRING "YAJL debug linker flags" FORCE)
39
- SET(CMAKE_EXE_LINKER_FLAGS_RELEASE
40
- CACHE STRING "YAJL release linker flags" FORCE)
41
- SET(CMAKE_SHARED_LINKER_FLAGS "${linkFlags}"
42
- CACHE STRING "YAJL shared linker flags" FORCE)
43
- SET(CMAKE_MODULE_LINKER_FLAGS "${linkFlags}"
44
- CACHE STRING "YAJL module linker flags" FORCE)
45
-
46
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996 /wd4255 /wd4130 /wd4100 /wd4711")
47
- SET(CMAKE_C_FLAGS_DEBUG "/D DEBUG /Od /Z7")
48
- SET(CMAKE_C_FLAGS_RELEASE "/D NDEBUG /O2")
49
- ELSE (WIN32)
50
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
51
- IF(CMAKE_COMPILER_IS_GNUCC)
52
- INCLUDE(CheckCCompilerFlag)
53
- CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAVE_GCC_VISIBILITY)
54
- IF(HAVE_GCC_VISIBILITY)
55
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
56
- ENDIF(HAVE_GCC_VISIBILITY)
57
- ENDIF(CMAKE_COMPILER_IS_GNUCC)
58
- SET(CMAKE_C_FLAGS
59
- "${CMAKE_C_FLAGS} -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")
60
-
61
- SET(CMAKE_C_FLAGS_DEBUG "-DDEBUG -g")
62
- SET(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O2 -Wuninitialized")
63
- ENDIF (WIN32)
64
-
65
-
66
- ADD_SUBDIRECTORY(src)
67
- ADD_SUBDIRECTORY(test)
68
- ADD_SUBDIRECTORY(reformatter)
69
- ADD_SUBDIRECTORY(verify)
70
- ADD_SUBDIRECTORY(example)
71
- ADD_SUBDIRECTORY(perf)
72
-
73
- INCLUDE(YAJLDoc.cmake)
74
-
75
- # a test target
76
- ADD_CUSTOM_TARGET(test
77
- ./run_tests.sh ${CMAKE_CURRENT_BINARY_DIR}/test/yajl_test
78
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test)
79
-
@@ -1,13 +0,0 @@
1
- Copyright (c) 2007-2011, Lloyd Hilaiel <lloyd@hilaiel.com>
2
-
3
- Permission to use, copy, modify, and/or distribute this software for any
4
- purpose with or without fee is hereby granted, provided that the above
5
- copyright notice and this permission notice appear in all copies.
6
-
7
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.