libcouchbase 0.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 (561) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +1 -0
  5. data/.travis.yml +35 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE +24 -0
  8. data/README.md +389 -0
  9. data/Rakefile +75 -0
  10. data/ext/README.md +6 -0
  11. data/ext/Rakefile +20 -0
  12. data/ext/libcouchbase/.gitignore +130 -0
  13. data/ext/libcouchbase/.travis.yml +19 -0
  14. data/ext/libcouchbase/CMakeLists.txt +429 -0
  15. data/ext/libcouchbase/CONTRIBUTING.md +124 -0
  16. data/ext/libcouchbase/LICENSE +202 -0
  17. data/ext/libcouchbase/README.markdown +163 -0
  18. data/ext/libcouchbase/RELEASE_NOTES.markdown +2691 -0
  19. data/ext/libcouchbase/cmake/Modules/ConfigureDtrace.cmake +27 -0
  20. data/ext/libcouchbase/cmake/Modules/CopyPDB.cmake +42 -0
  21. data/ext/libcouchbase/cmake/Modules/DistScript.cmake +17 -0
  22. data/ext/libcouchbase/cmake/Modules/DownloadLcbDep.cmake +20 -0
  23. data/ext/libcouchbase/cmake/Modules/FindCouchbaseHdrHistogram.cmake +15 -0
  24. data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibev.cmake +73 -0
  25. data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibevent.cmake +52 -0
  26. data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibuv.cmake +56 -0
  27. data/ext/libcouchbase/cmake/Modules/FindCouchbaseSnappy.cmake +11 -0
  28. data/ext/libcouchbase/cmake/Modules/GenerateConfigDotH.cmake +29 -0
  29. data/ext/libcouchbase/cmake/Modules/GetLibcouchbaseFlags.cmake +133 -0
  30. data/ext/libcouchbase/cmake/Modules/GetPlatformCCInfo.cmake +45 -0
  31. data/ext/libcouchbase/cmake/Modules/GetVersionInfo.cmake +70 -0
  32. data/ext/libcouchbase/cmake/config-cmake.h.in +60 -0
  33. data/ext/libcouchbase/cmake/configure +357 -0
  34. data/ext/libcouchbase/cmake/defs.mk.in +8 -0
  35. data/ext/libcouchbase/cmake/dtrace-instr-link.pl +38 -0
  36. data/ext/libcouchbase/cmake/source_files.cmake +73 -0
  37. data/ext/libcouchbase/configure.pl +1 -0
  38. data/ext/libcouchbase/contrib/cJSON/cJSON.c +624 -0
  39. data/ext/libcouchbase/contrib/cJSON/cJSON.h +158 -0
  40. data/ext/libcouchbase/contrib/cbsasl/CMakeLists.txt +9 -0
  41. data/ext/libcouchbase/contrib/cbsasl/COPYING +202 -0
  42. data/ext/libcouchbase/contrib/cbsasl/include/cbsasl/cbsasl.h +217 -0
  43. data/ext/libcouchbase/contrib/cbsasl/src/client.c +205 -0
  44. data/ext/libcouchbase/contrib/cbsasl/src/common.c +46 -0
  45. data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/hmac.c +67 -0
  46. data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/hmac.h +33 -0
  47. data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/md5.c +296 -0
  48. data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/md5.h +45 -0
  49. data/ext/libcouchbase/contrib/cbsasl/src/hash.c +573 -0
  50. data/ext/libcouchbase/contrib/cbsasl/src/hash.h +15 -0
  51. data/ext/libcouchbase/contrib/cbsasl/src/util.h +31 -0
  52. data/ext/libcouchbase/contrib/cliopts/CMakeLists.txt +2 -0
  53. data/ext/libcouchbase/contrib/cliopts/cliopts.c +747 -0
  54. data/ext/libcouchbase/contrib/cliopts/cliopts.h +493 -0
  55. data/ext/libcouchbase/contrib/genhash/genhash.c +372 -0
  56. data/ext/libcouchbase/contrib/genhash/genhash.h +235 -0
  57. data/ext/libcouchbase/contrib/gtest-1.7.0/CHANGES +157 -0
  58. data/ext/libcouchbase/contrib/gtest-1.7.0/CMakeLists.txt +252 -0
  59. data/ext/libcouchbase/contrib/gtest-1.7.0/CONTRIBUTORS +37 -0
  60. data/ext/libcouchbase/contrib/gtest-1.7.0/LICENSE +28 -0
  61. data/ext/libcouchbase/contrib/gtest-1.7.0/MINIFY.sh +15 -0
  62. data/ext/libcouchbase/contrib/gtest-1.7.0/README +435 -0
  63. data/ext/libcouchbase/contrib/gtest-1.7.0/cmake/internal_utils.cmake +227 -0
  64. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-death-test.h +294 -0
  65. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-message.h +250 -0
  66. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-param-test.h +1421 -0
  67. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-param-test.h.pump +487 -0
  68. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-printers.h +855 -0
  69. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-spi.h +232 -0
  70. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-test-part.h +179 -0
  71. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-typed-test.h +259 -0
  72. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest.h +2291 -0
  73. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest_pred_impl.h +358 -0
  74. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest_prod.h +58 -0
  75. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h +319 -0
  76. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-filepath.h +206 -0
  77. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-internal.h +1158 -0
  78. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h +233 -0
  79. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h +5143 -0
  80. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump +301 -0
  81. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util.h +619 -0
  82. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-port.h +1947 -0
  83. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-string.h +167 -0
  84. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-tuple.h +1012 -0
  85. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump +339 -0
  86. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-type-util.h +3331 -0
  87. data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump +297 -0
  88. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-all.cc +48 -0
  89. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-death-test.cc +1344 -0
  90. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-filepath.cc +382 -0
  91. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-internal-inl.h +1218 -0
  92. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-port.cc +805 -0
  93. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-printers.cc +363 -0
  94. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-test-part.cc +110 -0
  95. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-typed-test.cc +110 -0
  96. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest.cc +5015 -0
  97. data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest_main.cc +38 -0
  98. data/ext/libcouchbase/contrib/http_parser/LICENSE-MIT +23 -0
  99. data/ext/libcouchbase/contrib/http_parser/README.md +178 -0
  100. data/ext/libcouchbase/contrib/http_parser/http_parser.c +2060 -0
  101. data/ext/libcouchbase/contrib/http_parser/http_parser.h +321 -0
  102. data/ext/libcouchbase/contrib/jsonsl/LICENSE +20 -0
  103. data/ext/libcouchbase/contrib/jsonsl/jsonsl.c +1452 -0
  104. data/ext/libcouchbase/contrib/jsonsl/jsonsl.h +971 -0
  105. data/ext/libcouchbase/contrib/lcb-jsoncpp/CMakeLists.txt +6 -0
  106. data/ext/libcouchbase/contrib/lcb-jsoncpp/LICENSE +55 -0
  107. data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp-forwards.h +255 -0
  108. data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.cpp +4892 -0
  109. data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.h +1961 -0
  110. data/ext/libcouchbase/contrib/snappy/CMakeLists.txt +8 -0
  111. data/ext/libcouchbase/contrib/snappy/COPYING +28 -0
  112. data/ext/libcouchbase/contrib/snappy/snappy-c.cc +90 -0
  113. data/ext/libcouchbase/contrib/snappy/snappy-c.h +138 -0
  114. data/ext/libcouchbase/contrib/snappy/snappy-internal.h +150 -0
  115. data/ext/libcouchbase/contrib/snappy/snappy-lcb-msvc.h +5 -0
  116. data/ext/libcouchbase/contrib/snappy/snappy-sinksource.cc +71 -0
  117. data/ext/libcouchbase/contrib/snappy/snappy-sinksource.h +137 -0
  118. data/ext/libcouchbase/contrib/snappy/snappy-stubs-internal.cc +42 -0
  119. data/ext/libcouchbase/contrib/snappy/snappy-stubs-internal.h +491 -0
  120. data/ext/libcouchbase/contrib/snappy/snappy-stubs-public.h +98 -0
  121. data/ext/libcouchbase/contrib/snappy/snappy.cc +1307 -0
  122. data/ext/libcouchbase/contrib/snappy/snappy.h +184 -0
  123. data/ext/libcouchbase/contrib/win32-defs/iocpdefs.h +133 -0
  124. data/ext/libcouchbase/contrib/win32-defs/mingwdefs.h +4396 -0
  125. data/ext/libcouchbase/contrib/win32-defs/win_stdint.h +258 -0
  126. data/ext/libcouchbase/example/CMakeLists.txt +37 -0
  127. data/ext/libcouchbase/example/README.markdown +47 -0
  128. data/ext/libcouchbase/example/db/db.c +167 -0
  129. data/ext/libcouchbase/example/db/vb.c +227 -0
  130. data/ext/libcouchbase/example/instancepool/main.cc +102 -0
  131. data/ext/libcouchbase/example/instancepool/pool.cc +102 -0
  132. data/ext/libcouchbase/example/instancepool/pool.h +69 -0
  133. data/ext/libcouchbase/example/libeventdirect/main.c +148 -0
  134. data/ext/libcouchbase/example/mcc/mcc.cc +246 -0
  135. data/ext/libcouchbase/example/minimal/minimal.c +130 -0
  136. data/ext/libcouchbase/example/observe/observe.c +146 -0
  137. data/ext/libcouchbase/example/subdoc/subdoc-multi.cc +132 -0
  138. data/ext/libcouchbase/example/subdoc/subdoc-simple.cc +191 -0
  139. data/ext/libcouchbase/example/tick/tick.c +119 -0
  140. data/ext/libcouchbase/example/views/views-example.cc +83 -0
  141. data/ext/libcouchbase/include/libcouchbase/_cxxwrap.h +150 -0
  142. data/ext/libcouchbase/include/libcouchbase/api-legacy.h +1689 -0
  143. data/ext/libcouchbase/include/libcouchbase/api3.h +2 -0
  144. data/ext/libcouchbase/include/libcouchbase/assert.h +44 -0
  145. data/ext/libcouchbase/include/libcouchbase/cbft.h +109 -0
  146. data/ext/libcouchbase/include/libcouchbase/cntl-private.h +356 -0
  147. data/ext/libcouchbase/include/libcouchbase/cntl.h +937 -0
  148. data/ext/libcouchbase/include/libcouchbase/configuration.h.in +23 -0
  149. data/ext/libcouchbase/include/libcouchbase/couchbase.h +3677 -0
  150. data/ext/libcouchbase/include/libcouchbase/deprecated.h +300 -0
  151. data/ext/libcouchbase/include/libcouchbase/error.h +595 -0
  152. data/ext/libcouchbase/include/libcouchbase/http.h +1 -0
  153. data/ext/libcouchbase/include/libcouchbase/iops.h +1050 -0
  154. data/ext/libcouchbase/include/libcouchbase/ixmgmt.h +263 -0
  155. data/ext/libcouchbase/include/libcouchbase/kvbuf.h +132 -0
  156. data/ext/libcouchbase/include/libcouchbase/n1ql.h +364 -0
  157. data/ext/libcouchbase/include/libcouchbase/pktfwd.h +270 -0
  158. data/ext/libcouchbase/include/libcouchbase/plugins/io/bsdio-inl.c +367 -0
  159. data/ext/libcouchbase/include/libcouchbase/plugins/io/wsaerr-inl.c +76 -0
  160. data/ext/libcouchbase/include/libcouchbase/plugins/io/wsaerr.h +199 -0
  161. data/ext/libcouchbase/include/libcouchbase/subdoc.h +312 -0
  162. data/ext/libcouchbase/include/libcouchbase/sysdefs.h +98 -0
  163. data/ext/libcouchbase/include/libcouchbase/vbucket.h +643 -0
  164. data/ext/libcouchbase/include/libcouchbase/views.h +298 -0
  165. data/ext/libcouchbase/include/libcouchbase/visibility.h +65 -0
  166. data/ext/libcouchbase/include/memcached/COPYING +30 -0
  167. data/ext/libcouchbase/include/memcached/README +10 -0
  168. data/ext/libcouchbase/include/memcached/protocol_binary.h +1916 -0
  169. data/ext/libcouchbase/include/memcached/vbucket.h +42 -0
  170. data/ext/libcouchbase/packaging/README +7 -0
  171. data/ext/libcouchbase/packaging/abicheck/.gitignore +4 -0
  172. data/ext/libcouchbase/packaging/abicheck/Makefile +17 -0
  173. data/ext/libcouchbase/packaging/abicheck/README.md +27 -0
  174. data/ext/libcouchbase/packaging/abicheck/template.xml +3 -0
  175. data/ext/libcouchbase/packaging/deb/compat +1 -0
  176. data/ext/libcouchbase/packaging/deb/control +73 -0
  177. data/ext/libcouchbase/packaging/deb/copyright +10 -0
  178. data/ext/libcouchbase/packaging/deb/libcouchbase-dev.docs +3 -0
  179. data/ext/libcouchbase/packaging/deb/package.mk +31 -0
  180. data/ext/libcouchbase/packaging/deb/rules +46 -0
  181. data/ext/libcouchbase/packaging/deb/source/format +1 -0
  182. data/ext/libcouchbase/packaging/distinfo/README +1 -0
  183. data/ext/libcouchbase/packaging/distinfo/distinfo.cmake.in +4 -0
  184. data/ext/libcouchbase/packaging/dllversion.rc.in +39 -0
  185. data/ext/libcouchbase/packaging/libcouchbase.pc.in +10 -0
  186. data/ext/libcouchbase/packaging/nuget/libcouchbase.autopkg +76 -0
  187. data/ext/libcouchbase/packaging/parse-git-describe.pl +166 -0
  188. data/ext/libcouchbase/packaging/rpm/libcouchbase.spec.in +108 -0
  189. data/ext/libcouchbase/packaging/rpm/package.mk +40 -0
  190. data/ext/libcouchbase/plugins/io/iocp/CMakeLists.txt +9 -0
  191. data/ext/libcouchbase/plugins/io/iocp/iocp_iops.c +466 -0
  192. data/ext/libcouchbase/plugins/io/iocp/iocp_iops.h +217 -0
  193. data/ext/libcouchbase/plugins/io/iocp/iocp_loop.c +295 -0
  194. data/ext/libcouchbase/plugins/io/iocp/iocp_timer.c +79 -0
  195. data/ext/libcouchbase/plugins/io/iocp/iocp_util.c +229 -0
  196. data/ext/libcouchbase/plugins/io/libev/CMakeLists.txt +29 -0
  197. data/ext/libcouchbase/plugins/io/libev/libev_io_opts.h +65 -0
  198. data/ext/libcouchbase/plugins/io/libev/plugin-libev.c +289 -0
  199. data/ext/libcouchbase/plugins/io/libevent/CMakeLists.txt +29 -0
  200. data/ext/libcouchbase/plugins/io/libevent/libevent_io_opts.h +67 -0
  201. data/ext/libcouchbase/plugins/io/libevent/plugin-libevent.c +292 -0
  202. data/ext/libcouchbase/plugins/io/libuv/CMakeLists.txt +42 -0
  203. data/ext/libcouchbase/plugins/io/libuv/libuv_compat.h +212 -0
  204. data/ext/libcouchbase/plugins/io/libuv/libuv_io_opts.h +118 -0
  205. data/ext/libcouchbase/plugins/io/libuv/plugin-internal.h +148 -0
  206. data/ext/libcouchbase/plugins/io/libuv/plugin-libuv.c +648 -0
  207. data/ext/libcouchbase/plugins/io/select/CMakeLists.txt +11 -0
  208. data/ext/libcouchbase/plugins/io/select/plugin-select.c +448 -0
  209. data/ext/libcouchbase/plugins/io/select/select_io_opts.h +39 -0
  210. data/ext/libcouchbase/src/README.md +103 -0
  211. data/ext/libcouchbase/src/aspend.h +106 -0
  212. data/ext/libcouchbase/src/auth.cc +74 -0
  213. data/ext/libcouchbase/src/auth.h +54 -0
  214. data/ext/libcouchbase/src/bootstrap.c +269 -0
  215. data/ext/libcouchbase/src/bootstrap.h +129 -0
  216. data/ext/libcouchbase/src/bucketconfig/bc_cccp.c +495 -0
  217. data/ext/libcouchbase/src/bucketconfig/bc_file.c +347 -0
  218. data/ext/libcouchbase/src/bucketconfig/bc_http.c +630 -0
  219. data/ext/libcouchbase/src/bucketconfig/bc_http.h +82 -0
  220. data/ext/libcouchbase/src/bucketconfig/bc_mcraw.c +150 -0
  221. data/ext/libcouchbase/src/bucketconfig/clconfig.h +681 -0
  222. data/ext/libcouchbase/src/bucketconfig/confmon.c +474 -0
  223. data/ext/libcouchbase/src/callbacks.c +378 -0
  224. data/ext/libcouchbase/src/cbft.cc +210 -0
  225. data/ext/libcouchbase/src/cntl.cc +847 -0
  226. data/ext/libcouchbase/src/config_static.h +159 -0
  227. data/ext/libcouchbase/src/connspec.cc +462 -0
  228. data/ext/libcouchbase/src/connspec.h +105 -0
  229. data/ext/libcouchbase/src/ctx-log-inl.h +27 -0
  230. data/ext/libcouchbase/src/dump.c +98 -0
  231. data/ext/libcouchbase/src/getconfig.c +100 -0
  232. data/ext/libcouchbase/src/gethrtime.c +109 -0
  233. data/ext/libcouchbase/src/handler.c +922 -0
  234. data/ext/libcouchbase/src/hashset.c +164 -0
  235. data/ext/libcouchbase/src/hashset.h +86 -0
  236. data/ext/libcouchbase/src/hashtable.c +75 -0
  237. data/ext/libcouchbase/src/hdr_timings.c +92 -0
  238. data/ext/libcouchbase/src/hostlist.cc +301 -0
  239. data/ext/libcouchbase/src/hostlist.h +171 -0
  240. data/ext/libcouchbase/src/http/http-priv.h +307 -0
  241. data/ext/libcouchbase/src/http/http.cc +633 -0
  242. data/ext/libcouchbase/src/http/http.h +34 -0
  243. data/ext/libcouchbase/src/http/http_io.cc +307 -0
  244. data/ext/libcouchbase/src/instance.cc +722 -0
  245. data/ext/libcouchbase/src/internal.h +244 -0
  246. data/ext/libcouchbase/src/iofactory.c +575 -0
  247. data/ext/libcouchbase/src/jsparse/parser.cc +519 -0
  248. data/ext/libcouchbase/src/jsparse/parser.h +173 -0
  249. data/ext/libcouchbase/src/lcbht/lcbht.c +282 -0
  250. data/ext/libcouchbase/src/lcbht/lcbht.h +199 -0
  251. data/ext/libcouchbase/src/lcbio/connect.c +557 -0
  252. data/ext/libcouchbase/src/lcbio/connect.h +364 -0
  253. data/ext/libcouchbase/src/lcbio/ctx.c +611 -0
  254. data/ext/libcouchbase/src/lcbio/ctx.h +405 -0
  255. data/ext/libcouchbase/src/lcbio/iotable.c +290 -0
  256. data/ext/libcouchbase/src/lcbio/iotable.h +84 -0
  257. data/ext/libcouchbase/src/lcbio/ioutils.c +350 -0
  258. data/ext/libcouchbase/src/lcbio/ioutils.h +203 -0
  259. data/ext/libcouchbase/src/lcbio/lcbio.h +51 -0
  260. data/ext/libcouchbase/src/lcbio/manager.c +584 -0
  261. data/ext/libcouchbase/src/lcbio/manager.h +156 -0
  262. data/ext/libcouchbase/src/lcbio/protoctx.c +84 -0
  263. data/ext/libcouchbase/src/lcbio/rw-inl.h +115 -0
  264. data/ext/libcouchbase/src/lcbio/ssl.h +149 -0
  265. data/ext/libcouchbase/src/lcbio/timer-ng.h +179 -0
  266. data/ext/libcouchbase/src/lcbio/timer.c +132 -0
  267. data/ext/libcouchbase/src/legacy.c +430 -0
  268. data/ext/libcouchbase/src/list.c +144 -0
  269. data/ext/libcouchbase/src/list.h +127 -0
  270. data/ext/libcouchbase/src/logging.c +244 -0
  271. data/ext/libcouchbase/src/logging.h +86 -0
  272. data/ext/libcouchbase/src/mc/compress.c +90 -0
  273. data/ext/libcouchbase/src/mc/compress.h +61 -0
  274. data/ext/libcouchbase/src/mc/forward.c +186 -0
  275. data/ext/libcouchbase/src/mc/forward.h +90 -0
  276. data/ext/libcouchbase/src/mc/iovcursor-inl.h +279 -0
  277. data/ext/libcouchbase/src/mc/iovcursor.h +66 -0
  278. data/ext/libcouchbase/src/mc/mcreq-flush-inl.h +111 -0
  279. data/ext/libcouchbase/src/mc/mcreq.c +954 -0
  280. data/ext/libcouchbase/src/mc/mcreq.h +977 -0
  281. data/ext/libcouchbase/src/mcserver/mcserver.c +784 -0
  282. data/ext/libcouchbase/src/mcserver/mcserver.h +121 -0
  283. data/ext/libcouchbase/src/mcserver/negotiate.c +656 -0
  284. data/ext/libcouchbase/src/mcserver/negotiate.h +119 -0
  285. data/ext/libcouchbase/src/n1ql/ixmgmt.cc +860 -0
  286. data/ext/libcouchbase/src/n1ql/n1ql-internal.h +22 -0
  287. data/ext/libcouchbase/src/n1ql/n1ql.cc +729 -0
  288. data/ext/libcouchbase/src/n1ql/params.cc +215 -0
  289. data/ext/libcouchbase/src/netbuf/netbuf-defs.h +89 -0
  290. data/ext/libcouchbase/src/netbuf/netbuf-mblock.h +235 -0
  291. data/ext/libcouchbase/src/netbuf/netbuf.c +929 -0
  292. data/ext/libcouchbase/src/netbuf/netbuf.h +452 -0
  293. data/ext/libcouchbase/src/newconfig.c +385 -0
  294. data/ext/libcouchbase/src/nodeinfo.cc +194 -0
  295. data/ext/libcouchbase/src/operations/cbflush.c +71 -0
  296. data/ext/libcouchbase/src/operations/counter.c +116 -0
  297. data/ext/libcouchbase/src/operations/durability-cas.c +224 -0
  298. data/ext/libcouchbase/src/operations/durability-seqno.c +157 -0
  299. data/ext/libcouchbase/src/operations/durability.c +668 -0
  300. data/ext/libcouchbase/src/operations/durability_internal.h +199 -0
  301. data/ext/libcouchbase/src/operations/get.c +409 -0
  302. data/ext/libcouchbase/src/operations/observe-seqno.c +96 -0
  303. data/ext/libcouchbase/src/operations/observe.c +340 -0
  304. data/ext/libcouchbase/src/operations/pktfwd.c +86 -0
  305. data/ext/libcouchbase/src/operations/remove.c +83 -0
  306. data/ext/libcouchbase/src/operations/stats.c +461 -0
  307. data/ext/libcouchbase/src/operations/store.c +360 -0
  308. data/ext/libcouchbase/src/operations/subdoc.cc +510 -0
  309. data/ext/libcouchbase/src/operations/touch.c +81 -0
  310. data/ext/libcouchbase/src/packetutils.c +60 -0
  311. data/ext/libcouchbase/src/packetutils.h +147 -0
  312. data/ext/libcouchbase/src/probes.d +211 -0
  313. data/ext/libcouchbase/src/rdb/bigalloc.c +225 -0
  314. data/ext/libcouchbase/src/rdb/bigalloc.h +73 -0
  315. data/ext/libcouchbase/src/rdb/chunkalloc.c +174 -0
  316. data/ext/libcouchbase/src/rdb/libcalloc.c +94 -0
  317. data/ext/libcouchbase/src/rdb/rope.c +419 -0
  318. data/ext/libcouchbase/src/rdb/rope.h +488 -0
  319. data/ext/libcouchbase/src/retrychk.c +113 -0
  320. data/ext/libcouchbase/src/retryq.c +424 -0
  321. data/ext/libcouchbase/src/retryq.h +157 -0
  322. data/ext/libcouchbase/src/ringbuffer.c +442 -0
  323. data/ext/libcouchbase/src/ringbuffer.h +100 -0
  324. data/ext/libcouchbase/src/settings.c +95 -0
  325. data/ext/libcouchbase/src/settings.h +188 -0
  326. data/ext/libcouchbase/src/simplestring.c +211 -0
  327. data/ext/libcouchbase/src/simplestring.h +228 -0
  328. data/ext/libcouchbase/src/sllist-inl.h +197 -0
  329. data/ext/libcouchbase/src/sllist.h +76 -0
  330. data/ext/libcouchbase/src/ssl/CMakeLists.txt +23 -0
  331. data/ext/libcouchbase/src/ssl/ssl_c.c +415 -0
  332. data/ext/libcouchbase/src/ssl/ssl_common.c +454 -0
  333. data/ext/libcouchbase/src/ssl/ssl_e.c +408 -0
  334. data/ext/libcouchbase/src/ssl/ssl_iot_common.h +180 -0
  335. data/ext/libcouchbase/src/ssobuf.h +82 -0
  336. data/ext/libcouchbase/src/strcodecs/base64.c +123 -0
  337. data/ext/libcouchbase/src/strcodecs/strcodecs.h +285 -0
  338. data/ext/libcouchbase/src/timings.c +208 -0
  339. data/ext/libcouchbase/src/trace.h +105 -0
  340. data/ext/libcouchbase/src/utilities.c +171 -0
  341. data/ext/libcouchbase/src/vbucket/CMakeLists.txt +2 -0
  342. data/ext/libcouchbase/src/vbucket/aliases.h +35 -0
  343. data/ext/libcouchbase/src/vbucket/crc32.h +83 -0
  344. data/ext/libcouchbase/src/vbucket/hash.h +30 -0
  345. data/ext/libcouchbase/src/vbucket/json-inl.h +112 -0
  346. data/ext/libcouchbase/src/vbucket/ketama.c +66 -0
  347. data/ext/libcouchbase/src/vbucket/rfc1321/global.h +32 -0
  348. data/ext/libcouchbase/src/vbucket/rfc1321/md5.h +35 -0
  349. data/ext/libcouchbase/src/vbucket/rfc1321/md5c-inl.h +335 -0
  350. data/ext/libcouchbase/src/vbucket/vbucket.c +1543 -0
  351. data/ext/libcouchbase/src/views/docreq.c +194 -0
  352. data/ext/libcouchbase/src/views/docreq.h +83 -0
  353. data/ext/libcouchbase/src/views/viewreq.c +358 -0
  354. data/ext/libcouchbase/src/views/viewreq.h +36 -0
  355. data/ext/libcouchbase/src/wait.c +161 -0
  356. data/ext/libcouchbase/tests/CMakeLists.txt +140 -0
  357. data/ext/libcouchbase/tests/basic/t_base64.cc +81 -0
  358. data/ext/libcouchbase/tests/basic/t_ccbc103.cc +95 -0
  359. data/ext/libcouchbase/tests/basic/t_connstr.cc +404 -0
  360. data/ext/libcouchbase/tests/basic/t_creds.cc +32 -0
  361. data/ext/libcouchbase/tests/basic/t_ctlcodes.cc +92 -0
  362. data/ext/libcouchbase/tests/basic/t_hashset.cc +262 -0
  363. data/ext/libcouchbase/tests/basic/t_host.cc +198 -0
  364. data/ext/libcouchbase/tests/basic/t_jsparse.cc +137 -0
  365. data/ext/libcouchbase/tests/basic/t_jsparse.h +589 -0
  366. data/ext/libcouchbase/tests/basic/t_list.cc +155 -0
  367. data/ext/libcouchbase/tests/basic/t_logger.cc +65 -0
  368. data/ext/libcouchbase/tests/basic/t_misc.cc +24 -0
  369. data/ext/libcouchbase/tests/basic/t_n1qlstrings.cc +18 -0
  370. data/ext/libcouchbase/tests/basic/t_netbuf.cc +446 -0
  371. data/ext/libcouchbase/tests/basic/t_packet.cc +222 -0
  372. data/ext/libcouchbase/tests/basic/t_ringbuffer.cc +278 -0
  373. data/ext/libcouchbase/tests/basic/t_slist.cc +429 -0
  374. data/ext/libcouchbase/tests/basic/t_strerror.cc +64 -0
  375. data/ext/libcouchbase/tests/basic/t_string.cc +112 -0
  376. data/ext/libcouchbase/tests/basic/t_urlencode.cc +132 -0
  377. data/ext/libcouchbase/tests/check-all.cc +608 -0
  378. data/ext/libcouchbase/tests/htparse/t_basic.cc +193 -0
  379. data/ext/libcouchbase/tests/ioserver/connection.cc +166 -0
  380. data/ext/libcouchbase/tests/ioserver/future.cc +50 -0
  381. data/ext/libcouchbase/tests/ioserver/ioserver.cc +104 -0
  382. data/ext/libcouchbase/tests/ioserver/ioserver.h +478 -0
  383. data/ext/libcouchbase/tests/ioserver/socket.cc +88 -0
  384. data/ext/libcouchbase/tests/ioserver/ssl_connection.cc +145 -0
  385. data/ext/libcouchbase/tests/ioserver/threads-pthreads.cc +119 -0
  386. data/ext/libcouchbase/tests/ioserver/threads-win32.cc +117 -0
  387. data/ext/libcouchbase/tests/ioserver/threads.h +66 -0
  388. data/ext/libcouchbase/tests/iotests/iotests.h +15 -0
  389. data/ext/libcouchbase/tests/iotests/mock-environment.cc +524 -0
  390. data/ext/libcouchbase/tests/iotests/mock-environment.h +385 -0
  391. data/ext/libcouchbase/tests/iotests/mock-unit-test.cc +67 -0
  392. data/ext/libcouchbase/tests/iotests/mock-unit-test.h +61 -0
  393. data/ext/libcouchbase/tests/iotests/serverparams.h +76 -0
  394. data/ext/libcouchbase/tests/iotests/t_arithmetic.cc +143 -0
  395. data/ext/libcouchbase/tests/iotests/t_behavior.cc +226 -0
  396. data/ext/libcouchbase/tests/iotests/t_configcache.cc +117 -0
  397. data/ext/libcouchbase/tests/iotests/t_confmon.cc +241 -0
  398. data/ext/libcouchbase/tests/iotests/t_durability.cc +1059 -0
  399. data/ext/libcouchbase/tests/iotests/t_forward.cc +110 -0
  400. data/ext/libcouchbase/tests/iotests/t_get.cc +512 -0
  401. data/ext/libcouchbase/tests/iotests/t_http.cc +438 -0
  402. data/ext/libcouchbase/tests/iotests/t_iops.cc +175 -0
  403. data/ext/libcouchbase/tests/iotests/t_lock.cc +275 -0
  404. data/ext/libcouchbase/tests/iotests/t_misc.cc +713 -0
  405. data/ext/libcouchbase/tests/iotests/t_mutate.cc +609 -0
  406. data/ext/libcouchbase/tests/iotests/t_n1ql.cc +270 -0
  407. data/ext/libcouchbase/tests/iotests/t_netfail.cc +654 -0
  408. data/ext/libcouchbase/tests/iotests/t_obseqno.cc +157 -0
  409. data/ext/libcouchbase/tests/iotests/t_regression.cc +321 -0
  410. data/ext/libcouchbase/tests/iotests/t_sched.cc +88 -0
  411. data/ext/libcouchbase/tests/iotests/t_serverops.cc +230 -0
  412. data/ext/libcouchbase/tests/iotests/t_smoke.cc +528 -0
  413. data/ext/libcouchbase/tests/iotests/t_subdoc.cc +822 -0
  414. data/ext/libcouchbase/tests/iotests/t_syncmode.cc +64 -0
  415. data/ext/libcouchbase/tests/iotests/t_views.cc +405 -0
  416. data/ext/libcouchbase/tests/iotests/testutil.cc +250 -0
  417. data/ext/libcouchbase/tests/iotests/testutil.h +163 -0
  418. data/ext/libcouchbase/tests/mc/mctest.h +119 -0
  419. data/ext/libcouchbase/tests/mc/pktmaker.h +101 -0
  420. data/ext/libcouchbase/tests/mc/t_alloc.cc +269 -0
  421. data/ext/libcouchbase/tests/mc/t_context.cc +100 -0
  422. data/ext/libcouchbase/tests/mc/t_flush.cc +185 -0
  423. data/ext/libcouchbase/tests/mc/t_forward.cc +239 -0
  424. data/ext/libcouchbase/tests/mc/t_ioflush.cc +102 -0
  425. data/ext/libcouchbase/tests/mc/t_iovcursor.cc +173 -0
  426. data/ext/libcouchbase/tests/mocksupport/procutil.c +305 -0
  427. data/ext/libcouchbase/tests/mocksupport/procutil.h +89 -0
  428. data/ext/libcouchbase/tests/mocksupport/server.c +391 -0
  429. data/ext/libcouchbase/tests/mocksupport/server.h +72 -0
  430. data/ext/libcouchbase/tests/mocksupport/timeout.c +69 -0
  431. data/ext/libcouchbase/tests/nonio_tests.cc +23 -0
  432. data/ext/libcouchbase/tests/rdb/rdbtest.h +133 -0
  433. data/ext/libcouchbase/tests/rdb/t_basic.cc +128 -0
  434. data/ext/libcouchbase/tests/rdb/t_bigalloc.cc +93 -0
  435. data/ext/libcouchbase/tests/rdb/t_refs.cc +112 -0
  436. data/ext/libcouchbase/tests/socktests/socktest.cc +347 -0
  437. data/ext/libcouchbase/tests/socktests/socktest.h +448 -0
  438. data/ext/libcouchbase/tests/socktests/t_basic.cc +143 -0
  439. data/ext/libcouchbase/tests/socktests/t_ctx.cc +73 -0
  440. data/ext/libcouchbase/tests/socktests/t_manager.cc +179 -0
  441. data/ext/libcouchbase/tests/socktests/t_putex.cc +256 -0
  442. data/ext/libcouchbase/tests/socktests/t_read.cc +187 -0
  443. data/ext/libcouchbase/tests/socktests/t_reentrant.cc +143 -0
  444. data/ext/libcouchbase/tests/socktests/t_ssl.cc +80 -0
  445. data/ext/libcouchbase/tests/socktests/t_write.cc +95 -0
  446. data/ext/libcouchbase/tests/start_mock.bat +15 -0
  447. data/ext/libcouchbase/tests/start_mock.sh +42 -0
  448. data/ext/libcouchbase/tests/unit_tests.cc +43 -0
  449. data/ext/libcouchbase/tests/vbucket/confdata/bad.json +101 -0
  450. data/ext/libcouchbase/tests/vbucket/confdata/full_25.json +363 -0
  451. data/ext/libcouchbase/tests/vbucket/confdata/memd_25.json +90 -0
  452. data/ext/libcouchbase/tests/vbucket/confdata/memd_30.json +1 -0
  453. data/ext/libcouchbase/tests/vbucket/confdata/memd_45.json +1 -0
  454. data/ext/libcouchbase/tests/vbucket/confdata/terse_25.json +291 -0
  455. data/ext/libcouchbase/tests/vbucket/confdata/terse_30.json +1 -0
  456. data/ext/libcouchbase/tests/vbucket/t_config.cc +341 -0
  457. data/ext/libcouchbase/tools/CMakeLists.txt +51 -0
  458. data/ext/libcouchbase/tools/cbc-handlers.h +462 -0
  459. data/ext/libcouchbase/tools/cbc-n1qlback.cc +439 -0
  460. data/ext/libcouchbase/tools/cbc-pillowfight.cc +822 -0
  461. data/ext/libcouchbase/tools/cbc.cc +1541 -0
  462. data/ext/libcouchbase/tools/common/histogram.cc +43 -0
  463. data/ext/libcouchbase/tools/common/histogram.h +23 -0
  464. data/ext/libcouchbase/tools/common/my_inttypes.h +22 -0
  465. data/ext/libcouchbase/tools/common/options.cc +420 -0
  466. data/ext/libcouchbase/tools/common/options.h +81 -0
  467. data/ext/libcouchbase/tools/docgen/docgen.h +469 -0
  468. data/ext/libcouchbase/tools/docgen/loc.h +210 -0
  469. data/ext/libcouchbase/tools/docgen/placeholders.h +211 -0
  470. data/ext/libcouchbase/tools/docgen/seqgen.h +94 -0
  471. data/lib/libcouchbase.rb +36 -0
  472. data/lib/libcouchbase/bucket.rb +819 -0
  473. data/lib/libcouchbase/callbacks.rb +72 -0
  474. data/lib/libcouchbase/connection.rb +790 -0
  475. data/lib/libcouchbase/design_docs.rb +86 -0
  476. data/lib/libcouchbase/error.rb +68 -0
  477. data/lib/libcouchbase/ext/libcouchbase.rb +1135 -0
  478. data/lib/libcouchbase/ext/libcouchbase/cmdbase.rb +23 -0
  479. data/lib/libcouchbase/ext/libcouchbase/cmdcounter.rb +36 -0
  480. data/lib/libcouchbase/ext/libcouchbase/cmdendure.rb +26 -0
  481. data/lib/libcouchbase/ext/libcouchbase/cmdfts.rb +24 -0
  482. data/lib/libcouchbase/ext/libcouchbase/cmdget.rb +30 -0
  483. data/lib/libcouchbase/ext/libcouchbase/cmdgetreplica.rb +49 -0
  484. data/lib/libcouchbase/ext/libcouchbase/cmdhttp.rb +58 -0
  485. data/lib/libcouchbase/ext/libcouchbase/cmdn1ql.rb +40 -0
  486. data/lib/libcouchbase/ext/libcouchbase/cmdobseqno.rb +33 -0
  487. data/lib/libcouchbase/ext/libcouchbase/cmdobserve.rb +30 -0
  488. data/lib/libcouchbase/ext/libcouchbase/cmdstore.rb +40 -0
  489. data/lib/libcouchbase/ext/libcouchbase/cmdstoredur.rb +45 -0
  490. data/lib/libcouchbase/ext/libcouchbase/cmdsubdoc.rb +49 -0
  491. data/lib/libcouchbase/ext/libcouchbase/cmdverbosity.rb +29 -0
  492. data/lib/libcouchbase/ext/libcouchbase/cmdviewquery.rb +61 -0
  493. data/lib/libcouchbase/ext/libcouchbase/contigbuf.rb +14 -0
  494. data/lib/libcouchbase/ext/libcouchbase/create_st.rb +15 -0
  495. data/lib/libcouchbase/ext/libcouchbase/create_st0.rb +23 -0
  496. data/lib/libcouchbase/ext/libcouchbase/create_st1.rb +26 -0
  497. data/lib/libcouchbase/ext/libcouchbase/create_st2.rb +32 -0
  498. data/lib/libcouchbase/ext/libcouchbase/create_st3.rb +26 -0
  499. data/lib/libcouchbase/ext/libcouchbase/crst_u.rb +20 -0
  500. data/lib/libcouchbase/ext/libcouchbase/durability_opts_st_v.rb +11 -0
  501. data/lib/libcouchbase/ext/libcouchbase/durability_opts_t.rb +14 -0
  502. data/lib/libcouchbase/ext/libcouchbase/durabilityopt_sv0.rb +63 -0
  503. data/lib/libcouchbase/ext/libcouchbase/enums.rb +991 -0
  504. data/lib/libcouchbase/ext/libcouchbase/fragbuf.rb +18 -0
  505. data/lib/libcouchbase/ext/libcouchbase/ftshandle.rb +7 -0
  506. data/lib/libcouchbase/ext/libcouchbase/histogram.rb +34 -0
  507. data/lib/libcouchbase/ext/libcouchbase/http_request_t.rb +7 -0
  508. data/lib/libcouchbase/ext/libcouchbase/keybuf.rb +20 -0
  509. data/lib/libcouchbase/ext/libcouchbase/multicmd_ctx.rb +30 -0
  510. data/lib/libcouchbase/ext/libcouchbase/mutation_token.rb +17 -0
  511. data/lib/libcouchbase/ext/libcouchbase/n1qlhandle.rb +7 -0
  512. data/lib/libcouchbase/ext/libcouchbase/n1qlparams.rb +7 -0
  513. data/lib/libcouchbase/ext/libcouchbase/respbase.rb +29 -0
  514. data/lib/libcouchbase/ext/libcouchbase/respcounter.rb +32 -0
  515. data/lib/libcouchbase/ext/libcouchbase/respendure.rb +49 -0
  516. data/lib/libcouchbase/ext/libcouchbase/respfts.rb +40 -0
  517. data/lib/libcouchbase/ext/libcouchbase/respget.rb +44 -0
  518. data/lib/libcouchbase/ext/libcouchbase/resphttp.rb +48 -0
  519. data/lib/libcouchbase/ext/libcouchbase/respmcversion.rb +38 -0
  520. data/lib/libcouchbase/ext/libcouchbase/respn1ql.rb +41 -0
  521. data/lib/libcouchbase/ext/libcouchbase/respobseqno.rb +52 -0
  522. data/lib/libcouchbase/ext/libcouchbase/respobserve.rb +41 -0
  523. data/lib/libcouchbase/ext/libcouchbase/respserverbase.rb +32 -0
  524. data/lib/libcouchbase/ext/libcouchbase/respstats.rb +38 -0
  525. data/lib/libcouchbase/ext/libcouchbase/respstore.rb +32 -0
  526. data/lib/libcouchbase/ext/libcouchbase/respstoredur.rb +38 -0
  527. data/lib/libcouchbase/ext/libcouchbase/respsubdoc.rb +35 -0
  528. data/lib/libcouchbase/ext/libcouchbase/respviewquery.rb +67 -0
  529. data/lib/libcouchbase/ext/libcouchbase/sdentry.rb +22 -0
  530. data/lib/libcouchbase/ext/libcouchbase/sdspec.rb +26 -0
  531. data/lib/libcouchbase/ext/libcouchbase/t.rb +7 -0
  532. data/lib/libcouchbase/ext/libcouchbase/valbuf.rb +22 -0
  533. data/lib/libcouchbase/ext/libcouchbase/valbuf_u_buf.rb +14 -0
  534. data/lib/libcouchbase/ext/libcouchbase/viewhandle.rb +7 -0
  535. data/lib/libcouchbase/ext/libcouchbase_iocp.rb +26 -0
  536. data/lib/libcouchbase/ext/libcouchbase_libuv.rb +18 -0
  537. data/lib/libcouchbase/ext/tasks.rb +87 -0
  538. data/lib/libcouchbase/n1ql.rb +73 -0
  539. data/lib/libcouchbase/query_full_text.rb +147 -0
  540. data/lib/libcouchbase/query_n1ql.rb +121 -0
  541. data/lib/libcouchbase/query_view.rb +129 -0
  542. data/lib/libcouchbase/results_fiber.rb +262 -0
  543. data/lib/libcouchbase/results_native.rb +211 -0
  544. data/lib/libcouchbase/version.rb +5 -0
  545. data/libcouchbase.gemspec +61 -0
  546. data/spec/bucket_spec.rb +270 -0
  547. data/spec/connection_spec.rb +277 -0
  548. data/spec/design_docs_spec.rb +23 -0
  549. data/spec/error_spec.rb +26 -0
  550. data/spec/fts_spec.rb +129 -0
  551. data/spec/n1ql_spec.rb +201 -0
  552. data/spec/results_libuv_spec.rb +229 -0
  553. data/spec/results_native_spec.rb +259 -0
  554. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/design.json +1 -0
  555. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/data-0000.cbb +0 -0
  556. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/failover.json +1 -0
  557. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/meta.json +1 -0
  558. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/seqno.json +1 -0
  559. data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/snapshot_markers.json +1 -0
  560. data/spec/view_spec.rb +195 -0
  561. metadata +775 -0
data/Rakefile ADDED
@@ -0,0 +1,75 @@
1
+ require 'rubygems'
2
+ require 'rspec/core/rake_task' # testing framework
3
+ require 'yard' # yard documentation
4
+ require 'ffi' # loads the extension
5
+ require 'rake/clean' # for the :clobber rake task
6
+ require File.expand_path('../lib/libcouchbase/ext/tasks', __FILE__) # platform specific rake tasks used by compile
7
+
8
+
9
+
10
+ # By default we don't run network tests
11
+ task :default => :limited_spec
12
+ RSpec::Core::RakeTask.new(:limited_spec) do |t|
13
+ # Exclude full text search tests until we can automate index creation
14
+ t.rspec_opts = "--tag ~full_text_search --tag ~n1ql_query"
15
+ end
16
+ RSpec::Core::RakeTask.new(:spec)
17
+
18
+
19
+ desc 'Run all tests'
20
+ task :test => [:spec]
21
+
22
+
23
+ YARD::Rake::YardocTask.new do |t|
24
+ t.files = ['lib/**/*.rb', '-', 'ext/README.md', 'README.md']
25
+ end
26
+
27
+
28
+ desc 'Compile libcouchbase from submodule'
29
+ if FFI::Platform.windows?
30
+ task :compile => ["ext/bin/libcouchbase.#{FFI::Platform::LIBSUFFIX}"]
31
+ CLOBBER.include("ext/bin/libcouchbase.#{FFI::Platform::LIBSUFFIX}")
32
+ else
33
+ task :compile => ["ext/libcouchbase/build/lib/libcouchbase_libuv.#{FFI::Platform::LIBSUFFIX}"]
34
+ CLOBBER.include("ext/libcouchbase/build/lib/libcouchbase_libuv.#{FFI::Platform::LIBSUFFIX}")
35
+ end
36
+
37
+
38
+ # NOTE:: Generated on OSX
39
+ desc 'Generate the FFI bindings'
40
+ task :generate_bindings do
41
+ require "ffi/gen"
42
+
43
+ # NOTE:: you must export the include dir:
44
+ # export CPATH=./ext/libcouchbase/include/
45
+ #
46
+ # Once generated we need to:
47
+ # * adjust the ffi_lib path:
48
+ # ffi_lib ::File.expand_path("../../../../ext/libcouchbase/build/lib/libcouchbase_libuv.#{FFI::Platform::LIBSUFFIX}", __FILE__)
49
+ # * Rename some structs strings to pointers
50
+ # create_st3.rb -> connstr, username, passwd
51
+ # cmdhttp.rb -> body, reqhandle, content_type, username, password, host
52
+ # cmdfts.rb -> query
53
+ # respfts.rb -> row
54
+ # respviewquery.rb -> value, geometry, docid
55
+ # respn1ql.rb -> row
56
+
57
+ FFI::Gen.generate(
58
+ module_name: "Libcouchbase::Ext",
59
+ ffi_lib: "libcouchbase",
60
+ require_path: "libcouchbase/ext/libcouchbase",
61
+ headers: [
62
+ "./ext/libcouchbase/include/libcouchbase/couchbase.h",
63
+ "./ext/libcouchbase/include/libcouchbase/error.h",
64
+ "./ext/libcouchbase/include/libcouchbase/views.h",
65
+ "./ext/libcouchbase/include/libcouchbase/subdoc.h",
66
+ "./ext/libcouchbase/include/libcouchbase/n1ql.h",
67
+ "./ext/libcouchbase/include/libcouchbase/cbft.h",
68
+ "./ext/libcouchbase/include/libcouchbase/kvbuf.h"
69
+ ],
70
+ # Searching for stdarg.h
71
+ cflags: ["-I/System/Library/Frameworks/Kernel.framework/Versions/A/Headers"],
72
+ prefixes: ["LCB_", "lcb_"],
73
+ output: "libcouchbase.rb"
74
+ )
75
+ end
data/ext/README.md ADDED
@@ -0,0 +1,6 @@
1
+ To compile a libcouchbase.(so|dll|dylib) go to root directory of libuv project and run:
2
+
3
+ ```shell
4
+ git submodule update --init
5
+ rake compile
6
+ ```
data/ext/Rakefile ADDED
@@ -0,0 +1,20 @@
1
+
2
+ require 'rubygems'
3
+ require 'ffi'
4
+ require 'rake/clean'
5
+ require File.expand_path('../../lib/libcouchbase/ext/tasks', __FILE__)
6
+
7
+
8
+ Dir.chdir File.expand_path("../../", __FILE__)
9
+
10
+
11
+ task :default => :libcouchbase
12
+
13
+ desc "Compile libcouchbase from submodule"
14
+ if FFI::Platform.windows?
15
+ task :libcouchbase => ["ext/bin/libcouchbase.#{FFI::Platform::LIBSUFFIX}"]
16
+ CLOBBER.include("ext/bin/libcouchbase.#{FFI::Platform::LIBSUFFIX}")
17
+ else
18
+ task :libcouchbase => ["ext/libcouchbase/build/lib/libcouchbase_libuv.#{FFI::Platform::LIBSUFFIX}"]
19
+ CLOBBER.include("ext/libcouchbase/build/lib/libcouchbase_libuv.#{FFI::Platform::LIBSUFFIX}")
20
+ end
@@ -0,0 +1,130 @@
1
+ # Keep the entries sorted to reduce the risk for a merge conflict
2
+ *.[ao]
3
+ *.dirstamp
4
+ *.dll
5
+ *.dobj
6
+ *.exe
7
+ *.exp
8
+ *.gcda
9
+ *.gcno
10
+ *.gcov
11
+ *.l[aon]
12
+ *.lib
13
+ *.obj
14
+ *.orig
15
+ *.pdb
16
+ *.profile
17
+ *.sln
18
+ *.swo
19
+ *.swp
20
+ *.vcxproj
21
+ *.vcxproj.filters
22
+ *.vcxproj.user
23
+ *~
24
+ .DS_Store
25
+ ._*
26
+ .deps/
27
+ .libs/
28
+ /INSTALL
29
+ /Makefile
30
+ /Makefile.in
31
+ /aclocal.m4
32
+ /autom4te.cache
33
+ /check-all*
34
+ /config.cache
35
+ /config.log
36
+ /config.status
37
+ /config/compile
38
+ /config/config.guess
39
+ /config/config.sub
40
+ /config/depcomp
41
+ /config/install-sh
42
+ /config/ltmain.sh
43
+ /config/missing
44
+ /config/mkinstalldirs
45
+ /config/plugin.ac
46
+ /config/test-driver
47
+ /configure
48
+ /debug/sizes
49
+ /example/db/db
50
+ /example/db/vb
51
+ /example/debug/debug
52
+ /example/instancepool/instancepool
53
+ /example/libeventdirect/eventloop
54
+ /example/mcc/mcc
55
+ /example/minimal/minimal
56
+ /example/observe/observe
57
+ /example/syncmode/syncmode
58
+ /example/yajl/couchview
59
+ filelist.mk
60
+ /gtest-1.*
61
+ /include/libcouchbase/configuration.h
62
+ /libcouchbase*.changes
63
+ /libcouchbase*.deb
64
+ /libcouchbase*.dsc
65
+ /libcouchbase*.rpm
66
+ /libcouchbase*.tar.gz
67
+ /libtool
68
+ /config/m4/libtool.m4
69
+ /config/m4/ltoptions.m4
70
+ /config/m4/ltsugar.m4
71
+ /config/m4/ltversion.m4
72
+ /config/m4/lt~obsolete.m4
73
+ /config/m4/version.m4
74
+ /src/config.h
75
+ /src/config.h.in
76
+ /src/probes.h
77
+ /src/stamp-h1
78
+ /test-suite.log
79
+ /tests/*-test
80
+ /tests/*.log
81
+ /tests/*.trs
82
+ /tests/CouchbaseMock.jar
83
+ /tests/check-all
84
+ /tests/htparse-tests
85
+ /tests/nonio-tests
86
+ /tests/unit-tests
87
+ /tests/mc-tests
88
+ /tests/sock-tests
89
+ /tests/rdb-tests
90
+ /tools/cbc
91
+ /tools/cbc-pillowfight
92
+ /tools/cbc_debug.ilk
93
+ /vc100.idb
94
+ CMakeCache.txt
95
+ CMakeFiles/
96
+ CTestTestfile.cmake
97
+ Project.opensdf
98
+ Project.sdf
99
+ Project.suo
100
+ VERSION
101
+ build/
102
+ cbc-pillowfight.dir/
103
+ cbc.dir/
104
+ cmake_install.cmake
105
+ core*
106
+ couchbase.dir/
107
+ debug/cbc-pillowfight.ilk
108
+ debug/cbc.ilk
109
+ debug/libcouchbase.idb
110
+ debug/libcouchbase.ilk
111
+ ipch/
112
+ lcbutils.dir/
113
+ libcouchbase.opensdf
114
+ libcouchbase.sdf
115
+ libcouchbase.suo
116
+ unit-tests.dir/
117
+ win32/Debug/
118
+ MANIFEST
119
+ doc/public
120
+ doc/internal
121
+
122
+ # Symlinks
123
+ m4
124
+ configure.ac
125
+ Makefile.am
126
+ packaging/distinfo/distinfo.cmake
127
+ packaging/distinfo/MANIFEST
128
+ *.tlog
129
+ *.nupkg
130
+ *.suo
@@ -0,0 +1,19 @@
1
+ language: c
2
+
3
+ compiler:
4
+ - clang
5
+ - gcc
6
+
7
+ before_install:
8
+ - sudo apt-get -y install python-software-properties
9
+ - sudo add-apt-repository -y ppa:mnunberg/cmake
10
+ - sudo apt-get update
11
+ - sudo apt-get -y install libgtest-dev libssl-dev libev-dev libevent-dev cmake
12
+
13
+ script: |
14
+ ./cmake/configure --enable-debug --disable-couchbasemock && make && make alltests && cd build && \
15
+ (ctest -V || (cat check*.log; false))
16
+
17
+ notifications:
18
+ email:
19
+ - mark.nunberg@couchbase.com
@@ -0,0 +1,429 @@
1
+ # libcouchbase
2
+ # Copyright (C) 2013 Couchbase, Inc
3
+ # All rights reserved.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9)
18
+ # Currently this file is only used for Windows
19
+
20
+ ### BEGIN CONFIGURABLES ###
21
+ # These variables can be modified as needed
22
+
23
+ # Couchbase mock path to download
24
+ SET(COUCHBASE_MOCK_VERSION CouchbaseMock-1.4.3.jar)
25
+ # Maven repository where ${COUCHBASE_MOCK_VERSION} is to be found
26
+ SET(COUCHBASE_MOCK_DLSERVER http://packages.couchbase.com/clients/c/mock)
27
+ project(libcouchbase)
28
+
29
+ OPTION(LCB_NO_TESTS "Disable building of tests" OFF)
30
+ OPTION(LCB_NO_TOOLS "Disable building of additional tools" OFF)
31
+ OPTION(LCB_NO_PLUGINS "Disable the building of IO plugins for external libs" OFF)
32
+ OPTION(LCB_BUILD_LIBEVENT "Build the libevent plugin" ON)
33
+ OPTION(LCB_BUILD_LIBEV "Build the libev plugin (if available)" ON)
34
+ OPTION(LCB_BUILD_LIBUV "Build the libuv plugin (if available)" ON)
35
+ OPTION(LCB_MAINTAINER_MODE "Enables maintainer mode" OFF)
36
+ OPTION(LCB_NO_SSL "Do not compile SSL support" OFF)
37
+ OPTION(LCB_NO_SNAPPY "Do not compile snappy support" ON)
38
+ OPTION(LCB_USE_ASAN "Use AddressSanitizer support (Requires Clang)" OFF)
39
+ OPTION(LCB_USE_COVERAGE "Build with code coverage support" OFF)
40
+ OPTION(LCB_STATIC_SNAPPY "Use the bundled libsnappy. Do not link with system snappy" ${WIN32})
41
+ OPTION(LCB_USE_ARCHLIBDIR "Use architecture-prefixed library installation directory, if possible" OFF)
42
+ OPTION(LCB_BUILD_EXAMPLES "Build example applications" OFF)
43
+ OPTION(LCB_NO_MOCK "Don't run tests which depend on the mock" OFF)
44
+ OPTION(LCB_BUILD_DTRACE "Build DTrace instrumentation, if available on platform" ON)
45
+ OPTION(LCB_EMBED_PLUGIN_LIBEVENT "Embed the libevent plugin" OFF)
46
+ OPTION(LCB_STATIC_LIBEVENT "Link static libevent (only applicable if EMBED_PLUGIN_LIBEVENT is ON" OFF)
47
+ OPTION(LCB_USE_HDR_HISTOGRAM "Use HdrHistogram for statistics recording" OFF)
48
+
49
+ ### END CONFIGURABLES ###
50
+ IF(MSVC)
51
+ SET(CMAKE_DEBUG_POSTFIX "_d")
52
+ ELSE()
53
+ IF(APPLE)
54
+ SET(CMAKE_MACOSX_RPATH ON)
55
+ ENDIF()
56
+ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
57
+ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
58
+ LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
59
+ IF("${isSystemDir}" STREQUAL "-1")
60
+ SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
61
+ ENDIF("${isSystemDir}" STREQUAL "-1")
62
+ ENDIF()
63
+
64
+ # If building from a configured autotools tree, bail.
65
+ IF(EXISTS ${PROJECT_SOURCE_DIR}/src/config.h)
66
+ MESSAGE(FATAL_ERROR "config.h found in src/. This will break the CMake build. Remove it manually then rerun")
67
+ ENDIF()
68
+
69
+ SET(LCB_GENSRCDIR ${PROJECT_BINARY_DIR}/generated)
70
+ INCLUDE_DIRECTORIES(${LCB_GENSRCDIR})
71
+ SET(LCB_GENINFODIR ${PROJECT_SOURCE_DIR}/packaging/distinfo)
72
+
73
+ INCLUDE(cmake/Modules/GetLibcouchbaseFlags.cmake)
74
+ INCLUDE(cmake/Modules/FindCouchbaseLibevent.cmake)
75
+ INCLUDE(cmake/Modules/FindCouchbaseLibev.cmake)
76
+ INCLUDE(cmake/Modules/FindCouchbaseLibuv.cmake)
77
+ INCLUDE(cmake/Modules/GetPlatformCCInfo.cmake)
78
+ INCLUDE(cmake/Modules/GetVersionInfo.cmake)
79
+ INCLUDE(cmake/Modules/CopyPDB.cmake)
80
+ INCLUDE(cmake/Modules/DownloadLcbDep.cmake)
81
+ INCLUDE(CheckIncludeFiles)
82
+ INCLUDE(cmake/source_files.cmake)
83
+
84
+ IF(LCB_USE_HDR_HISTOGRAM)
85
+ INCLUDE(cmake/Modules/FindCouchbaseHdrHistogram.cmake)
86
+ ENDIF()
87
+ IF(HDR_HISTOGRAM_FOUND)
88
+ INCLUDE_DIRECTORIES(${HDR_HISTOGRAM_INCLUDES})
89
+ SET(LCB_HDR_HISTOGRAM_LINK "${HDR_HISTOGRAM_LIBRARIES}")
90
+ LIST(APPEND LCB_CORE_SRC "src/hdr_timings.c")
91
+ ELSE()
92
+ SET(LCB_HDR_HISTOGRAM_LINK "")
93
+ LIST(APPEND LCB_CORE_SRC "src/timings.c")
94
+ ENDIF()
95
+
96
+ IF(LIB_INSTALL_DIR)
97
+ SET(CMAKE_INSTALL_LIBDIR "${LIB_INSTALL_DIR}")
98
+ ENDIF()
99
+ IF(NOT LCB_USE_ARCHLIBDIR AND NOT CMAKE_INSTALL_LIBDIR)
100
+ SET(CMAKE_INSTALL_LIBDIR "lib")
101
+ ENDIF()
102
+ INCLUDE(GNUInstallDirs)
103
+
104
+
105
+ SET(CPACK_PACKAGE_VERSION_MAJOR "${LCB_VERSION_MAJOR}")
106
+ SET(CPACK_PACKAGE_VERSION_MINOR "${LCB_VERSION_MINOR}")
107
+ SET(CPACK_PACKAGE_VERSION_PATCH "${LCB_VERSION_PATCH}")
108
+ IF(NOT CMAKE_BUILD_TYPE)
109
+ SET(CPACK_INSTALL_SCRIPT
110
+ "${PROJECT_SOURCE_DIR}/cmake/Modules/DistScript.cmake")
111
+ ENDIF()
112
+ SET(lcb_package_name "libcouchbase-${LCB_VERSION}_${LCB_ARCH_STRING}_${LCB_CC_STRING}")
113
+ SET(CPACK_PACKAGE_FILE_NAME ${lcb_package_name})
114
+
115
+ IF(WIN32)
116
+ SET(CPACK_GENERATOR "ZIP")
117
+ ELSE()
118
+ SET(CPACK_GENERATOR "TGZ")
119
+ ENDIF()
120
+
121
+ INCLUDE(CPack)
122
+
123
+ CONFIGURE_FILE(
124
+ ${PROJECT_SOURCE_DIR}/include/libcouchbase/configuration.h.in
125
+ ${LCB_GENSRCDIR}/libcouchbase/configuration.h
126
+ @ONLY)
127
+
128
+ CONFIGURE_FILE(
129
+ ${PROJECT_SOURCE_DIR}/cmake/defs.mk.in
130
+ ${PROJECT_BINARY_DIR}/defs.mk)
131
+
132
+ CONFIGURE_FILE(
133
+ ${PROJECT_SOURCE_DIR}/packaging/dllversion.rc.in
134
+ ${PROJECT_BINARY_DIR}/dllversion.rc)
135
+
136
+ SET(NT_REQUIRED_VERSION 0x0600)
137
+
138
+ ADD_DEFINITIONS(-DLIBCOUCHBASE_INTERNAL=1)
139
+
140
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
141
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
142
+ IF(WIN32)
143
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
144
+ ELSE()
145
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
146
+ ENDIF()
147
+
148
+ SET(SOURCE_ROOT ${PROJECT_SOURCE_DIR})
149
+
150
+ IF(WIN32)
151
+ ADD_DEFINITIONS(-DWINVER=${NT_REQUIRED_VERSION})
152
+ ADD_DEFINITIONS(-D_WIN32_WINNT=${NT_REQUIRED_VERSION})
153
+ SET(lcb_plat_includes "${SOURCE_ROOT}/contrib/win32-defs")
154
+ SET(lcb_plat_libs ws2_32.lib)
155
+ SET(lcb_plat_objs $<TARGET_OBJECTS:couchbase_iocp>)
156
+ ELSE()
157
+ SET(lcb_plat_libs m)
158
+ IF(NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
159
+ SET(lcb_plat_libs ${lcb_plat_libs} dl)
160
+ ELSE()
161
+ # BSD _and_ DTrace
162
+ IF(LCB_BUILD_DTRACE)
163
+ SET(lcb_plat_libs ${lcb_plat_libs} elf)
164
+ ENDIF()
165
+ ENDIF()
166
+ IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
167
+ SET(lcb_plat_libs ${lcb_plat_libs} nsl socket)
168
+ ENDIF()
169
+ IF(LCB_EMBED_PLUGIN_LIBEVENT)
170
+ SET(lcb_plat_objs ${lcb_plat_objs} $<TARGET_OBJECTS:couchbase_libevent>)
171
+ SET(lcb_plat_libs ${lcb_plat_libs} ${LIBEVENT_LIBRARIES})
172
+ ADD_DEFINITIONS(-DLCB_EMBED_PLUGIN_LIBEVENT)
173
+ ENDIF()
174
+ ENDIF()
175
+
176
+ INCLUDE_DIRECTORIES(BEFORE ${SOURCE_ROOT}/include
177
+ ${SOURCE_ROOT}/contrib
178
+ ${SOURCE_ROOT}/contrib/cbsasl/include
179
+ ${SOURCE_ROOT}/src
180
+ ${lcb_plat_includes}
181
+ ${SOURCE_ROOT})
182
+
183
+ # These files are bundled in a static library.
184
+ # They export no symbols of their own and may
185
+ # be considered as 'static'
186
+
187
+ ADD_LIBRARY(couchbase_utils OBJECT ${LCB_UTILS_SRC})
188
+
189
+ MACRO(LCB_UTIL tgt)
190
+ SET_TARGET_PROPERTIES(${tgt}
191
+ PROPERTIES
192
+ COMPILE_FLAGS "${LCB_CORE_CFLAGS}"
193
+ POSITION_INDEPENDENT_CODE TRUE)
194
+ ENDMACRO()
195
+
196
+ MACRO(LCB_CXXUTIL tgt)
197
+ SET_TARGET_PROPERTIES(${tgt}
198
+ PROPERTIES
199
+ COMPILE_FLAGS "${LCB_CORE_CXXFLAGS}"
200
+ POSITION_INDEPENDENT_CODE TRUE)
201
+ ENDMACRO()
202
+
203
+ ADD_LIBRARY(netbuf OBJECT ${LCB_NETBUF_SRC})
204
+ ADD_LIBRARY(netbuf-malloc OBJECT ${LCB_NETBUF_SRC})
205
+ ADD_LIBRARY(mcreq OBJECT ${LCB_MC_SRC})
206
+ ADD_LIBRARY(rdb OBJECT ${LCB_RDB_SRC})
207
+ ADD_LIBRARY(lcbio OBJECT ${LCB_IO_SRC})
208
+ ADD_LIBRARY(lcbht OBJECT ${LCB_HT_SRC})
209
+ ADD_LIBRARY(lcbcore OBJECT ${LCB_CORE_SRC})
210
+ ADD_LIBRARY(lcbcore-cxx OBJECT ${LCB_CORE_CXXSRC})
211
+
212
+ SET_TARGET_PROPERTIES(netbuf-malloc PROPERTIES COMPILE_DEFINITIONS NETBUF_LIBC_PROXY=1)
213
+ LCB_UTIL(netbuf-malloc)
214
+ LCB_UTIL(netbuf)
215
+ LCB_UTIL(rdb)
216
+ LCB_UTIL(lcbio)
217
+ LCB_UTIL(couchbase_utils)
218
+ LCB_UTIL(mcreq)
219
+ LCB_UTIL(lcbht)
220
+ LCB_UTIL(lcbcore)
221
+ LCB_CXXUTIL(lcbcore-cxx)
222
+
223
+ ADD_SUBDIRECTORY(src/vbucket)
224
+ ADD_SUBDIRECTORY(contrib/cbsasl)
225
+ ADD_SUBDIRECTORY(contrib/cliopts)
226
+ ADD_SUBDIRECTORY(src/ssl)
227
+ ADD_SUBDIRECTORY(contrib/lcb-jsoncpp)
228
+ IF(LCB_BUILD_EXAMPLES)
229
+ ADD_SUBDIRECTORY(example)
230
+ ENDIF()
231
+
232
+ IF(LCB_NO_SSL)
233
+ MESSAGE(STATUS "SSL support will be disabled")
234
+ ADD_DEFINITIONS(-DLCB_NO_SSL=1)
235
+ ENDIF()
236
+
237
+ IF(LCB_BUILD_STATIC)
238
+ SET(_lcb_linkspec STATIC)
239
+ ELSE()
240
+ SET(_lcb_linkspec SHARED)
241
+ ENDIF()
242
+
243
+ # CMake configuration
244
+ IF(NOT WIN32 AND LCB_BUILD_DTRACE)
245
+ INCLUDE(cmake/Modules/ConfigureDtrace.cmake)
246
+ ENDIF()
247
+
248
+ FILE(GLOB LCB_VIEWS_C_SRC src/views/*.c)
249
+ ADD_LIBRARY(lcb_views_c OBJECT ${LCB_VIEWS_C_SRC})
250
+ LCB_UTIL(lcb_views_c)
251
+
252
+ FILE(GLOB LCB_JSPARSE_SRC src/jsparse/*.cc)
253
+ ADD_LIBRARY(lcb_jsparse OBJECT ${LCB_JSPARSE_SRC})
254
+ LCB_CXXUTIL(lcb_jsparse)
255
+
256
+ SET(LCB_CORE_OBJS
257
+ $<TARGET_OBJECTS:couchbase_select>
258
+ $<TARGET_OBJECTS:couchbase_utils>
259
+ $<TARGET_OBJECTS:vbucket>
260
+ $<TARGET_OBJECTS:mcreq>
261
+ $<TARGET_OBJECTS:netbuf>
262
+ $<TARGET_OBJECTS:cbsasl>
263
+ $<TARGET_OBJECTS:lcbio>
264
+ $<TARGET_OBJECTS:rdb>
265
+ $<TARGET_OBJECTS:lcbht>
266
+ $<TARGET_OBJECTS:lcbcore>
267
+ $<TARGET_OBJECTS:lcbcore-cxx>
268
+ $<TARGET_OBJECTS:lcb_views_c>
269
+ $<TARGET_OBJECTS:lcb_jsparse>
270
+ $<TARGET_OBJECTS:lcb_jsoncpp>
271
+ ${LCB_DTRACE_OBJECT}
272
+ ${lcb_plat_objs}
273
+ ${lcb_ssl_objs})
274
+
275
+ ADD_LIBRARY(couchbaseS STATIC ${LCB_CORE_OBJS})
276
+ ADD_LIBRARY(couchbase ${_lcb_linkspec} ${LCB_CORE_OBJS} ${PROJECT_BINARY_DIR}/dllversion.rc)
277
+
278
+ # For DTrace implementations which need to gain access to all the *.o files first
279
+ # we need to hook the linker command to a custom perl script which will intercept
280
+ # the object files passed to the linker, run dtrace on them, and inject the generated
281
+ # object into the linker commandline. This is a bit fragile but we don't officially
282
+ # support any of these platforms anyway
283
+ IF(LCB_DTRACE_INSTRO)
284
+ SET(_lcb_linkhook "${PROJECT_SOURCE_DIR}/cmake/dtrace-instr-link.pl ${LCB_DTRACE_SRC}")
285
+ SET_TARGET_PROPERTIES(couchbase PROPERTIES RULE_LAUNCH_LINK ${_lcb_linkhook})
286
+ SET_TARGET_PROPERTIES(couchbaseS PROPERTIES RULE_LAUNCH_LINK ${_lcb_linkhook})
287
+ ENDIF()
288
+
289
+ # This is done to be ABI-compatible with Autotools. On OSX, autotools generates
290
+ # a library with a Compatibility and Current versions of 3.x despite our library
291
+ # actually being versioned at 2.x. To make things worse, autotools also actually
292
+ # provided a _symlink_ of libcouchbase.2.dylib. CMake cannot do this manually
293
+ # and thus we disable the SOVERSION appending when on OS X, and revert to
294
+ # inserting the version information by hand.
295
+ IF(NOT APPLE)
296
+ SET_TARGET_PROPERTIES(couchbase PROPERTIES
297
+ SOVERSION "${LCB_SONAME_MAJOR}" VERSION "${LCB_SONAME_FULL}")
298
+ ELSE()
299
+ SET_TARGET_PROPERTIES(couchbase PROPERTIES
300
+ LINK_FLAGS "-compatibility_version ${LCB_SONAME_MAJOR} -current_version ${LCB_SONAME_FULL}"
301
+ OUTPUT_NAME couchbase.2)
302
+ ADD_CUSTOM_COMMAND(TARGET couchbase POST_BUILD
303
+ COMMAND rm -f libcouchbase.dylib
304
+ COMMAND ln libcouchbase.2.dylib libcouchbase.dylib
305
+ WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
306
+ INSTALL(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libcouchbase.dylib
307
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
308
+ ENDIF()
309
+
310
+
311
+ IF(NOT LCB_NO_SNAPPY)
312
+ IF(LCB_STATIC_SNAPPY)
313
+ MESSAGE(STATUS "Will use embedded libsnappy")
314
+ ADD_SUBDIRECTORY(contrib/snappy)
315
+ SET(LCB_SNAPPY_LINK lcbsnappy)
316
+ ELSE()
317
+ INCLUDE(cmake/Modules/FindCouchbaseSnappy.cmake)
318
+ IF(NOT SNAPPY_FOUND)
319
+ MESSAGE(FATAL_ERROR "Snappy not found and building with dynamic snappy requested")
320
+ ELSE()
321
+ SET(LCB_SNAPPY_LINK ${SNAPPY_LIBRARIES})
322
+ INCLUDE_DIRECTORIES(${SNAPPY_INCLUDES})
323
+ ENDIF()
324
+ ENDIF()
325
+ ELSE()
326
+ MESSAGE(STATUS "Compression support will be disabled")
327
+ ADD_DEFINITIONS(-DLCB_NO_SNAPPY=1)
328
+ SET(LCB_SNAPPY_LINK "")
329
+ ENDIF()
330
+
331
+ SET_TARGET_PROPERTIES(couchbase PROPERTIES PREFIX "lib")
332
+ SET_TARGET_PROPERTIES(couchbase PROPERTIES IMPORT_PREFIX "lib")
333
+ SET(LCB_LINK_DEPS ${lcb_plat_libs} ${lcb_ssl_libs} ${LCB_SNAPPY_LINK} ${LCB_HDR_HISTOGRAM_LINK})
334
+ IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
335
+ SET(LCB_LINK_DEPS ${LCB_LINK_DEPS} rt)
336
+ ENDIF()
337
+
338
+ TARGET_LINK_LIBRARIES(couchbase ${LCB_LINK_DEPS})
339
+ TARGET_LINK_LIBRARIES(couchbaseS ${LCB_LINK_DEPS})
340
+
341
+ ENABLE_TESTING()
342
+ IF(NOT LCB_NO_TESTS)
343
+ ADD_SUBDIRECTORY(tests tests)
344
+ ELSE()
345
+ ADD_TEST(NAME dummytest COMMAND echo "No Tests!")
346
+ ENDIF(NOT LCB_NO_TESTS)
347
+
348
+ IF(NOT LCB_NO_TOOLS)
349
+ ADD_SUBDIRECTORY(tools tools)
350
+ ENDIF(NOT LCB_NO_TOOLS)
351
+
352
+ # Always add this file, as we need the headers for this!
353
+ ADD_SUBDIRECTORY(plugins/io/libuv)
354
+ IF(NOT LCB_NO_PLUGINS AND LCB_BUILD_LIBUV)
355
+ ENDIF()
356
+
357
+ IF(NOT LCB_NO_PLUGINS AND NOT WIN32)
358
+ IF(LCB_BUILD_LIBEVENT)
359
+ ADD_SUBDIRECTORY(plugins/io/libevent)
360
+ ENDIF()
361
+ IF(LCB_BUILD_LIBEV)
362
+ ADD_SUBDIRECTORY(plugins/io/libev)
363
+ ENDIF()
364
+ IF(NOT (HAVE_LIBEV OR HAVE_LIBEVENT))
365
+ MESSAGE(FATAL_ERROR
366
+ "libev or libevent development files missing.
367
+ You can disable these dependencies by passing
368
+ -DLCB_NO_PLUGINS=1 to Cmake, or
369
+ --disable-plugins to the configure script")
370
+ ENDIF()
371
+ ENDIF()
372
+
373
+
374
+ IF(LCB_MAINTAINER_MODE)
375
+ IF(NOT (HAVE_LIBEV AND HAVE_LIBEVENT AND HAVE_LIBUV))
376
+ MESSAGE(FATAL_ERROR "Maintainer mode requires all plugins to be present")
377
+ ENDIF()
378
+ ENDIF()
379
+
380
+ ADD_SUBDIRECTORY(plugins/io/select)
381
+ ADD_SUBDIRECTORY(plugins/io/iocp)
382
+ INSTALL(TARGETS couchbase
383
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
384
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
385
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
386
+
387
+ INSTALL(DIRECTORY include/libcouchbase ${LCB_GENSRCDIR}/libcouchbase
388
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
389
+ FILES_MATCHING PATTERN *.h PATTERN *.c)
390
+
391
+ INSTALL(DIRECTORY doc/man/ DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 FILES_MATCHING PATTERN *.1)
392
+ INSTALL(DIRECTORY doc/man/ DESTINATION ${CMAKE_INSTALL_MANDIR}/man4 FILES_MATCHING PATTERN *.4)
393
+
394
+ INSTALL_PDBS(couchbase)
395
+
396
+ SET(_lcb_tarname "libcouchbase-${LCB_VERSION}")
397
+ SET(_lcb_manifest "${LCB_GENINFODIR}/MANIFEST")
398
+
399
+ # pkg-config stuff goes with installation
400
+ IF(NOT WIN32)
401
+ CONFIGURE_FILE(packaging/libcouchbase.pc.in packaging/libcouchbase.pc @ONLY)
402
+ INSTALL(FILES ${PROJECT_BINARY_DIR}/packaging/libcouchbase.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
403
+ ENDIF()
404
+
405
+
406
+ ADD_CUSTOM_TARGET(uninstall
407
+ COMMAND xargs rm -vf < ${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt)
408
+
409
+ ADD_CUSTOM_TARGET(file_manifest
410
+ COMMAND sh -c 'test -e ${_lcb_manifest} || git ls-files > ${_lcb_manifest}'
411
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
412
+
413
+
414
+ ADD_CUSTOM_TARGET(dist
415
+ COMMAND rm -rf "${_lcb_tarname}"
416
+ COMMAND mkdir "${_lcb_tarname}"
417
+ COMMAND tar -cf - -C ${PROJECT_SOURCE_DIR} -T ${_lcb_manifest} | tar xf - -C "${_lcb_tarname}"
418
+ COMMAND cp -a "${LCB_GENINFODIR}" "${_lcb_tarname}/packaging"
419
+ COMMAND tar -czf "${_lcb_tarname}.tar.gz" "${_lcb_tarname}"
420
+ COMMAND rm -rf "${_lcb_tarname}"
421
+ DEPENDS file_manifest)
422
+
423
+ # Generate our configuration file _after_ we've collected everything
424
+ INCLUDE(cmake/Modules/GenerateConfigDotH.cmake)
425
+
426
+ # Build any local tests/scripts
427
+ IF (EXISTS ${SOURCE_ROOT}/tests/LOCAL)
428
+ ADD_SUBDIRECTORY(${SOURCE_ROOT}/tests/LOCAL)
429
+ ENDIF()