rugged 1.3.2.3 → 1.4.2

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 (329) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/extconf.rb +1 -1
  3. data/ext/rugged/rugged_config.c +7 -2
  4. data/ext/rugged/rugged_remote.c +17 -0
  5. data/lib/rugged/version.rb +1 -1
  6. data/vendor/libgit2/CMakeLists.txt +103 -276
  7. data/vendor/libgit2/COPYING +36 -19
  8. data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
  9. data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
  10. data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
  11. data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
  12. data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
  13. data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
  14. data/vendor/libgit2/cmake/{FindHTTP_Parser.cmake → FindHTTPParser.cmake} +17 -17
  15. data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
  16. data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
  17. data/vendor/libgit2/cmake/FindPCRE.cmake +13 -13
  18. data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
  19. data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
  20. data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
  21. data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
  22. data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
  23. data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
  24. data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
  25. data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
  26. data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
  27. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
  28. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +19 -0
  29. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
  30. data/vendor/libgit2/cmake/SelectHashes.cmake +39 -49
  31. data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
  32. data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
  33. data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
  34. data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
  35. data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
  36. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +31 -31
  37. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +1 -1
  38. data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
  39. data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
  40. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
  42. data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
  43. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  44. data/vendor/libgit2/deps/zlib/crc32.c +288 -975
  45. data/vendor/libgit2/deps/zlib/crc32.h +436 -9441
  46. data/vendor/libgit2/deps/zlib/deflate.c +31 -83
  47. data/vendor/libgit2/deps/zlib/deflate.h +15 -12
  48. data/vendor/libgit2/deps/zlib/gzguts.h +2 -3
  49. data/vendor/libgit2/deps/zlib/infback.c +1 -2
  50. data/vendor/libgit2/deps/zlib/inffast.c +14 -14
  51. data/vendor/libgit2/deps/zlib/inflate.c +8 -39
  52. data/vendor/libgit2/deps/zlib/inflate.h +2 -3
  53. data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
  54. data/vendor/libgit2/deps/zlib/trees.c +48 -27
  55. data/vendor/libgit2/deps/zlib/zlib.h +100 -126
  56. data/vendor/libgit2/deps/zlib/zutil.c +2 -2
  57. data/vendor/libgit2/deps/zlib/zutil.h +9 -12
  58. data/vendor/libgit2/include/git2/apply.h +16 -2
  59. data/vendor/libgit2/include/git2/attr.h +11 -2
  60. data/vendor/libgit2/include/git2/blame.h +4 -1
  61. data/vendor/libgit2/include/git2/blob.h +14 -1
  62. data/vendor/libgit2/include/git2/branch.h +2 -0
  63. data/vendor/libgit2/include/git2/buffer.h +18 -78
  64. data/vendor/libgit2/include/git2/cert.h +2 -2
  65. data/vendor/libgit2/include/git2/checkout.h +5 -2
  66. data/vendor/libgit2/include/git2/clone.h +3 -3
  67. data/vendor/libgit2/include/git2/commit.h +2 -0
  68. data/vendor/libgit2/include/git2/common.h +5 -12
  69. data/vendor/libgit2/include/git2/config.h +19 -3
  70. data/vendor/libgit2/include/git2/credential.h +2 -1
  71. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  72. data/vendor/libgit2/include/git2/deprecated.h +1 -1
  73. data/vendor/libgit2/include/git2/describe.h +7 -2
  74. data/vendor/libgit2/include/git2/diff.h +17 -9
  75. data/vendor/libgit2/include/git2/email.h +1 -1
  76. data/vendor/libgit2/include/git2/errors.h +1 -2
  77. data/vendor/libgit2/include/git2/filter.h +7 -2
  78. data/vendor/libgit2/include/git2/graph.h +1 -0
  79. data/vendor/libgit2/include/git2/ignore.h +1 -1
  80. data/vendor/libgit2/include/git2/index.h +11 -5
  81. data/vendor/libgit2/include/git2/indexer.h +19 -0
  82. data/vendor/libgit2/include/git2/merge.h +23 -3
  83. data/vendor/libgit2/include/git2/message.h +2 -0
  84. data/vendor/libgit2/include/git2/object.h +23 -0
  85. data/vendor/libgit2/include/git2/odb.h +37 -7
  86. data/vendor/libgit2/include/git2/odb_backend.h +1 -1
  87. data/vendor/libgit2/include/git2/pack.h +24 -8
  88. data/vendor/libgit2/include/git2/patch.h +8 -0
  89. data/vendor/libgit2/include/git2/pathspec.h +1 -1
  90. data/vendor/libgit2/include/git2/proxy.h +1 -1
  91. data/vendor/libgit2/include/git2/rebase.h +9 -1
  92. data/vendor/libgit2/include/git2/refdb.h +3 -0
  93. data/vendor/libgit2/include/git2/reflog.h +1 -1
  94. data/vendor/libgit2/include/git2/refs.h +2 -2
  95. data/vendor/libgit2/include/git2/remote.h +184 -37
  96. data/vendor/libgit2/include/git2/repository.h +14 -9
  97. data/vendor/libgit2/include/git2/reset.h +2 -2
  98. data/vendor/libgit2/include/git2/revparse.h +1 -1
  99. data/vendor/libgit2/include/git2/revwalk.h +4 -1
  100. data/vendor/libgit2/include/git2/signature.h +1 -1
  101. data/vendor/libgit2/include/git2/stash.h +3 -3
  102. data/vendor/libgit2/include/git2/status.h +9 -3
  103. data/vendor/libgit2/include/git2/submodule.h +7 -2
  104. data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
  105. data/vendor/libgit2/include/git2/sys/odb_backend.h +2 -5
  106. data/vendor/libgit2/include/git2/sys/remote.h +31 -0
  107. data/vendor/libgit2/include/git2/sys/stream.h +1 -1
  108. data/vendor/libgit2/include/git2/sys/transport.h +25 -34
  109. data/vendor/libgit2/include/git2/tag.h +1 -0
  110. data/vendor/libgit2/include/git2/tree.h +4 -3
  111. data/vendor/libgit2/include/git2/types.h +7 -7
  112. data/vendor/libgit2/include/git2/version.h +3 -3
  113. data/vendor/libgit2/include/git2/worktree.h +12 -2
  114. data/vendor/libgit2/src/CMakeLists.txt +189 -315
  115. data/vendor/libgit2/src/annotated_commit.h +1 -1
  116. data/vendor/libgit2/src/apply.c +18 -18
  117. data/vendor/libgit2/src/apply.h +2 -2
  118. data/vendor/libgit2/src/attr.c +18 -18
  119. data/vendor/libgit2/src/attr_file.c +17 -17
  120. data/vendor/libgit2/src/attr_file.h +4 -4
  121. data/vendor/libgit2/src/attrcache.c +17 -12
  122. data/vendor/libgit2/src/blame_git.c +1 -1
  123. data/vendor/libgit2/src/blob.c +33 -26
  124. data/vendor/libgit2/src/blob.h +1 -1
  125. data/vendor/libgit2/src/branch.c +150 -109
  126. data/vendor/libgit2/src/branch.h +15 -3
  127. data/vendor/libgit2/src/buf.c +126 -0
  128. data/vendor/libgit2/src/buf.h +50 -0
  129. data/vendor/libgit2/src/cc-compat.h +1 -1
  130. data/vendor/libgit2/src/checkout.c +74 -68
  131. data/vendor/libgit2/src/cherrypick.c +10 -10
  132. data/vendor/libgit2/src/clone.c +66 -66
  133. data/vendor/libgit2/src/commit.c +128 -58
  134. data/vendor/libgit2/src/commit.h +24 -1
  135. data/vendor/libgit2/src/commit_graph.c +68 -53
  136. data/vendor/libgit2/src/commit_graph.h +10 -3
  137. data/vendor/libgit2/src/commit_list.c +2 -3
  138. data/vendor/libgit2/src/common.h +10 -3
  139. data/vendor/libgit2/src/config.c +99 -77
  140. data/vendor/libgit2/src/config.h +15 -2
  141. data/vendor/libgit2/src/config_file.c +103 -91
  142. data/vendor/libgit2/src/config_mem.c +9 -9
  143. data/vendor/libgit2/src/config_parse.c +27 -23
  144. data/vendor/libgit2/src/crlf.c +24 -21
  145. data/vendor/libgit2/src/date.c +10 -17
  146. data/vendor/libgit2/src/date.h +33 -0
  147. data/vendor/libgit2/src/describe.c +27 -19
  148. data/vendor/libgit2/src/diff.c +25 -8
  149. data/vendor/libgit2/src/diff.h +2 -4
  150. data/vendor/libgit2/src/diff_driver.c +34 -36
  151. data/vendor/libgit2/src/diff_driver.h +3 -3
  152. data/vendor/libgit2/src/diff_file.c +29 -20
  153. data/vendor/libgit2/src/diff_generate.c +30 -6
  154. data/vendor/libgit2/src/diff_generate.h +5 -3
  155. data/vendor/libgit2/src/diff_print.c +102 -95
  156. data/vendor/libgit2/src/diff_stats.c +40 -29
  157. data/vendor/libgit2/src/{message.h → diff_stats.h} +7 -6
  158. data/vendor/libgit2/src/diff_tform.c +9 -8
  159. data/vendor/libgit2/src/diff_xdiff.c +3 -8
  160. data/vendor/libgit2/src/email.c +54 -38
  161. data/vendor/libgit2/src/email.h +1 -1
  162. data/vendor/libgit2/src/errors.c +18 -18
  163. data/vendor/libgit2/src/features.h.in +6 -1
  164. data/vendor/libgit2/src/fetch.c +69 -24
  165. data/vendor/libgit2/src/fetch.h +1 -1
  166. data/vendor/libgit2/src/fetchhead.c +19 -19
  167. data/vendor/libgit2/src/filebuf.c +28 -28
  168. data/vendor/libgit2/src/filebuf.h +1 -1
  169. data/vendor/libgit2/src/filter.c +96 -52
  170. data/vendor/libgit2/src/filter.h +26 -5
  171. data/vendor/libgit2/src/fs_path.c +1912 -0
  172. data/vendor/libgit2/src/fs_path.h +752 -0
  173. data/vendor/libgit2/src/futils.c +91 -85
  174. data/vendor/libgit2/src/futils.h +26 -14
  175. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +2 -2
  176. data/vendor/libgit2/src/hash/sha1/common_crypto.c +2 -2
  177. data/vendor/libgit2/src/hash/sha1/generic.c +2 -2
  178. data/vendor/libgit2/src/hash/sha1/mbedtls.c +2 -2
  179. data/vendor/libgit2/src/hash/sha1/openssl.c +2 -2
  180. data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +1 -1
  181. data/vendor/libgit2/src/hash/sha1/win32.c +6 -6
  182. data/vendor/libgit2/src/hash/sha1.h +3 -1
  183. data/vendor/libgit2/src/hash.c +67 -35
  184. data/vendor/libgit2/src/hash.h +12 -12
  185. data/vendor/libgit2/src/ident.c +18 -18
  186. data/vendor/libgit2/src/ignore.c +35 -34
  187. data/vendor/libgit2/src/ignore.h +2 -2
  188. data/vendor/libgit2/src/index.c +79 -80
  189. data/vendor/libgit2/src/index.h +6 -3
  190. data/vendor/libgit2/src/indexer.c +75 -57
  191. data/vendor/libgit2/src/iterator.c +64 -56
  192. data/vendor/libgit2/src/iterator.h +5 -5
  193. data/vendor/libgit2/src/khash.h +1 -1
  194. data/vendor/libgit2/src/libgit2.c +22 -19
  195. data/vendor/libgit2/src/mailmap.c +38 -36
  196. data/vendor/libgit2/src/merge.c +27 -27
  197. data/vendor/libgit2/src/merge.h +1 -14
  198. data/vendor/libgit2/src/merge_driver.c +2 -2
  199. data/vendor/libgit2/src/merge_file.c +13 -3
  200. data/vendor/libgit2/src/message.c +21 -10
  201. data/vendor/libgit2/src/midx.c +83 -66
  202. data/vendor/libgit2/src/midx.h +3 -3
  203. data/vendor/libgit2/src/mwindow.c +1 -1
  204. data/vendor/libgit2/src/net.c +278 -68
  205. data/vendor/libgit2/src/net.h +10 -3
  206. data/vendor/libgit2/src/netops.c +1 -1
  207. data/vendor/libgit2/src/netops.h +1 -1
  208. data/vendor/libgit2/src/notes.c +20 -29
  209. data/vendor/libgit2/src/object.c +49 -9
  210. data/vendor/libgit2/src/object.h +1 -1
  211. data/vendor/libgit2/src/odb.c +35 -32
  212. data/vendor/libgit2/src/odb.h +1 -1
  213. data/vendor/libgit2/src/odb_loose.c +68 -68
  214. data/vendor/libgit2/src/odb_mempack.c +18 -5
  215. data/vendor/libgit2/src/odb_pack.c +43 -43
  216. data/vendor/libgit2/src/oid.c +11 -4
  217. data/vendor/libgit2/src/oid.h +15 -0
  218. data/vendor/libgit2/src/pack-objects.c +41 -26
  219. data/vendor/libgit2/src/pack-objects.h +11 -6
  220. data/vendor/libgit2/src/pack.c +10 -10
  221. data/vendor/libgit2/src/patch.c +3 -3
  222. data/vendor/libgit2/src/patch.h +1 -0
  223. data/vendor/libgit2/src/patch_generate.c +27 -11
  224. data/vendor/libgit2/src/patch_generate.h +5 -5
  225. data/vendor/libgit2/src/patch_parse.c +24 -24
  226. data/vendor/libgit2/src/path.c +76 -1951
  227. data/vendor/libgit2/src/path.h +34 -741
  228. data/vendor/libgit2/src/pathspec.c +6 -6
  229. data/vendor/libgit2/src/pathspec.h +2 -2
  230. data/vendor/libgit2/src/posix.c +3 -3
  231. data/vendor/libgit2/src/posix.h +1 -0
  232. data/vendor/libgit2/src/pqueue.h +1 -1
  233. data/vendor/libgit2/src/proxy.c +4 -1
  234. data/vendor/libgit2/src/proxy.h +1 -1
  235. data/vendor/libgit2/src/push.c +30 -35
  236. data/vendor/libgit2/src/push.h +4 -16
  237. data/vendor/libgit2/src/rand.c +226 -0
  238. data/vendor/libgit2/src/rand.h +37 -0
  239. data/vendor/libgit2/src/reader.c +8 -8
  240. data/vendor/libgit2/src/reader.h +2 -2
  241. data/vendor/libgit2/src/rebase.c +89 -88
  242. data/vendor/libgit2/src/refdb_fs.c +447 -173
  243. data/vendor/libgit2/src/refs.c +32 -32
  244. data/vendor/libgit2/src/refs.h +2 -2
  245. data/vendor/libgit2/src/refspec.c +32 -37
  246. data/vendor/libgit2/src/refspec.h +5 -2
  247. data/vendor/libgit2/src/regexp.c +1 -1
  248. data/vendor/libgit2/src/remote.c +713 -419
  249. data/vendor/libgit2/src/remote.h +15 -10
  250. data/vendor/libgit2/src/repository.c +350 -467
  251. data/vendor/libgit2/src/repository.h +11 -10
  252. data/vendor/libgit2/src/reset.c +8 -5
  253. data/vendor/libgit2/src/revert.c +10 -10
  254. data/vendor/libgit2/src/revparse.c +48 -35
  255. data/vendor/libgit2/src/revwalk.c +7 -7
  256. data/vendor/libgit2/src/signature.c +12 -6
  257. data/vendor/libgit2/src/signature.h +1 -1
  258. data/vendor/libgit2/src/sortedcache.c +1 -1
  259. data/vendor/libgit2/src/sortedcache.h +1 -1
  260. data/vendor/libgit2/src/stash.c +36 -37
  261. data/vendor/libgit2/src/status.c +4 -1
  262. data/vendor/libgit2/src/{buffer.c → str.c} +157 -151
  263. data/vendor/libgit2/src/str.h +357 -0
  264. data/vendor/libgit2/src/streams/mbedtls.c +8 -6
  265. data/vendor/libgit2/src/streams/openssl_dynamic.h +3 -3
  266. data/vendor/libgit2/src/submodule.c +171 -159
  267. data/vendor/libgit2/src/submodule.h +1 -1
  268. data/vendor/libgit2/src/sysdir.c +68 -52
  269. data/vendor/libgit2/src/sysdir.h +15 -10
  270. data/vendor/libgit2/src/tag.c +29 -27
  271. data/vendor/libgit2/src/thread.h +3 -3
  272. data/vendor/libgit2/src/threadstate.c +3 -3
  273. data/vendor/libgit2/src/threadstate.h +1 -1
  274. data/vendor/libgit2/src/trace.c +1 -14
  275. data/vendor/libgit2/src/trace.h +5 -22
  276. data/vendor/libgit2/src/trailer.c +1 -1
  277. data/vendor/libgit2/src/transaction.c +1 -1
  278. data/vendor/libgit2/src/transport.c +10 -10
  279. data/vendor/libgit2/src/transports/auth.c +7 -9
  280. data/vendor/libgit2/src/transports/auth.h +2 -3
  281. data/vendor/libgit2/src/transports/auth_negotiate.c +12 -13
  282. data/vendor/libgit2/src/transports/auth_ntlm.c +10 -10
  283. data/vendor/libgit2/src/transports/auth_ntlm.h +0 -1
  284. data/vendor/libgit2/src/transports/git.c +9 -11
  285. data/vendor/libgit2/src/transports/http.c +37 -17
  286. data/vendor/libgit2/src/transports/http.h +2 -3
  287. data/vendor/libgit2/src/transports/httpclient.c +65 -65
  288. data/vendor/libgit2/src/transports/local.c +124 -116
  289. data/vendor/libgit2/src/transports/smart.c +51 -139
  290. data/vendor/libgit2/src/transports/smart.h +25 -31
  291. data/vendor/libgit2/src/transports/smart_pkt.c +33 -33
  292. data/vendor/libgit2/src/transports/smart_protocol.c +57 -39
  293. data/vendor/libgit2/src/transports/ssh.c +47 -112
  294. data/vendor/libgit2/src/transports/winhttp.c +50 -56
  295. data/vendor/libgit2/src/tree-cache.c +5 -5
  296. data/vendor/libgit2/src/tree-cache.h +2 -2
  297. data/vendor/libgit2/src/tree.c +59 -48
  298. data/vendor/libgit2/src/tree.h +1 -1
  299. data/vendor/libgit2/src/unix/map.c +0 -2
  300. data/vendor/libgit2/src/unix/posix.h +1 -4
  301. data/vendor/libgit2/src/unix/realpath.c +0 -2
  302. data/vendor/libgit2/src/util.c +14 -14
  303. data/vendor/libgit2/src/util.h +2 -28
  304. data/vendor/libgit2/src/vector.h +1 -1
  305. data/vendor/libgit2/src/win32/findfile.c +172 -116
  306. data/vendor/libgit2/src/win32/findfile.h +7 -4
  307. data/vendor/libgit2/src/win32/path_w32.c +140 -9
  308. data/vendor/libgit2/src/win32/path_w32.h +2 -0
  309. data/vendor/libgit2/src/win32/posix.h +0 -1
  310. data/vendor/libgit2/src/win32/posix_w32.c +11 -27
  311. data/vendor/libgit2/src/win32/w32_buffer.c +2 -3
  312. data/vendor/libgit2/src/win32/w32_buffer.h +2 -3
  313. data/vendor/libgit2/src/win32/w32_leakcheck.c +1 -1
  314. data/vendor/libgit2/src/worktree.c +116 -94
  315. data/vendor/libgit2/src/worktree.h +1 -1
  316. data/vendor/libgit2/src/xdiff/git-xdiff.h +53 -0
  317. data/vendor/libgit2/src/xdiff/xdiff.h +15 -15
  318. data/vendor/libgit2/src/xdiff/xdiffi.c +134 -108
  319. data/vendor/libgit2/src/xdiff/xemit.c +23 -7
  320. data/vendor/libgit2/src/xdiff/xhistogram.c +87 -78
  321. data/vendor/libgit2/src/xdiff/xinclude.h +1 -12
  322. data/vendor/libgit2/src/xdiff/xmerge.c +104 -117
  323. data/vendor/libgit2/src/xdiff/xpatience.c +6 -17
  324. data/vendor/libgit2/src/xdiff/xprepare.c +15 -20
  325. data/vendor/libgit2/src/xdiff/xutils.c +18 -7
  326. data/vendor/libgit2/src/zstream.c +5 -5
  327. data/vendor/libgit2/src/zstream.h +4 -4
  328. metadata +25 -10
  329. data/vendor/libgit2/src/buffer.h +0 -374
@@ -1,48 +1,48 @@
1
- INCLUDE(SanitizeBool)
1
+ include(SanitizeBool)
2
2
 
3
3
  # We try to find any packages our backends might use
4
- FIND_PACKAGE(GSSAPI)
5
- IF (CMAKE_SYSTEM_NAME MATCHES "Darwin")
6
- INCLUDE(FindGSSFramework)
7
- ENDIF()
4
+ find_package(GSSAPI)
5
+ if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
6
+ include(FindGSSFramework)
7
+ endif()
8
8
 
9
- IF(USE_GSSAPI)
9
+ if(USE_GSSAPI)
10
10
  # Auto-select GSS backend
11
- SanitizeBool(USE_GSSAPI)
12
- IF (USE_GSSAPI STREQUAL ON)
13
- IF (GSSFRAMEWORK_FOUND)
14
- SET(USE_GSSAPI "GSS.framework")
15
- ELSEIF(GSSAPI_FOUND)
16
- SET(USE_GSSAPI "gssapi")
17
- ELSE()
18
- MESSAGE(FATAL_ERROR "Unable to autodetect a usable GSS backend."
11
+ sanitizebool(USE_GSSAPI)
12
+ if(USE_GSSAPI STREQUAL ON)
13
+ if(GSSFRAMEWORK_FOUND)
14
+ set(USE_GSSAPI "GSS.framework")
15
+ elseif(GSSAPI_FOUND)
16
+ set(USE_GSSAPI "gssapi")
17
+ else()
18
+ message(FATAL_ERROR "Unable to autodetect a usable GSS backend."
19
19
  "Please pass the backend name explicitly (-DUSE_GSS=backend)")
20
- ENDIF()
21
- ENDIF()
20
+ endif()
21
+ endif()
22
22
 
23
23
  # Check that we can find what's required for the selected backend
24
- IF (USE_GSSAPI STREQUAL "GSS.framework")
25
- IF (NOT GSSFRAMEWORK_FOUND)
26
- MESSAGE(FATAL_ERROR "Asked for GSS.framework backend, but it wasn't found")
27
- ENDIF()
24
+ if(USE_GSSAPI STREQUAL "GSS.framework")
25
+ if(NOT GSSFRAMEWORK_FOUND)
26
+ message(FATAL_ERROR "Asked for GSS.framework backend, but it wasn't found")
27
+ endif()
28
28
 
29
- LIST(APPEND LIBGIT2_LIBS ${GSSFRAMEWORK_LIBRARIES})
29
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${GSSFRAMEWORK_LIBRARIES})
30
30
 
31
- SET(GIT_GSSFRAMEWORK 1)
32
- ADD_FEATURE_INFO(SPNEGO GIT_GSSFRAMEWORK "SPNEGO authentication support (${USE_GSSAPI})")
33
- ELSEIF (USE_GSSAPI STREQUAL "gssapi")
34
- IF (NOT GSSAPI_FOUND)
35
- MESSAGE(FATAL_ERROR "Asked for gssapi GSS backend, but it wasn't found")
36
- ENDIF()
31
+ set(GIT_GSSFRAMEWORK 1)
32
+ add_feature_info(SPNEGO GIT_GSSFRAMEWORK "SPNEGO authentication support (${USE_GSSAPI})")
33
+ elseif(USE_GSSAPI STREQUAL "gssapi")
34
+ if(NOT GSSAPI_FOUND)
35
+ message(FATAL_ERROR "Asked for gssapi GSS backend, but it wasn't found")
36
+ endif()
37
37
 
38
- LIST(APPEND LIBGIT2_LIBS ${GSSAPI_LIBRARIES})
38
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${GSSAPI_LIBRARIES})
39
39
 
40
- SET(GIT_GSSAPI 1)
41
- ADD_FEATURE_INFO(SPNEGO GIT_GSSAPI "SPNEGO authentication support (${USE_GSSAPI})")
42
- ELSE()
43
- MESSAGE(FATAL_ERROR "Asked for backend ${USE_GSSAPI} but it wasn't found")
44
- ENDIF()
45
- ELSE()
46
- SET(GIT_GSSAPI 0)
47
- ADD_FEATURE_INFO(SPNEGO NO "SPNEGO authentication support")
48
- ENDIF()
40
+ set(GIT_GSSAPI 1)
41
+ add_feature_info(SPNEGO GIT_GSSAPI "SPNEGO authentication support (${USE_GSSAPI})")
42
+ else()
43
+ message(FATAL_ERROR "Asked for backend ${USE_GSSAPI} but it wasn't found")
44
+ endif()
45
+ else()
46
+ set(GIT_GSSAPI 0)
47
+ add_feature_info(SPNEGO NO "SPNEGO authentication support")
48
+ endif()
@@ -0,0 +1,19 @@
1
+ # Optional external dependency: http-parser
2
+ if(USE_HTTP_PARSER STREQUAL "system")
3
+ find_package(HTTPParser)
4
+
5
+ if(HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUAL 2)
6
+ list(APPEND LIBGIT2_SYSTEM_INCLUDES ${HTTP_PARSER_INCLUDE_DIRS})
7
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${HTTP_PARSER_LIBRARIES})
8
+ list(APPEND LIBGIT2_PC_LIBS "-lhttp_parser")
9
+ add_feature_info(http-parser ON "http-parser support (system)")
10
+ else()
11
+ message(FATAL_ERROR "http-parser support was requested but not found")
12
+ endif()
13
+ else()
14
+ message(STATUS "http-parser version 2 was not found or disabled; using bundled 3rd-party sources.")
15
+ add_subdirectory("${PROJECT_SOURCE_DIR}/deps/http-parser" "${PROJECT_BINARY_DIR}/deps/http-parser")
16
+ list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/http-parser")
17
+ list(APPEND LIBGIT2_DEPENDENCY_OBJECTS "$<TARGET_OBJECTS:http-parser>")
18
+ add_feature_info(http-parser ON "http-parser support (bundled)")
19
+ endif()
@@ -1,124 +1,124 @@
1
- INCLUDE(SanitizeBool)
1
+ include(SanitizeBool)
2
2
 
3
3
  # We try to find any packages our backends might use
4
- FIND_PACKAGE(OpenSSL)
5
- FIND_PACKAGE(mbedTLS)
6
- IF (CMAKE_SYSTEM_NAME MATCHES "Darwin")
7
- FIND_PACKAGE(Security)
8
- FIND_PACKAGE(CoreFoundation)
9
- ENDIF()
4
+ find_package(OpenSSL)
5
+ find_package(mbedTLS)
6
+ if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
7
+ find_package(Security)
8
+ find_package(CoreFoundation)
9
+ endif()
10
10
 
11
- IF(USE_HTTPS)
11
+ if(USE_HTTPS)
12
12
  # Auto-select TLS backend
13
- SanitizeBool(USE_HTTPS)
14
- IF (USE_HTTPS STREQUAL ON)
15
- IF (SECURITY_FOUND)
16
- IF (SECURITY_HAS_SSLCREATECONTEXT)
17
- SET(USE_HTTPS "SecureTransport")
18
- ELSE()
19
- MESSAGE(STATUS "Security framework is too old, falling back to OpenSSL")
20
- SET(USE_HTTPS "OpenSSL")
21
- ENDIF()
22
- ELSEIF (WINHTTP)
23
- SET(USE_HTTPS "WinHTTP")
24
- ELSEIF(OPENSSL_FOUND)
25
- SET(USE_HTTPS "OpenSSL")
26
- ELSEIF(MBEDTLS_FOUND)
27
- SET(USE_HTTPS "mbedTLS")
28
- ELSE()
29
- MESSAGE(FATAL_ERROR "Unable to autodetect a usable HTTPS backend."
13
+ sanitizebool(USE_HTTPS)
14
+ if(USE_HTTPS STREQUAL ON)
15
+ if(SECURITY_FOUND)
16
+ if(SECURITY_HAS_SSLCREATECONTEXT)
17
+ set(USE_HTTPS "SecureTransport")
18
+ else()
19
+ message(STATUS "Security framework is too old, falling back to OpenSSL")
20
+ set(USE_HTTPS "OpenSSL")
21
+ endif()
22
+ elseif(USE_WINHTTP)
23
+ set(USE_HTTPS "WinHTTP")
24
+ elseif(OPENSSL_FOUND)
25
+ set(USE_HTTPS "OpenSSL")
26
+ elseif(MBEDTLS_FOUND)
27
+ set(USE_HTTPS "mbedTLS")
28
+ else()
29
+ message(FATAL_ERROR "Unable to autodetect a usable HTTPS backend."
30
30
  "Please pass the backend name explicitly (-DUSE_HTTPS=backend)")
31
- ENDIF()
32
- ENDIF()
31
+ endif()
32
+ endif()
33
33
 
34
34
  # Check that we can find what's required for the selected backend
35
- IF (USE_HTTPS STREQUAL "SecureTransport")
36
- IF (NOT COREFOUNDATION_FOUND)
37
- MESSAGE(FATAL_ERROR "Cannot use SecureTransport backend, CoreFoundation.framework not found")
38
- ENDIF()
39
- IF (NOT SECURITY_FOUND)
40
- MESSAGE(FATAL_ERROR "Cannot use SecureTransport backend, Security.framework not found")
41
- ENDIF()
42
- IF (NOT SECURITY_HAS_SSLCREATECONTEXT)
43
- MESSAGE(FATAL_ERROR "Cannot use SecureTransport backend, SSLCreateContext not supported")
44
- ENDIF()
35
+ if(USE_HTTPS STREQUAL "SecureTransport")
36
+ if(NOT COREFOUNDATION_FOUND)
37
+ message(FATAL_ERROR "Cannot use SecureTransport backend, CoreFoundation.framework not found")
38
+ endif()
39
+ if(NOT SECURITY_FOUND)
40
+ message(FATAL_ERROR "Cannot use SecureTransport backend, Security.framework not found")
41
+ endif()
42
+ if(NOT SECURITY_HAS_SSLCREATECONTEXT)
43
+ message(FATAL_ERROR "Cannot use SecureTransport backend, SSLCreateContext not supported")
44
+ endif()
45
45
 
46
- SET(GIT_SECURE_TRANSPORT 1)
47
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${SECURITY_INCLUDE_DIR})
48
- LIST(APPEND LIBGIT2_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS})
49
- LIST(APPEND LIBGIT2_PC_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS})
50
- ELSEIF (USE_HTTPS STREQUAL "OpenSSL")
51
- IF (NOT OPENSSL_FOUND)
52
- MESSAGE(FATAL_ERROR "Asked for OpenSSL TLS backend, but it wasn't found")
53
- ENDIF()
46
+ set(GIT_SECURE_TRANSPORT 1)
47
+ list(APPEND LIBGIT2_SYSTEM_INCLUDES ${SECURITY_INCLUDE_DIR})
48
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS})
49
+ list(APPEND LIBGIT2_PC_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS})
50
+ elseif(USE_HTTPS STREQUAL "OpenSSL")
51
+ if(NOT OPENSSL_FOUND)
52
+ message(FATAL_ERROR "Asked for OpenSSL TLS backend, but it wasn't found")
53
+ endif()
54
54
 
55
- SET(GIT_OPENSSL 1)
56
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${OPENSSL_INCLUDE_DIR})
57
- LIST(APPEND LIBGIT2_LIBS ${OPENSSL_LIBRARIES})
58
- LIST(APPEND LIBGIT2_PC_LIBS ${OPENSSL_LDFLAGS})
59
- LIST(APPEND LIBGIT2_PC_REQUIRES "openssl")
60
- ELSEIF(USE_HTTPS STREQUAL "mbedTLS")
61
- IF (NOT MBEDTLS_FOUND)
62
- MESSAGE(FATAL_ERROR "Asked for mbedTLS backend, but it wasn't found")
63
- ENDIF()
55
+ set(GIT_OPENSSL 1)
56
+ list(APPEND LIBGIT2_SYSTEM_INCLUDES ${OPENSSL_INCLUDE_DIR})
57
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${OPENSSL_LIBRARIES})
58
+ list(APPEND LIBGIT2_PC_LIBS ${OPENSSL_LDFLAGS})
59
+ list(APPEND LIBGIT2_PC_REQUIRES "openssl")
60
+ elseif(USE_HTTPS STREQUAL "mbedTLS")
61
+ if(NOT MBEDTLS_FOUND)
62
+ message(FATAL_ERROR "Asked for mbedTLS backend, but it wasn't found")
63
+ endif()
64
64
 
65
- IF(NOT CERT_LOCATION)
66
- MESSAGE(STATUS "Auto-detecting default certificates location")
67
- IF(CMAKE_SYSTEM_NAME MATCHES Darwin)
65
+ if(NOT CERT_LOCATION)
66
+ message(STATUS "Auto-detecting default certificates location")
67
+ if(CMAKE_SYSTEM_NAME MATCHES Darwin)
68
68
  # Check for an Homebrew installation
69
- SET(OPENSSL_CMD "/usr/local/opt/openssl/bin/openssl")
70
- ELSE()
71
- SET(OPENSSL_CMD "openssl")
72
- ENDIF()
73
- EXECUTE_PROCESS(COMMAND ${OPENSSL_CMD} version -d OUTPUT_VARIABLE OPENSSL_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
74
- IF(OPENSSL_DIR)
75
- STRING(REGEX REPLACE "^OPENSSLDIR: \"(.*)\"$" "\\1/" OPENSSL_DIR ${OPENSSL_DIR})
69
+ set(OPENSSL_CMD "/usr/local/opt/openssl/bin/openssl")
70
+ else()
71
+ set(OPENSSL_CMD "openssl")
72
+ endif()
73
+ execute_process(COMMAND ${OPENSSL_CMD} version -d OUTPUT_VARIABLE OPENSSL_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
74
+ if(OPENSSL_DIR)
75
+ string(REGEX REPLACE "^OPENSSLDIR: \"(.*)\"$" "\\1/" OPENSSL_DIR ${OPENSSL_DIR})
76
76
 
77
- SET(OPENSSL_CA_LOCATIONS
77
+ set(OPENSSL_CA_LOCATIONS
78
78
  "ca-bundle.pem" # OpenSUSE Leap 42.1
79
79
  "cert.pem" # Ubuntu 14.04, FreeBSD
80
80
  "certs/ca-certificates.crt" # Ubuntu 16.04
81
81
  "certs/ca.pem" # Debian 7
82
82
  )
83
- FOREACH(SUFFIX IN LISTS OPENSSL_CA_LOCATIONS)
84
- SET(LOC "${OPENSSL_DIR}${SUFFIX}")
85
- IF(NOT CERT_LOCATION AND EXISTS "${OPENSSL_DIR}${SUFFIX}")
86
- SET(CERT_LOCATION ${LOC})
87
- ENDIF()
88
- ENDFOREACH()
89
- ELSE()
90
- MESSAGE(FATAL_ERROR "Unable to find OpenSSL executable. Please provide default certificate location via CERT_LOCATION")
91
- ENDIF()
92
- ENDIF()
83
+ foreach(SUFFIX IN LISTS OPENSSL_CA_LOCATIONS)
84
+ set(LOC "${OPENSSL_DIR}${SUFFIX}")
85
+ if(NOT CERT_LOCATION AND EXISTS "${OPENSSL_DIR}${SUFFIX}")
86
+ set(CERT_LOCATION ${LOC})
87
+ endif()
88
+ endforeach()
89
+ else()
90
+ message(FATAL_ERROR "Unable to find OpenSSL executable. Please provide default certificate location via CERT_LOCATION")
91
+ endif()
92
+ endif()
93
93
 
94
- IF(CERT_LOCATION)
95
- IF(NOT EXISTS ${CERT_LOCATION})
96
- MESSAGE(FATAL_ERROR "Cannot use CERT_LOCATION=${CERT_LOCATION} as it doesn't exist")
97
- ENDIF()
98
- ADD_FEATURE_INFO(CERT_LOCATION ON "using certificates from ${CERT_LOCATION}")
99
- ADD_DEFINITIONS(-DGIT_DEFAULT_CERT_LOCATION="${CERT_LOCATION}")
100
- ENDIF()
94
+ if(CERT_LOCATION)
95
+ if(NOT EXISTS ${CERT_LOCATION})
96
+ message(FATAL_ERROR "Cannot use CERT_LOCATION=${CERT_LOCATION} as it doesn't exist")
97
+ endif()
98
+ add_feature_info(CERT_LOCATION ON "using certificates from ${CERT_LOCATION}")
99
+ add_definitions(-DGIT_DEFAULT_CERT_LOCATION="${CERT_LOCATION}")
100
+ endif()
101
101
 
102
- SET(GIT_MBEDTLS 1)
103
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR})
104
- LIST(APPEND LIBGIT2_LIBS ${MBEDTLS_LIBRARIES})
102
+ set(GIT_MBEDTLS 1)
103
+ list(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR})
104
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${MBEDTLS_LIBRARIES})
105
105
  # mbedTLS has no pkgconfig file, hence we can't require it
106
106
  # https://github.com/ARMmbed/mbedtls/issues/228
107
107
  # For now, pass its link flags as our own
108
- LIST(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES})
109
- ELSEIF (USE_HTTPS STREQUAL "WinHTTP")
108
+ list(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES})
109
+ elseif(USE_HTTPS STREQUAL "WinHTTP")
110
110
  # WinHTTP setup was handled in the WinHTTP-specific block above
111
- ELSEIF (USE_HTTPS STREQUAL "OpenSSL-Dynamic")
112
- SET(GIT_OPENSSL 1)
113
- SET(GIT_OPENSSL_DYNAMIC 1)
114
- LIST(APPEND LIBGIT2_LIBS dl)
115
- ELSE()
116
- MESSAGE(FATAL_ERROR "Asked for backend ${USE_HTTPS} but it wasn't found")
117
- ENDIF()
111
+ elseif(USE_HTTPS STREQUAL "OpenSSL-Dynamic")
112
+ set(GIT_OPENSSL 1)
113
+ set(GIT_OPENSSL_DYNAMIC 1)
114
+ list(APPEND LIBGIT2_SYSTEM_LIBS dl)
115
+ else()
116
+ message(FATAL_ERROR "Asked for backend ${USE_HTTPS} but it wasn't found")
117
+ endif()
118
118
 
119
- SET(GIT_HTTPS 1)
120
- ADD_FEATURE_INFO(HTTPS GIT_HTTPS "using ${USE_HTTPS}")
121
- ELSE()
122
- SET(GIT_HTTPS 0)
123
- ADD_FEATURE_INFO(HTTPS NO "")
124
- ENDIF()
119
+ set(GIT_HTTPS 1)
120
+ add_feature_info(HTTPS GIT_HTTPS "using ${USE_HTTPS}")
121
+ else()
122
+ set(GIT_HTTPS 0)
123
+ add_feature_info(HTTPS NO "")
124
+ endif()
@@ -1,62 +1,52 @@
1
1
  # Select a hash backend
2
2
 
3
- INCLUDE(SanitizeBool)
3
+ include(SanitizeBool)
4
4
 
5
5
  # USE_SHA1=CollisionDetection(ON)/HTTPS/Generic/OFF
6
+ sanitizebool(USE_SHA1)
6
7
 
7
- SanitizeBool(USE_SHA1)
8
- IF(USE_SHA1 STREQUAL ON)
8
+ if(USE_SHA1 STREQUAL ON)
9
9
  SET(USE_SHA1 "CollisionDetection")
10
- ELSEIF(USE_SHA1 STREQUAL "HTTPS")
11
- IF(USE_HTTPS STREQUAL "SecureTransport")
12
- SET(USE_SHA1 "CommonCrypto")
13
- ELSEIF(USE_HTTPS STREQUAL "WinHTTP")
14
- SET(USE_SHA1 "Win32")
15
- ELSEIF(USE_HTTPS)
16
- SET(USE_SHA1 ${USE_HTTPS})
17
- ELSE()
18
- SET(USE_SHA1 "CollisionDetection")
19
- ENDIF()
20
- ENDIF()
10
+ elseif(USE_SHA1 STREQUAL "HTTPS")
11
+ if(USE_HTTPS STREQUAL "SecureTransport")
12
+ set(USE_SHA1 "CommonCrypto")
13
+ elseif(USE_HTTPS STREQUAL "WinHTTP")
14
+ set(USE_SHA1 "Win32")
15
+ elseif(USE_HTTPS)
16
+ set(USE_SHA1 ${USE_HTTPS})
17
+ else()
18
+ set(USE_SHA1 "CollisionDetection")
19
+ endif()
20
+ endif()
21
21
 
22
- IF(USE_SHA1 STREQUAL "CollisionDetection")
23
- SET(GIT_SHA1_COLLISIONDETECT 1)
24
- ADD_DEFINITIONS(-DSHA1DC_NO_STANDARD_INCLUDES=1)
25
- ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\")
26
- ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\")
27
- FILE(GLOB SRC_SHA1 hash/sha1/collisiondetect.* hash/sha1/sha1dc/*)
28
- ELSEIF(USE_SHA1 STREQUAL "OpenSSL")
22
+ if(USE_SHA1 STREQUAL "CollisionDetection")
23
+ set(GIT_SHA1_COLLISIONDETECT 1)
24
+ add_definitions(-DSHA1DC_NO_STANDARD_INCLUDES=1)
25
+ add_definitions(-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\")
26
+ add_definitions(-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\")
27
+ elseif(USE_SHA1 STREQUAL "OpenSSL")
29
28
  # OPENSSL_FOUND should already be set, we're checking USE_HTTPS
30
29
 
31
- SET(GIT_SHA1_OPENSSL 1)
32
- IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
33
- LIST(APPEND LIBGIT2_PC_LIBS "-lssl")
34
- ELSE()
35
- LIST(APPEND LIBGIT2_PC_REQUIRES "openssl")
36
- ENDIF()
37
- FILE(GLOB SRC_SHA1 hash/sha1/openssl.*)
38
- ELSEIF(USE_SHA1 STREQUAL "CommonCrypto")
39
- SET(GIT_SHA1_COMMON_CRYPTO 1)
40
- FILE(GLOB SRC_SHA1 hash/sha1/common_crypto.*)
41
- ELSEIF(USE_SHA1 STREQUAL "mbedTLS")
42
- SET(GIT_SHA1_MBEDTLS 1)
43
- FILE(GLOB SRC_SHA1 hash/sha1/mbedtls.*)
44
- LIST(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR})
45
- LIST(APPEND LIBGIT2_LIBS ${MBEDTLS_LIBRARIES})
30
+ set(GIT_SHA1_OPENSSL 1)
31
+ if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
32
+ list(APPEND LIBGIT2_PC_LIBS "-lssl")
33
+ else()
34
+ list(APPEND LIBGIT2_PC_REQUIRES "openssl")
35
+ endif()
36
+ elseif(USE_SHA1 STREQUAL "CommonCrypto")
37
+ set(GIT_SHA1_COMMON_CRYPTO 1)
38
+ elseif(USE_SHA1 STREQUAL "mbedTLS")
39
+ set(GIT_SHA1_MBEDTLS 1)
40
+ list(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR})
41
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${MBEDTLS_LIBRARIES})
46
42
  # mbedTLS has no pkgconfig file, hence we can't require it
47
43
  # https://github.com/ARMmbed/mbedtls/issues/228
48
44
  # For now, pass its link flags as our own
49
- LIST(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES})
50
- ELSEIF(USE_SHA1 STREQUAL "Win32")
51
- SET(GIT_SHA1_WIN32 1)
52
- FILE(GLOB SRC_SHA1 hash/sha1/win32.*)
53
- ELSEIF(USE_SHA1 STREQUAL "Generic")
54
- FILE(GLOB SRC_SHA1 hash/sha1/generic.*)
55
- ELSE()
56
- MESSAGE(FATAL_ERROR "Asked for unknown SHA1 backend: ${USE_SHA1}")
57
- ENDIF()
45
+ list(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES})
46
+ elseif(USE_SHA1 STREQUAL "Win32")
47
+ set(GIT_SHA1_WIN32 1)
48
+ elseif(NOT (USE_SHA1 STREQUAL "Generic"))
49
+ message(FATAL_ERROR "Asked for unknown SHA1 backend: ${USE_SHA1}")
50
+ endif()
58
51
 
59
- list(APPEND SRC_SHA1 "hash/sha1.h")
60
- list(SORT SRC_SHA1)
61
-
62
- ADD_FEATURE_INFO(SHA ON "using ${USE_SHA1}")
52
+ add_feature_info(SHA ON "using ${USE_SHA1}")
@@ -0,0 +1,51 @@
1
+ # Specify regular expression implementation
2
+ find_package(PCRE)
3
+
4
+ if(REGEX_BACKEND STREQUAL "")
5
+ check_symbol_exists(regcomp_l "regex.h;xlocale.h" HAVE_REGCOMP_L)
6
+
7
+ if(HAVE_REGCOMP_L)
8
+ set(REGEX_BACKEND "regcomp_l")
9
+ elseif(PCRE_FOUND)
10
+ set(REGEX_BACKEND "pcre")
11
+ else()
12
+ set(REGEX_BACKEND "builtin")
13
+ endif()
14
+ endif()
15
+
16
+ if(REGEX_BACKEND STREQUAL "regcomp_l")
17
+ add_feature_info(regex ON "using system regcomp_l")
18
+ set(GIT_REGEX_REGCOMP_L 1)
19
+ elseif(REGEX_BACKEND STREQUAL "pcre2")
20
+ find_package(PCRE2)
21
+
22
+ if(NOT PCRE2_FOUND)
23
+ MESSAGE(FATAL_ERROR "PCRE2 support was requested but not found")
24
+ endif()
25
+
26
+ add_feature_info(regex ON "using system PCRE2")
27
+ set(GIT_REGEX_PCRE2 1)
28
+
29
+ list(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE2_INCLUDE_DIRS})
30
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${PCRE2_LIBRARIES})
31
+ list(APPEND LIBGIT2_PC_REQUIRES "libpcre2-8")
32
+ elseif(REGEX_BACKEND STREQUAL "pcre")
33
+ add_feature_info(regex ON "using system PCRE")
34
+ set(GIT_REGEX_PCRE 1)
35
+
36
+ list(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE_INCLUDE_DIRS})
37
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${PCRE_LIBRARIES})
38
+ list(APPEND LIBGIT2_PC_REQUIRES "libpcre")
39
+ elseif(REGEX_BACKEND STREQUAL "regcomp")
40
+ add_feature_info(regex ON "using system regcomp")
41
+ set(GIT_REGEX_REGCOMP 1)
42
+ elseif(REGEX_BACKEND STREQUAL "builtin")
43
+ add_feature_info(regex ON "using bundled PCRE")
44
+ set(GIT_REGEX_BUILTIN 1)
45
+
46
+ add_subdirectory("${PROJECT_SOURCE_DIR}/deps/pcre" "${PROJECT_BINARY_DIR}/deps/pcre")
47
+ list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/pcre")
48
+ list(APPEND LIBGIT2_DEPENDENCY_OBJECTS $<TARGET_OBJECTS:pcre>)
49
+ else()
50
+ message(FATAL_ERROR "The REGEX_BACKEND option provided is not supported")
51
+ endif()
@@ -0,0 +1,41 @@
1
+ # Optional external dependency: libssh2
2
+ if(USE_SSH)
3
+ find_pkglibraries(LIBSSH2 libssh2)
4
+ if(NOT LIBSSH2_FOUND)
5
+ find_package(LibSSH2)
6
+ set(LIBSSH2_INCLUDE_DIRS ${LIBSSH2_INCLUDE_DIR})
7
+ get_filename_component(LIBSSH2_LIBRARY_DIRS "${LIBSSH2_LIBRARY}" DIRECTORY)
8
+ set(LIBSSH2_LIBRARIES ${LIBSSH2_LIBRARY})
9
+ set(LIBSSH2_LDFLAGS "-lssh2")
10
+ endif()
11
+
12
+ if(NOT LIBSSH2_FOUND)
13
+ message(FATAL_ERROR "LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of the default search path.")
14
+ endif()
15
+ endif()
16
+
17
+ if(LIBSSH2_FOUND)
18
+ set(GIT_SSH 1)
19
+ list(APPEND LIBGIT2_SYSTEM_INCLUDES ${LIBSSH2_INCLUDE_DIRS})
20
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${LIBSSH2_LIBRARIES})
21
+ list(APPEND LIBGIT2_PC_LIBS ${LIBSSH2_LDFLAGS})
22
+
23
+ check_library_exists("${LIBSSH2_LIBRARIES}" libssh2_userauth_publickey_frommemory "${LIBSSH2_LIBRARY_DIRS}" HAVE_LIBSSH2_MEMORY_CREDENTIALS)
24
+ if(HAVE_LIBSSH2_MEMORY_CREDENTIALS)
25
+ set(GIT_SSH_MEMORY_CREDENTIALS 1)
26
+ endif()
27
+ else()
28
+ message(STATUS "LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of the default search path.")
29
+ endif()
30
+
31
+ if(WIN32 AND EMBED_SSH_PATH)
32
+ file(GLOB SSH_SRC "${EMBED_SSH_PATH}/src/*.c")
33
+ list(SORT SSH_SRC)
34
+ list(APPEND LIBGIT2_DEPENDENCY_OBJECTS ${SSH_SRC})
35
+
36
+ list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${EMBED_SSH_PATH}/include")
37
+ file(WRITE "${EMBED_SSH_PATH}/src/libssh2_config.h" "#define HAVE_WINCNG\n#define LIBSSH2_WINCNG\n#include \"../win32/libssh2_config.h\"")
38
+ set(GIT_SSH 1)
39
+ endif()
40
+
41
+ add_feature_info(SSH GIT_SSH "SSH transport support")
@@ -0,0 +1,17 @@
1
+ if(WIN32 AND USE_WINHTTP)
2
+ set(GIT_WINHTTP 1)
3
+
4
+ # Since MinGW does not come with headers or an import library for winhttp,
5
+ # we have to include a private header and generate our own import library
6
+ if(MINGW)
7
+ add_subdirectory("${PROJECT_SOURCE_DIR}/deps/winhttp" "${PROJECT_BINARY_DIR}/deps/winhttp")
8
+ list(APPEND LIBGIT2_SYSTEM_LIBS winhttp)
9
+ list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/winhttp")
10
+ else()
11
+ list(APPEND LIBGIT2_SYSTEM_LIBS "winhttp")
12
+ list(APPEND LIBGIT2_PC_LIBS "-lwinhttp")
13
+ endif()
14
+
15
+ list(APPEND LIBGIT2_SYSTEM_LIBS "rpcrt4" "crypt32" "ole32")
16
+ list(APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32")
17
+ endif()
@@ -0,0 +1,34 @@
1
+ # Optional external dependency: zlib
2
+ include(SanitizeBool)
3
+
4
+ SanitizeBool(USE_BUNDLED_ZLIB)
5
+ if(USE_BUNDLED_ZLIB STREQUAL ON)
6
+ set(USE_BUNDLED_ZLIB "Bundled")
7
+ endif()
8
+
9
+ if(USE_BUNDLED_ZLIB STREQUAL "OFF")
10
+ find_package(ZLIB)
11
+ if(ZLIB_FOUND)
12
+ list(APPEND LIBGIT2_SYSTEM_INCLUDES ${ZLIB_INCLUDE_DIRS})
13
+ list(APPEND LIBGIT2_SYSTEM_LIBS ${ZLIB_LIBRARIES})
14
+ if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
15
+ list(APPEND LIBGIT2_PC_LIBS "-lz")
16
+ else()
17
+ list(APPEND LIBGIT2_PC_REQUIRES "zlib")
18
+ endif()
19
+ add_feature_info(zlib ON "using system zlib")
20
+ else()
21
+ message(STATUS "zlib was not found; using bundled 3rd-party sources." )
22
+ endif()
23
+ endif()
24
+ if(USE_BUNDLED_ZLIB STREQUAL "Chromium")
25
+ add_subdirectory("${PROJECT_SOURCE_DIR}/deps/chromium-zlib" "${PROJECT_BINARY_DIR}/deps/chromium-zlib")
26
+ list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/chromium-zlib")
27
+ list(APPEND LIBGIT2_DEPENDENCY_OBJECTS $<TARGET_OBJECTS:chromium_zlib>)
28
+ add_feature_info(zlib ON "using (Chromium) bundled zlib")
29
+ elseif(USE_BUNDLED_ZLIB OR NOT ZLIB_FOUND)
30
+ add_subdirectory("${PROJECT_SOURCE_DIR}/deps/zlib" "${PROJECT_BINARY_DIR}/deps/zlib")
31
+ list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/zlib")
32
+ list(APPEND LIBGIT2_DEPENDENCY_OBJECTS $<TARGET_OBJECTS:zlib>)
33
+ add_feature_info(zlib ON "using bundled zlib")
34
+ endif()
@@ -4,18 +4,18 @@
4
4
  # TODO: The Chromium build file (in deps/chromium-zlib/zlib/BUILD.gn) supports
5
5
  # more platforms (like ARM with NEON), more can be enabled as needed.
6
6
 
7
- CMAKE_MINIMUM_REQUIRED(VERSION 3.11)
7
+ cmake_minimum_required(VERSION 3.11)
8
8
 
9
9
  include(FetchContent)
10
10
  include(FindGit)
11
11
 
12
12
  # Ensure that the git binary is present to download the sources.
13
13
  find_package(Git)
14
- IF(NOT Git_FOUND)
14
+ if(NOT Git_FOUND)
15
15
  message(FATAL_ERROR "git is required to download the Chromium zlib sources")
16
- ENDIF()
16
+ endif()
17
17
 
18
- FetchContent_Populate(chromium_zlib_src
18
+ fetchcontent_populate(chromium_zlib_src
19
19
  GIT_REPOSITORY https://chromium.googlesource.com/chromium/src/third_party/zlib.git
20
20
  GIT_TAG 2c183c9f93a328bfb3121284da13cf89a0f7e64a
21
21
  QUIET
@@ -31,8 +31,8 @@ disable_warnings(missing-declarations)
31
31
 
32
32
  # -O3 is also set by the Chromium configuration and has been deemed safe enough
33
33
  # for them.
34
- SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG")
35
- SET(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
34
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG")
35
+ set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
36
36
 
37
37
  # Common definitions.
38
38
  add_definitions(