rugged 1.4.2 → 1.5.0
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.
- checksums.yaml +4 -4
- data/README.md +34 -2
- data/ext/rugged/extconf.rb +1 -0
- data/ext/rugged/rugged.c +16 -0
- data/ext/rugged/rugged.h +4 -0
- data/ext/rugged/rugged_remote.c +10 -10
- data/ext/rugged/rugged_repo.c +2 -7
- data/ext/rugged/rugged_settings.c +5 -0
- data/lib/rugged/tree.rb +4 -0
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +16 -3
- data/vendor/libgit2/COPYING +40 -0
- data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
- data/vendor/libgit2/cmake/FindPCRE.cmake +3 -4
- data/vendor/libgit2/cmake/FindPCRE2.cmake +1 -1
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +1 -1
- data/vendor/libgit2/cmake/SelectHashes.cmake +62 -14
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +3 -1
- data/vendor/libgit2/deps/zlib/adler32.c +7 -0
- data/vendor/libgit2/deps/zlib/crc32.c +975 -288
- data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
- data/vendor/libgit2/deps/zlib/deflate.c +83 -31
- data/vendor/libgit2/deps/zlib/deflate.h +12 -15
- data/vendor/libgit2/deps/zlib/gzguts.h +3 -2
- data/vendor/libgit2/deps/zlib/infback.c +2 -1
- data/vendor/libgit2/deps/zlib/inffast.c +14 -14
- data/vendor/libgit2/deps/zlib/inflate.c +39 -8
- data/vendor/libgit2/deps/zlib/inflate.h +3 -2
- data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
- data/vendor/libgit2/deps/zlib/trees.c +27 -48
- data/vendor/libgit2/deps/zlib/zlib.h +126 -100
- data/vendor/libgit2/deps/zlib/zutil.c +2 -2
- data/vendor/libgit2/deps/zlib/zutil.h +12 -9
- data/vendor/libgit2/include/git2/branch.h +2 -2
- data/vendor/libgit2/include/git2/common.h +22 -1
- data/vendor/libgit2/include/git2/config.h +6 -6
- data/vendor/libgit2/include/git2/deprecated.h +2 -0
- data/vendor/libgit2/include/git2/errors.h +19 -4
- data/vendor/libgit2/include/git2/merge.h +1 -1
- data/vendor/libgit2/include/git2/status.h +5 -2
- data/vendor/libgit2/include/git2/sys/remote.h +15 -0
- data/vendor/libgit2/include/git2/sys/transport.h +9 -5
- data/vendor/libgit2/include/git2/version.h +27 -6
- data/vendor/libgit2/src/CMakeLists.txt +104 -214
- data/vendor/libgit2/src/README.md +12 -0
- data/vendor/libgit2/src/cli/CMakeLists.txt +53 -0
- data/vendor/libgit2/src/cli/README.md +26 -0
- data/vendor/libgit2/src/cli/cli.h +20 -0
- data/vendor/libgit2/src/cli/cmd.c +21 -0
- data/vendor/libgit2/src/cli/cmd.h +33 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +204 -0
- data/vendor/libgit2/src/cli/cmd_clone.c +176 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +135 -0
- data/vendor/libgit2/src/cli/cmd_help.c +86 -0
- data/vendor/libgit2/src/cli/error.h +51 -0
- data/vendor/libgit2/src/cli/main.c +106 -0
- data/vendor/libgit2/src/cli/opt.c +669 -0
- data/vendor/libgit2/src/cli/opt.h +349 -0
- data/vendor/libgit2/src/cli/opt_usage.c +194 -0
- data/vendor/libgit2/src/cli/opt_usage.h +35 -0
- data/vendor/libgit2/src/cli/progress.c +345 -0
- data/vendor/libgit2/src/cli/progress.h +117 -0
- data/vendor/libgit2/src/cli/sighandler.h +20 -0
- data/vendor/libgit2/src/cli/unix/sighandler.c +36 -0
- data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
- data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
- data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
- data/vendor/libgit2/src/features.h.in +9 -0
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +131 -0
- data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +0 -0
- data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +0 -0
- data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +0 -0
- data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +0 -0
- data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +0 -0
- data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
- data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +0 -0
- data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +0 -0
- data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +0 -0
- data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +0 -0
- data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +0 -0
- data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +0 -0
- data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +0 -0
- data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
- data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +1 -1
- data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +0 -0
- data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +14 -9
- data/vendor/libgit2/src/{branch.h → libgit2/branch.h} +0 -0
- data/vendor/libgit2/src/{buf.c → libgit2/buf.c} +0 -0
- data/vendor/libgit2/src/{buf.h → libgit2/buf.h} +0 -0
- data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +0 -0
- data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +0 -0
- data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +0 -0
- data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -0
- data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +0 -0
- data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +0 -0
- data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +0 -0
- data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +0 -0
- data/vendor/libgit2/src/{commit.h → libgit2/commit.h} +0 -0
- data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +20 -17
- data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +1 -1
- data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +0 -0
- data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +0 -0
- data/vendor/libgit2/src/libgit2/common.h +55 -0
- data/vendor/libgit2/src/{config.c → libgit2/config.c} +14 -7
- data/vendor/libgit2/src/{config.h → libgit2/config.h} +0 -0
- data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +0 -0
- data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +0 -0
- data/vendor/libgit2/src/{config_entries.c → libgit2/config_entries.c} +0 -0
- data/vendor/libgit2/src/{config_entries.h → libgit2/config_entries.h} +0 -0
- data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +0 -0
- data/vendor/libgit2/src/{config_mem.c → libgit2/config_mem.c} +0 -0
- data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +0 -0
- data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
- data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +0 -0
- data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +0 -0
- data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
- data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
- data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +0 -0
- data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +0 -0
- data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +0 -0
- data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +0 -0
- data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +0 -0
- data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +0 -0
- data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
- data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +0 -0
- data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +0 -0
- data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +0 -0
- data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
- data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +5 -0
- data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +0 -0
- data/vendor/libgit2/src/{diff_stats.h → libgit2/diff_stats.h} +0 -0
- data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +0 -0
- data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
- data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +1 -0
- data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +0 -0
- data/vendor/libgit2/src/{email.c → libgit2/email.c} +0 -0
- data/vendor/libgit2/src/{email.h → libgit2/email.h} +0 -0
- data/vendor/libgit2/src/{errors.c → libgit2/errors.c} +0 -0
- data/vendor/libgit2/src/{errors.h → libgit2/errors.h} +1 -2
- data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +5 -2
- data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +0 -0
- data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +0 -0
- data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
- data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +31 -1
- data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +0 -0
- data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +0 -0
- data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +0 -0
- data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
- data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +0 -0
- data/vendor/libgit2/src/{idxmap.c → libgit2/idxmap.c} +0 -0
- data/vendor/libgit2/src/{idxmap.h → libgit2/idxmap.h} +0 -0
- data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +0 -0
- data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +0 -0
- data/vendor/libgit2/src/{index.c → libgit2/index.c} +6 -6
- data/vendor/libgit2/src/{index.h → libgit2/index.h} +0 -0
- data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +2 -2
- data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
- data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +3 -3
- data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +0 -0
- data/vendor/libgit2/src/{libgit2.c → libgit2/libgit2.c} +13 -0
- data/vendor/libgit2/src/{libgit2.h → libgit2/libgit2.h} +0 -0
- data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +0 -0
- data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
- data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +0 -0
- data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +0 -0
- data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +0 -0
- data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
- data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +0 -0
- data/vendor/libgit2/src/{message.c → libgit2/message.c} +0 -0
- data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +28 -26
- data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +2 -1
- data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +9 -9
- data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +1 -1
- data/vendor/libgit2/src/{netops.c → libgit2/netops.c} +0 -1
- data/vendor/libgit2/src/{netops.h → libgit2/netops.h} +0 -0
- data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +0 -0
- data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
- data/vendor/libgit2/src/{object.c → libgit2/object.c} +1 -0
- data/vendor/libgit2/src/{object.h → libgit2/object.h} +0 -0
- data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
- data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +2 -2
- data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +0 -0
- data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +0 -0
- data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +0 -0
- data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +0 -0
- data/vendor/libgit2/src/{offmap.c → libgit2/offmap.c} +0 -0
- data/vendor/libgit2/src/{offmap.h → libgit2/offmap.h} +0 -0
- data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +2 -21
- data/vendor/libgit2/src/{oid.h → libgit2/oid.h} +35 -2
- data/vendor/libgit2/src/{oidarray.c → libgit2/oidarray.c} +0 -0
- data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +0 -0
- data/vendor/libgit2/src/{oidmap.c → libgit2/oidmap.c} +1 -1
- data/vendor/libgit2/src/{oidmap.h → libgit2/oidmap.h} +0 -0
- data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +0 -0
- data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +0 -0
- data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +24 -18
- data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +3 -2
- data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +0 -0
- data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +0 -0
- data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +0 -0
- data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +0 -0
- data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +0 -0
- data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +0 -0
- data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +0 -0
- data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
- data/vendor/libgit2/src/{path.c → libgit2/path.c} +1 -0
- data/vendor/libgit2/src/{path.h → libgit2/path.h} +0 -0
- data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +0 -0
- data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +0 -0
- data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +0 -0
- data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +0 -0
- data/vendor/libgit2/src/{push.c → libgit2/push.c} +0 -0
- data/vendor/libgit2/src/{push.h → libgit2/push.h} +0 -0
- data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +0 -0
- data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +0 -0
- data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +11 -1
- data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
- data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
- data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +6 -2
- data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +0 -0
- data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +0 -0
- data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +0 -0
- data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +0 -0
- data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +0 -0
- data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +0 -0
- data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +6 -3
- data/vendor/libgit2/src/{remote.h → libgit2/remote.h} +1 -1
- data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
- data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +155 -22
- data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +1 -0
- data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +0 -0
- data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +0 -0
- data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +0 -0
- data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +0 -0
- data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +0 -0
- data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +0 -0
- data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +0 -0
- data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +0 -0
- data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +0 -0
- data/vendor/libgit2/src/{status.c → libgit2/status.c} +0 -0
- data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
- data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +0 -0
- data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/socket.c +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +0 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
- data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +0 -0
- data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +0 -0
- data/vendor/libgit2/src/{sysdir.c → libgit2/sysdir.c} +0 -0
- data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +0 -0
- data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +15 -5
- data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +0 -0
- data/vendor/libgit2/src/{threadstate.c → libgit2/threadstate.c} +0 -0
- data/vendor/libgit2/src/{threadstate.h → libgit2/threadstate.h} +0 -0
- data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +0 -0
- data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +0 -0
- data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +0 -0
- data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +0 -0
- data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +0 -0
- data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.c +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.c +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +1 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +12 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.c +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.h +0 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +0 -0
- data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +1 -1
- data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +0 -0
- data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +16 -23
- data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +1 -1
- data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
- data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +0 -0
- data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/git-xdiff.h +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiff.h +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.c +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.h +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.c +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.h +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xhistogram.c +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xinclude.h +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmacros.h +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmerge.c +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xpatience.c +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.c +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.h +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xtypes.h +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.c +0 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.h +0 -0
- data/vendor/libgit2/src/util/CMakeLists.txt +74 -0
- data/vendor/libgit2/src/{alloc.c → util/alloc.c} +0 -0
- data/vendor/libgit2/src/{alloc.h → util/alloc.h} +0 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.c +0 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.h +1 -1
- data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.c +0 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
- data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.c +0 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{array.h → util/array.h} +1 -1
- data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
- data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
- data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +0 -0
- data/vendor/libgit2/src/{date.c → util/date.c} +4 -3
- data/vendor/libgit2/src/{date.h → util/date.h} +0 -0
- data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +1 -1
- data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +1 -1
- data/vendor/libgit2/src/{fs_path.c → util/fs_path.c} +219 -65
- data/vendor/libgit2/src/{fs_path.h → util/fs_path.h} +47 -9
- data/vendor/libgit2/src/{futils.c → util/futils.c} +44 -2
- data/vendor/libgit2/src/{futils.h → util/futils.h} +2 -1
- data/vendor/libgit2/src/{common.h → util/git2_util.h} +13 -59
- data/vendor/libgit2/src/util/hash/builtin.c +53 -0
- data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +1 -1
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.c +55 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.c +46 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
- data/vendor/libgit2/src/util/hash/openssl.c +194 -0
- data/vendor/libgit2/src/util/hash/openssl.h +45 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha.h +355 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
- data/vendor/libgit2/src/util/hash/sha.h +70 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +0 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
- data/vendor/libgit2/src/util/hash/win32.c +549 -0
- data/vendor/libgit2/src/util/hash/win32.h +60 -0
- data/vendor/libgit2/src/{hash.c → util/hash.c} +17 -1
- data/vendor/libgit2/src/{hash.h → util/hash.h} +5 -3
- data/vendor/libgit2/src/{integer.h → util/integer.h} +0 -0
- data/vendor/libgit2/src/{khash.h → util/khash.h} +0 -0
- data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
- data/vendor/libgit2/src/{net.c → util/net.c} +0 -1
- data/vendor/libgit2/src/{net.h → util/net.h} +1 -1
- data/vendor/libgit2/src/{pool.c → util/pool.c} +0 -0
- data/vendor/libgit2/src/{pool.h → util/pool.h} +1 -1
- data/vendor/libgit2/src/{posix.c → util/posix.c} +0 -0
- data/vendor/libgit2/src/{posix.h → util/posix.h} +1 -1
- data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
- data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +1 -1
- data/vendor/libgit2/src/{rand.c → util/rand.c} +7 -3
- data/vendor/libgit2/src/{rand.h → util/rand.h} +1 -1
- data/vendor/libgit2/src/{regexp.c → util/regexp.c} +0 -0
- data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
- data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
- data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
- data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +0 -0
- data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +1 -1
- data/vendor/libgit2/src/{str.c → util/str.c} +0 -0
- data/vendor/libgit2/src/{str.h → util/str.h} +1 -1
- data/vendor/libgit2/src/{strmap.c → util/strmap.c} +0 -0
- data/vendor/libgit2/src/{strmap.h → util/strmap.h} +1 -1
- data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
- data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
- data/vendor/libgit2/src/{thread.h → util/thread.h} +0 -0
- data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
- data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -1
- data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -1
- data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
- data/vendor/libgit2/src/{unix → util/unix}/realpath.c +1 -1
- data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
- data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
- data/vendor/libgit2/src/{util.c → util/util.c} +1 -1
- data/vendor/libgit2/src/{util.h → util/util.h} +1 -1
- data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
- data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
- data/vendor/libgit2/src/{vector.c → util/vector.c} +0 -0
- data/vendor/libgit2/src/{vector.h → util/vector.h} +1 -1
- data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
- data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/error.c +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/findfile.c +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/findfile.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +1 -1
- data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
- data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.c +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +0 -0
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
- data/vendor/libgit2/src/{zstream.c → util/zstream.c} +0 -0
- data/vendor/libgit2/src/{zstream.h → util/zstream.h} +1 -1
- metadata +394 -365
- data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
- data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
- data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
- data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
- data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
- data/vendor/libgit2/src/hash/sha1.h +0 -40
|
@@ -436,6 +436,8 @@ GIT_EXTERN(int) git_diff_format_email_options_init(
|
|
|
436
436
|
#define GITERR_WORKTREE GIT_ERROR_WORKTREE
|
|
437
437
|
#define GITERR_SHA1 GIT_ERROR_SHA1
|
|
438
438
|
|
|
439
|
+
#define GIT_ERROR_SHA1 GIT_ERROR_SHA
|
|
440
|
+
|
|
439
441
|
/**
|
|
440
442
|
* Return the last `git_error` object that was generated for the
|
|
441
443
|
* current thread. This is an alias of `git_error_last` and is
|
|
@@ -57,7 +57,8 @@ typedef enum {
|
|
|
57
57
|
GIT_RETRY = -32, /**< Internal only */
|
|
58
58
|
GIT_EMISMATCH = -33, /**< Hashsum mismatch in object */
|
|
59
59
|
GIT_EINDEXDIRTY = -34, /**< Unsaved changes in the index would be overwritten */
|
|
60
|
-
GIT_EAPPLYFAIL = -35 /**< Patch application failed */
|
|
60
|
+
GIT_EAPPLYFAIL = -35, /**< Patch application failed */
|
|
61
|
+
GIT_EOWNER = -36 /**< The object is not owned by the current user */
|
|
61
62
|
} git_error_code;
|
|
62
63
|
|
|
63
64
|
/**
|
|
@@ -106,7 +107,7 @@ typedef enum {
|
|
|
106
107
|
GIT_ERROR_FILESYSTEM,
|
|
107
108
|
GIT_ERROR_PATCH,
|
|
108
109
|
GIT_ERROR_WORKTREE,
|
|
109
|
-
|
|
110
|
+
GIT_ERROR_SHA,
|
|
110
111
|
GIT_ERROR_HTTP,
|
|
111
112
|
GIT_ERROR_INTERNAL
|
|
112
113
|
} git_error_t;
|
|
@@ -130,7 +131,8 @@ GIT_EXTERN(const git_error *) git_error_last(void);
|
|
|
130
131
|
GIT_EXTERN(void) git_error_clear(void);
|
|
131
132
|
|
|
132
133
|
/**
|
|
133
|
-
* Set the error message string for this thread
|
|
134
|
+
* Set the error message string for this thread, using `printf`-style
|
|
135
|
+
* formatting.
|
|
134
136
|
*
|
|
135
137
|
* This function is public so that custom ODB backends and the like can
|
|
136
138
|
* relay an error message through libgit2. Most regular users of libgit2
|
|
@@ -143,7 +145,20 @@ GIT_EXTERN(void) git_error_clear(void);
|
|
|
143
145
|
*
|
|
144
146
|
* @param error_class One of the `git_error_t` enum above describing the
|
|
145
147
|
* general subsystem that is responsible for the error.
|
|
146
|
-
* @param
|
|
148
|
+
* @param fmt The `printf`-style format string; subsequent arguments must
|
|
149
|
+
* be the arguments for the format string.
|
|
150
|
+
*/
|
|
151
|
+
GIT_EXTERN(void) git_error_set(int error_class, const char *fmt, ...)
|
|
152
|
+
GIT_FORMAT_PRINTF(2, 3);
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Set the error message string for this thread. This function is like
|
|
156
|
+
* `git_error_set` but takes a static string instead of a `printf`-style
|
|
157
|
+
* format.
|
|
158
|
+
*
|
|
159
|
+
* @param error_class One of the `git_error_t` enum above describing the
|
|
160
|
+
* general subsystem that is responsible for the error.
|
|
161
|
+
* @param string The error message to keep
|
|
147
162
|
* @return 0 on success or -1 on failure
|
|
148
163
|
*/
|
|
149
164
|
GIT_EXTERN(int) git_error_set_str(int error_class, const char *string);
|
|
@@ -603,7 +603,7 @@ GIT_EXTERN(int) git_merge_commits(
|
|
|
603
603
|
* completes, resolve any conflicts and prepare a commit.
|
|
604
604
|
*
|
|
605
605
|
* For compatibility with git, the repository is put into a merging
|
|
606
|
-
* state. Once the commit is done (or if the
|
|
606
|
+
* state. Once the commit is done (or if the user wishes to abort),
|
|
607
607
|
* you should clear this state by calling
|
|
608
608
|
* `git_repository_state_cleanup()`.
|
|
609
609
|
*
|
|
@@ -227,13 +227,16 @@ typedef struct {
|
|
|
227
227
|
|
|
228
228
|
/**
|
|
229
229
|
* The `show` value is one of the `git_status_show_t` constants that
|
|
230
|
-
* control which files to scan and in what order.
|
|
230
|
+
* control which files to scan and in what order. The default is
|
|
231
|
+
* `GIT_STATUS_SHOW_INDEX_AND_WORKDIR`.
|
|
231
232
|
*/
|
|
232
233
|
git_status_show_t show;
|
|
233
234
|
|
|
234
235
|
/**
|
|
235
236
|
* The `flags` value is an OR'ed combination of the
|
|
236
|
-
* `git_status_opt_t` values above.
|
|
237
|
+
* `git_status_opt_t` values above. The default is
|
|
238
|
+
* `GIT_STATUS_OPT_DEFAULTS`, which matches git's default
|
|
239
|
+
* behavior.
|
|
237
240
|
*/
|
|
238
241
|
unsigned int flags;
|
|
239
242
|
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
#ifndef INCLUDE_sys_git_remote_h
|
|
9
9
|
#define INCLUDE_sys_git_remote_h
|
|
10
10
|
|
|
11
|
+
#include "git2/remote.h"
|
|
12
|
+
|
|
11
13
|
/**
|
|
12
14
|
* @file git2/sys/remote.h
|
|
13
15
|
* @brief Low-level remote functionality for custom transports
|
|
@@ -26,6 +28,19 @@ typedef enum {
|
|
|
26
28
|
GIT_REMOTE_CAPABILITY_REACHABLE_OID = (1 << 1),
|
|
27
29
|
} git_remote_capability_t;
|
|
28
30
|
|
|
31
|
+
/**
|
|
32
|
+
* Disposes libgit2-initialized fields from a git_remote_connect_options.
|
|
33
|
+
* This should only be used for git_remote_connect_options returned by
|
|
34
|
+
* git_transport_remote_connect_options.
|
|
35
|
+
*
|
|
36
|
+
* Note that this does not free the `git_remote_connect_options` itself, just
|
|
37
|
+
* the memory pointed to by it.
|
|
38
|
+
*
|
|
39
|
+
* @param opts The `git_remote_connect_options` struct to dispose.
|
|
40
|
+
*/
|
|
41
|
+
GIT_EXTERN(void) git_remote_connect_options_dispose(
|
|
42
|
+
git_remote_connect_options *opts);
|
|
43
|
+
|
|
29
44
|
/** @} */
|
|
30
45
|
GIT_END_DECL
|
|
31
46
|
#endif
|
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
#define INCLUDE_sys_git_transport_h
|
|
10
10
|
|
|
11
11
|
#include "git2/net.h"
|
|
12
|
+
#include "git2/proxy.h"
|
|
13
|
+
#include "git2/remote.h"
|
|
14
|
+
#include "git2/strarray.h"
|
|
12
15
|
#include "git2/transport.h"
|
|
13
16
|
#include "git2/types.h"
|
|
14
|
-
#include "git2/strarray.h"
|
|
15
|
-
#include "git2/proxy.h"
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* @file git2/sys/transport.h
|
|
@@ -261,14 +262,17 @@ GIT_EXTERN(int) git_transport_smart_certificate_check(git_transport *transport,
|
|
|
261
262
|
GIT_EXTERN(int) git_transport_smart_credentials(git_credential **out, git_transport *transport, const char *user, int methods);
|
|
262
263
|
|
|
263
264
|
/**
|
|
264
|
-
* Get a copy of the
|
|
265
|
+
* Get a copy of the remote connect options
|
|
265
266
|
*
|
|
266
|
-
*
|
|
267
|
+
* All data is copied and must be freed by the caller by calling
|
|
268
|
+
* `git_remote_connect_options_dispose`.
|
|
267
269
|
*
|
|
268
270
|
* @param out options struct to fill
|
|
269
271
|
* @param transport the transport to extract the data from.
|
|
270
272
|
*/
|
|
271
|
-
GIT_EXTERN(int)
|
|
273
|
+
GIT_EXTERN(int) git_transport_remote_connect_options(
|
|
274
|
+
git_remote_connect_options *out,
|
|
275
|
+
git_transport *transport);
|
|
272
276
|
|
|
273
277
|
/*
|
|
274
278
|
*** End of base transport interface ***
|
|
@@ -7,12 +7,33 @@
|
|
|
7
7
|
#ifndef INCLUDE_git_version_h__
|
|
8
8
|
#define INCLUDE_git_version_h__
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
#define
|
|
10
|
+
/**
|
|
11
|
+
* The version string for libgit2. This string follows semantic
|
|
12
|
+
* versioning (v2) guidelines.
|
|
13
|
+
*/
|
|
14
|
+
#define LIBGIT2_VERSION "1.5.0"
|
|
15
|
+
|
|
16
|
+
/** The major version number for this version of libgit2. */
|
|
17
|
+
#define LIBGIT2_VER_MAJOR 1
|
|
18
|
+
|
|
19
|
+
/** The minor version number for this version of libgit2. */
|
|
20
|
+
#define LIBGIT2_VER_MINOR 5
|
|
21
|
+
|
|
22
|
+
/** The revision ("teeny") version number for this version of libgit2. */
|
|
23
|
+
#define LIBGIT2_VER_REVISION 0
|
|
24
|
+
|
|
25
|
+
/** The Windows DLL patch number for this version of libgit2. */
|
|
26
|
+
#define LIBGIT2_VER_PATCH 0
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The prerelease string for this version of libgit2. For development
|
|
30
|
+
* (nightly) builds, this will be "alpha". For prereleases, this will be
|
|
31
|
+
* a prerelease name like "beta" or "rc1". For final releases, this will
|
|
32
|
+
* be `NULL`.
|
|
33
|
+
*/
|
|
34
|
+
#define LIBGIT2_VER_PRERELEASE NULL
|
|
15
35
|
|
|
16
|
-
|
|
36
|
+
/** The library ABI soversion for this version of libgit2. */
|
|
37
|
+
#define LIBGIT2_SOVERSION "1.5"
|
|
17
38
|
|
|
18
39
|
#endif
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
set_target_properties(git2internal PROPERTIES C_EXTENSIONS OFF)
|
|
1
|
+
# The main libgit2 source tree: this CMakeLists.txt identifies platform
|
|
2
|
+
# support and includes the subprojects that make up core libgit2 support.
|
|
4
3
|
|
|
4
|
+
#
|
|
5
|
+
# Optional build configuration settings
|
|
6
|
+
#
|
|
5
7
|
|
|
6
8
|
if(DEPRECATE_HARD)
|
|
7
9
|
add_definitions(-DGIT_DEPRECATE_HARD)
|
|
8
10
|
endif()
|
|
9
11
|
|
|
12
|
+
if(USE_LEAK_CHECKER STREQUAL "valgrind")
|
|
13
|
+
add_definitions(-DVALGRIND)
|
|
14
|
+
endif()
|
|
15
|
+
|
|
16
|
+
#
|
|
17
|
+
# Optional debugging functionality
|
|
18
|
+
#
|
|
19
|
+
|
|
10
20
|
if(DEBUG_POOL)
|
|
11
21
|
set(GIT_DEBUG_POOL 1)
|
|
12
22
|
endif()
|
|
@@ -22,29 +32,32 @@ if(DEBUG_STRICT_OPEN)
|
|
|
22
32
|
endif()
|
|
23
33
|
add_feature_info(debugopen GIT_DEBUG_STRICT_OPEN "path validation in open")
|
|
24
34
|
|
|
35
|
+
#
|
|
36
|
+
# Optional feature enablement
|
|
37
|
+
#
|
|
25
38
|
|
|
26
|
-
include(
|
|
27
|
-
include(
|
|
39
|
+
include(SelectGSSAPI)
|
|
40
|
+
include(SelectHTTPSBackend)
|
|
41
|
+
include(SelectHashes)
|
|
42
|
+
include(SelectHTTPParser)
|
|
43
|
+
include(SelectRegex)
|
|
44
|
+
include(SelectSSH)
|
|
45
|
+
include(SelectWinHTTP)
|
|
46
|
+
include(SelectZlib)
|
|
28
47
|
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
#
|
|
32
|
-
set(LIBGIT2_PC_REQUIRES "")
|
|
33
|
-
# This will be set later if we use the system's http-parser library or
|
|
34
|
-
# use iconv (OSX) and will be written to the Libs.private field in the
|
|
35
|
-
# pc file.
|
|
36
|
-
set(LIBGIT2_PC_LIBS "")
|
|
48
|
+
#
|
|
49
|
+
# Platform support
|
|
50
|
+
#
|
|
37
51
|
|
|
38
|
-
|
|
39
|
-
"${CMAKE_CURRENT_BINARY_DIR}"
|
|
40
|
-
"${PROJECT_SOURCE_DIR}/src"
|
|
41
|
-
"${PROJECT_SOURCE_DIR}/include")
|
|
52
|
+
# futimes/futimens
|
|
42
53
|
|
|
43
54
|
if(HAVE_FUTIMENS)
|
|
44
55
|
set(GIT_USE_FUTIMENS 1)
|
|
45
56
|
endif ()
|
|
46
57
|
add_feature_info(futimens GIT_USE_FUTIMENS "futimens support")
|
|
47
58
|
|
|
59
|
+
# qsort
|
|
60
|
+
|
|
48
61
|
check_prototype_definition(qsort_r
|
|
49
62
|
"void qsort_r(void *base, size_t nmemb, size_t size, void *thunk, int (*compar)(void *, const void *, const void *))"
|
|
50
63
|
"" "stdlib.h" GIT_QSORT_R_BSD)
|
|
@@ -55,69 +68,85 @@ check_prototype_definition(qsort_r
|
|
|
55
68
|
|
|
56
69
|
check_function_exists(qsort_s GIT_QSORT_S)
|
|
57
70
|
|
|
71
|
+
# random / entropy data
|
|
72
|
+
|
|
58
73
|
check_function_exists(getentropy GIT_RAND_GETENTROPY)
|
|
74
|
+
check_function_exists(getloadavg GIT_RAND_GETLOADAVG)
|
|
59
75
|
|
|
60
|
-
#
|
|
76
|
+
# determine architecture of the machine
|
|
61
77
|
|
|
62
|
-
if(
|
|
63
|
-
|
|
64
|
-
elseif(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
78
|
+
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
79
|
+
set(GIT_ARCH_64 1)
|
|
80
|
+
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
81
|
+
set(GIT_ARCH_32 1)
|
|
82
|
+
elseif(CMAKE_SIZEOF_VOID_P)
|
|
83
|
+
message(FATAL_ERROR "Unsupported architecture (pointer size is ${CMAKE_SIZEOF_VOID_P} bytes)")
|
|
84
|
+
else()
|
|
85
|
+
message(FATAL_ERROR "Unsupported architecture (CMAKE_SIZEOF_VOID_P is unset)")
|
|
86
|
+
endif()
|
|
87
|
+
|
|
88
|
+
# nanosecond mtime/ctime support
|
|
89
|
+
|
|
90
|
+
if(USE_NSEC)
|
|
91
|
+
set(GIT_USE_NSEC 1)
|
|
70
92
|
endif()
|
|
71
93
|
|
|
94
|
+
# high-resolution stat support
|
|
95
|
+
|
|
96
|
+
if(HAVE_STRUCT_STAT_ST_MTIM)
|
|
97
|
+
set(GIT_USE_STAT_MTIM 1)
|
|
98
|
+
elseif(HAVE_STRUCT_STAT_ST_MTIMESPEC)
|
|
99
|
+
set(GIT_USE_STAT_MTIMESPEC 1)
|
|
100
|
+
elseif(HAVE_STRUCT_STAT_ST_MTIME_NSEC)
|
|
101
|
+
set(GIT_USE_STAT_MTIME_NSEC 1)
|
|
102
|
+
endif()
|
|
103
|
+
|
|
104
|
+
# realtime support
|
|
105
|
+
|
|
72
106
|
check_library_exists(rt clock_gettime "time.h" NEED_LIBRT)
|
|
73
107
|
if(NEED_LIBRT)
|
|
74
108
|
list(APPEND LIBGIT2_SYSTEM_LIBS rt)
|
|
75
109
|
list(APPEND LIBGIT2_PC_LIBS "-lrt")
|
|
76
110
|
endif()
|
|
77
111
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
112
|
+
# platform libraries
|
|
113
|
+
|
|
114
|
+
if(WIN32)
|
|
115
|
+
list(APPEND LIBGIT2_SYSTEM_LIBS ws2_32)
|
|
81
116
|
endif()
|
|
82
|
-
add_feature_info(threadsafe USE_THREADS "threadsafe support")
|
|
83
117
|
|
|
118
|
+
if(CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
|
|
119
|
+
list(APPEND LIBGIT2_SYSTEM_LIBS socket nsl)
|
|
120
|
+
list(APPEND LIBGIT2_PC_LIBS "-lsocket" "-lnsl")
|
|
121
|
+
endif()
|
|
84
122
|
|
|
85
|
-
if(
|
|
86
|
-
|
|
87
|
-
list(
|
|
88
|
-
|
|
123
|
+
if(CMAKE_SYSTEM_NAME MATCHES "Haiku")
|
|
124
|
+
list(APPEND LIBGIT2_SYSTEM_LIBS gnu network)
|
|
125
|
+
list(APPEND LIBGIT2_PC_LIBS "-lgnu -lnetwork")
|
|
126
|
+
endif()
|
|
89
127
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
set(GIT_SSH 1)
|
|
128
|
+
if(AMIGA)
|
|
129
|
+
add_definitions(-DNO_ADDRINFO -DNO_READDIR_R -DNO_MMAP)
|
|
93
130
|
endif()
|
|
94
131
|
|
|
95
|
-
|
|
96
|
-
include(SelectHashes)
|
|
97
|
-
include(SelectHTTPParser)
|
|
98
|
-
include(SelectRegex)
|
|
99
|
-
include(SelectSSH)
|
|
100
|
-
include(SelectWinHTTP)
|
|
101
|
-
include(SelectZlib)
|
|
132
|
+
# threads
|
|
102
133
|
|
|
134
|
+
if(USE_THREADS)
|
|
135
|
+
if(NOT WIN32)
|
|
136
|
+
find_package(Threads REQUIRED)
|
|
137
|
+
list(APPEND LIBGIT2_SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
|
138
|
+
list(APPEND LIBGIT2_PC_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
|
139
|
+
endif()
|
|
103
140
|
|
|
104
|
-
|
|
105
|
-
file(GLOB SRC_SHA1 hash/sha1/collisiondetect.* hash/sha1/sha1dc/*)
|
|
106
|
-
elseif(USE_SHA1 STREQUAL "OpenSSL")
|
|
107
|
-
file(GLOB SRC_SHA1 hash/sha1/openssl.*)
|
|
108
|
-
elseif(USE_SHA1 STREQUAL "CommonCrypto")
|
|
109
|
-
file(GLOB SRC_SHA1 hash/sha1/common_crypto.*)
|
|
110
|
-
elseif(USE_SHA1 STREQUAL "mbedTLS")
|
|
111
|
-
file(GLOB SRC_SHA1 hash/sha1/mbedtls.*)
|
|
112
|
-
elseif(USE_SHA1 STREQUAL "Win32")
|
|
113
|
-
file(GLOB SRC_SHA1 hash/sha1/win32.*)
|
|
114
|
-
elseif(USE_SHA1 STREQUAL "Generic")
|
|
115
|
-
file(GLOB SRC_SHA1 hash/sha1/generic.*)
|
|
141
|
+
set(GIT_THREADS 1)
|
|
116
142
|
endif()
|
|
117
|
-
|
|
118
|
-
|
|
143
|
+
add_feature_info(threadsafe USE_THREADS "threadsafe support")
|
|
144
|
+
|
|
145
|
+
#
|
|
146
|
+
# Optional bundled features
|
|
147
|
+
#
|
|
119
148
|
|
|
120
|
-
#
|
|
149
|
+
# ntlmclient
|
|
121
150
|
if(USE_NTLMCLIENT)
|
|
122
151
|
set(GIT_NTLM 1)
|
|
123
152
|
add_subdirectory("${PROJECT_SOURCE_DIR}/deps/ntlmclient" "${PROJECT_BINARY_DIR}/deps/ntlmclient")
|
|
@@ -126,11 +155,10 @@ if(USE_NTLMCLIENT)
|
|
|
126
155
|
endif()
|
|
127
156
|
add_feature_info(ntlmclient GIT_NTLM "NTLM authentication support for Unix")
|
|
128
157
|
|
|
129
|
-
#
|
|
158
|
+
#
|
|
159
|
+
# Optional external dependencies
|
|
130
160
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
# Optional external dependency: iconv
|
|
161
|
+
# iconv
|
|
134
162
|
if(USE_ICONV)
|
|
135
163
|
find_package(Iconv)
|
|
136
164
|
endif()
|
|
@@ -142,166 +170,28 @@ if(ICONV_FOUND)
|
|
|
142
170
|
endif()
|
|
143
171
|
add_feature_info(iconv GIT_USE_ICONV "iconv encoding conversion support")
|
|
144
172
|
|
|
173
|
+
#
|
|
174
|
+
# Configure support
|
|
175
|
+
#
|
|
145
176
|
|
|
146
|
-
|
|
147
|
-
if(NOT WIN32)
|
|
148
|
-
find_package(Threads REQUIRED)
|
|
149
|
-
endif()
|
|
150
|
-
|
|
151
|
-
set(GIT_THREADS 1)
|
|
152
|
-
endif()
|
|
153
|
-
|
|
154
|
-
if(USE_NSEC)
|
|
155
|
-
set(GIT_USE_NSEC 1)
|
|
156
|
-
endif()
|
|
157
|
-
|
|
158
|
-
if(HAVE_STRUCT_STAT_ST_MTIM)
|
|
159
|
-
set(GIT_USE_STAT_MTIM 1)
|
|
160
|
-
elseif(HAVE_STRUCT_STAT_ST_MTIMESPEC)
|
|
161
|
-
set(GIT_USE_STAT_MTIMESPEC 1)
|
|
162
|
-
elseif(HAVE_STRUCT_STAT_ST_MTIME_NSEC)
|
|
163
|
-
set(GIT_USE_STAT_MTIME_NSEC 1)
|
|
164
|
-
endif()
|
|
165
|
-
|
|
166
|
-
target_compile_definitions(git2internal PRIVATE _FILE_OFFSET_BITS=64)
|
|
167
|
-
|
|
168
|
-
# Collect sourcefiles
|
|
169
|
-
file(GLOB SRC_H
|
|
170
|
-
"${PROJECT_SOURCE_DIR}/include/git2.h"
|
|
171
|
-
"${PROJECT_SOURCE_DIR}/include/git2/*.h"
|
|
172
|
-
"${PROJECT_SOURCE_DIR}/include/git2/sys/*.h")
|
|
173
|
-
list(SORT SRC_H)
|
|
174
|
-
target_sources(git2internal PRIVATE ${SRC_H})
|
|
175
|
-
|
|
176
|
-
# On Windows use specific platform sources
|
|
177
|
-
if(WIN32 AND NOT CYGWIN)
|
|
178
|
-
set(WIN_RC "win32/git2.rc")
|
|
179
|
-
|
|
180
|
-
file(GLOB SRC_OS win32/*.c win32/*.h)
|
|
181
|
-
list(SORT SRC_OS)
|
|
182
|
-
target_sources(git2internal PRIVATE ${SRC_OS})
|
|
183
|
-
elseif(AMIGA)
|
|
184
|
-
target_compile_definitions(git2internal PRIVATE NO_ADDRINFO NO_READDIR_R NO_MMAP)
|
|
185
|
-
else()
|
|
186
|
-
file(GLOB SRC_OS unix/*.c unix/*.h)
|
|
187
|
-
list(SORT SRC_OS)
|
|
188
|
-
target_sources(git2internal PRIVATE ${SRC_OS})
|
|
189
|
-
endif()
|
|
190
|
-
|
|
191
|
-
if(USE_LEAK_CHECKER STREQUAL "valgrind")
|
|
192
|
-
target_compile_definitions(git2internal PRIVATE VALGRIND)
|
|
193
|
-
endif()
|
|
177
|
+
configure_file(features.h.in git2/sys/features.h)
|
|
194
178
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
transports/*.c transports/*.h
|
|
199
|
-
xdiff/*.c xdiff/*.h)
|
|
200
|
-
list(SORT SRC_GIT2)
|
|
201
|
-
target_sources(git2internal PRIVATE ${SRC_GIT2})
|
|
202
|
-
|
|
203
|
-
if(APPLE)
|
|
204
|
-
# The old Secure Transport API has been deprecated in macOS 10.15.
|
|
205
|
-
set_source_files_properties(streams/stransport.c PROPERTIES COMPILE_FLAGS -Wno-deprecated)
|
|
206
|
-
endif()
|
|
179
|
+
#
|
|
180
|
+
# Include child projects
|
|
181
|
+
#
|
|
207
182
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
if(MSVC)
|
|
211
|
-
set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
212
|
-
set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
213
|
-
set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
214
|
-
set_source_files_properties(xdiff/xmerge.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
215
|
-
set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
216
|
-
set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS -WX-)
|
|
217
|
-
else()
|
|
218
|
-
set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
|
|
219
|
-
set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter")
|
|
220
|
-
set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
|
221
|
-
set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
|
222
|
-
set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare")
|
|
223
|
-
endif()
|
|
183
|
+
add_subdirectory(libgit2)
|
|
184
|
+
add_subdirectory(util)
|
|
224
185
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
set(GIT_ARCH_64 1)
|
|
228
|
-
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
229
|
-
set(GIT_ARCH_32 1)
|
|
230
|
-
elseif(CMAKE_SIZEOF_VOID_P)
|
|
231
|
-
message(FATAL_ERROR "Unsupported architecture (pointer size is ${CMAKE_SIZEOF_VOID_P} bytes)")
|
|
232
|
-
else()
|
|
233
|
-
message(FATAL_ERROR "Unsupported architecture (CMAKE_SIZEOF_VOID_P is unset)")
|
|
186
|
+
if(BUILD_CLI)
|
|
187
|
+
add_subdirectory(cli)
|
|
234
188
|
endif()
|
|
235
189
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
ide_split_sources(git2internal)
|
|
239
|
-
list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:git2internal> ${LIBGIT2_DEPENDENCY_OBJECTS})
|
|
240
|
-
|
|
241
|
-
target_include_directories(git2internal PRIVATE ${LIBGIT2_INCLUDES} ${LIBGIT2_DEPENDENCY_INCLUDES} PUBLIC ${PROJECT_SOURCE_DIR}/include)
|
|
242
|
-
target_include_directories(git2internal SYSTEM PRIVATE ${LIBGIT2_SYSTEM_INCLUDES})
|
|
243
|
-
|
|
190
|
+
# re-export these to the root so that peer projects (tests, fuzzers,
|
|
191
|
+
# examples) can use them
|
|
244
192
|
set(LIBGIT2_INCLUDES ${LIBGIT2_INCLUDES} PARENT_SCOPE)
|
|
245
193
|
set(LIBGIT2_OBJECTS ${LIBGIT2_OBJECTS} PARENT_SCOPE)
|
|
246
194
|
set(LIBGIT2_DEPENDENCY_INCLUDES ${LIBGIT2_DEPENDENCY_INCLUDES} PARENT_SCOPE)
|
|
247
195
|
set(LIBGIT2_DEPENDENCY_OBJECTS ${LIBGIT2_DEPENDENCY_OBJECTS} PARENT_SCOPE)
|
|
248
196
|
set(LIBGIT2_SYSTEM_INCLUDES ${LIBGIT2_SYSTEM_INCLUDES} PARENT_SCOPE)
|
|
249
197
|
set(LIBGIT2_SYSTEM_LIBS ${LIBGIT2_SYSTEM_LIBS} PARENT_SCOPE)
|
|
250
|
-
|
|
251
|
-
if(XCODE_VERSION)
|
|
252
|
-
# This is required for Xcode to actually link the libgit2 library
|
|
253
|
-
# when using only object libraries.
|
|
254
|
-
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/dummy.c "")
|
|
255
|
-
list(APPEND LIBGIT2_OBJECTS ${CMAKE_CURRENT_BINARY_DIR}/dummy.c)
|
|
256
|
-
endif()
|
|
257
|
-
|
|
258
|
-
# Compile and link libgit2
|
|
259
|
-
add_library(git2 ${WIN_RC} ${LIBGIT2_OBJECTS})
|
|
260
|
-
target_link_libraries(git2 ${LIBGIT2_SYSTEM_LIBS})
|
|
261
|
-
|
|
262
|
-
set_target_properties(git2 PROPERTIES C_STANDARD 90)
|
|
263
|
-
set_target_properties(git2 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
|
264
|
-
set_target_properties(git2 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
|
265
|
-
set_target_properties(git2 PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
|
266
|
-
|
|
267
|
-
# Workaround for Cmake bug #0011240 (see http://public.kitware.com/Bug/view.php?id=11240)
|
|
268
|
-
# Win64+MSVC+static libs = linker error
|
|
269
|
-
if(MSVC AND GIT_ARCH_64 AND NOT BUILD_SHARED_LIBS)
|
|
270
|
-
set_target_properties(git2 PROPERTIES STATIC_LIBRARY_FLAGS "/MACHINE:x64")
|
|
271
|
-
endif()
|
|
272
|
-
|
|
273
|
-
ide_split_sources(git2)
|
|
274
|
-
|
|
275
|
-
if(SONAME)
|
|
276
|
-
set_target_properties(git2 PROPERTIES VERSION ${libgit2_VERSION})
|
|
277
|
-
set_target_properties(git2 PROPERTIES SOVERSION "${libgit2_VERSION_MAJOR}.${libgit2_VERSION_MINOR}")
|
|
278
|
-
if(LIBGIT2_FILENAME)
|
|
279
|
-
target_compile_definitions(git2 PRIVATE LIBGIT2_FILENAME=\"${LIBGIT2_FILENAME}\")
|
|
280
|
-
set_target_properties(git2 PROPERTIES OUTPUT_NAME ${LIBGIT2_FILENAME})
|
|
281
|
-
elseif(DEFINED LIBGIT2_PREFIX)
|
|
282
|
-
set_target_properties(git2 PROPERTIES PREFIX "${LIBGIT2_PREFIX}")
|
|
283
|
-
endif()
|
|
284
|
-
endif()
|
|
285
|
-
|
|
286
|
-
pkg_build_config(NAME libgit2
|
|
287
|
-
VERSION ${libgit2_VERSION}
|
|
288
|
-
DESCRIPTION "The git library, take 2"
|
|
289
|
-
LIBS_SELF git2
|
|
290
|
-
PRIVATE_LIBS ${LIBGIT2_PC_LIBS}
|
|
291
|
-
REQUIRES ${LIBGIT2_PC_REQUIRES}
|
|
292
|
-
)
|
|
293
|
-
|
|
294
|
-
if(MSVC_IDE)
|
|
295
|
-
# Precompiled headers
|
|
296
|
-
set_target_properties(git2 PROPERTIES COMPILE_FLAGS "/Yuprecompiled.h /FIprecompiled.h")
|
|
297
|
-
set_source_files_properties(win32/precompiled.c COMPILE_FLAGS "/Ycprecompiled.h")
|
|
298
|
-
endif()
|
|
299
|
-
|
|
300
|
-
# Install
|
|
301
|
-
install(TARGETS git2
|
|
302
|
-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
303
|
-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
304
|
-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
305
|
-
)
|
|
306
|
-
install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/git2 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
307
|
-
install(FILES ${PROJECT_SOURCE_DIR}/include/git2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# libgit2 sources
|
|
2
|
+
|
|
3
|
+
This is the source that makes up the core of libgit2 and its related
|
|
4
|
+
projects.
|
|
5
|
+
|
|
6
|
+
* `cli`
|
|
7
|
+
A git-compatible command-line interface that uses libgit2.
|
|
8
|
+
* `libgit2`
|
|
9
|
+
This is the libgit2 project, a cross-platform, linkable library
|
|
10
|
+
implementation of Git that you can use in your application.
|
|
11
|
+
* `util`
|
|
12
|
+
A shared utility library for these projects.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
set(CLI_INCLUDES
|
|
2
|
+
"${libgit2_BINARY_DIR}/src"
|
|
3
|
+
"${libgit2_SOURCE_DIR}/src/util"
|
|
4
|
+
"${libgit2_SOURCE_DIR}/src/cli"
|
|
5
|
+
"${libgit2_SOURCE_DIR}/include")
|
|
6
|
+
|
|
7
|
+
if(WIN32 AND NOT CYGWIN)
|
|
8
|
+
file(GLOB CLI_SRC_OS win32/*.c)
|
|
9
|
+
list(SORT CLI_SRC_OS)
|
|
10
|
+
else()
|
|
11
|
+
file(GLOB CLI_SRC_OS unix/*.c)
|
|
12
|
+
list(SORT CLI_SRC_OS)
|
|
13
|
+
endif()
|
|
14
|
+
|
|
15
|
+
file(GLOB CLI_SRC_C *.c *.h)
|
|
16
|
+
list(SORT CLI_SRC_C)
|
|
17
|
+
|
|
18
|
+
#
|
|
19
|
+
# The CLI currently needs to be statically linked against libgit2 because
|
|
20
|
+
# the utility library uses libgit2's thread-local error buffers. TODO:
|
|
21
|
+
# remove this dependency and allow us to dynamically link against libgit2.
|
|
22
|
+
#
|
|
23
|
+
|
|
24
|
+
if(BUILD_CLI STREQUAL "dynamic")
|
|
25
|
+
set(CLI_LIBGIT2_LIBRARY libgit2package)
|
|
26
|
+
else()
|
|
27
|
+
set(CLI_LIBGIT2_OBJECTS $<TARGET_OBJECTS:libgit2>)
|
|
28
|
+
endif()
|
|
29
|
+
|
|
30
|
+
#
|
|
31
|
+
# Compile and link the CLI
|
|
32
|
+
#
|
|
33
|
+
|
|
34
|
+
add_executable(git2_cli ${CLI_SRC_C} ${CLI_SRC_OS} ${CLI_OBJECTS}
|
|
35
|
+
$<TARGET_OBJECTS:util>
|
|
36
|
+
${CLI_LIBGIT2_OBJECTS}
|
|
37
|
+
${LIBGIT2_DEPENDENCY_OBJECTS})
|
|
38
|
+
target_link_libraries(git2_cli ${CLI_LIBGIT2_LIBRARY} ${LIBGIT2_SYSTEM_LIBS})
|
|
39
|
+
|
|
40
|
+
set_target_properties(git2_cli PROPERTIES C_STANDARD 90)
|
|
41
|
+
set_target_properties(git2_cli PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${libgit2_BINARY_DIR})
|
|
42
|
+
|
|
43
|
+
ide_split_sources(git2_cli)
|
|
44
|
+
|
|
45
|
+
target_include_directories(git2_cli PRIVATE ${CLI_INCLUDES})
|
|
46
|
+
|
|
47
|
+
if(MSVC_IDE)
|
|
48
|
+
# Precompiled headers
|
|
49
|
+
set_target_properties(git2_cli PROPERTIES COMPILE_FLAGS "/Yuprecompiled.h /FIprecompiled.h")
|
|
50
|
+
set_source_files_properties(win32/precompiled.c COMPILE_FLAGS "/Ycprecompiled.h")
|
|
51
|
+
endif()
|
|
52
|
+
|
|
53
|
+
install(TARGETS git2_cli RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# cli
|
|
2
|
+
|
|
3
|
+
A git-compatible command-line interface that uses libgit2.
|
|
4
|
+
|
|
5
|
+
## Adding commands
|
|
6
|
+
|
|
7
|
+
1. Individual commands have a `main`-like top-level entrypoint. For example:
|
|
8
|
+
|
|
9
|
+
```c
|
|
10
|
+
int cmd_help(int argc, char **argv)
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Although this is the same signature as `main`, commands are not built as
|
|
14
|
+
individual standalone executables, they'll be linked into the main cli.
|
|
15
|
+
(Though there may be an option for command executables to be built as
|
|
16
|
+
standalone executables in the future.)
|
|
17
|
+
|
|
18
|
+
2. Commands are prototyped in `cmd.h` and added to `main.c`'s list of
|
|
19
|
+
commands (`cli_cmds[]`). Commands should be specified with their name,
|
|
20
|
+
entrypoint and a brief description that can be printed in `git help`.
|
|
21
|
+
This is done because commands are linked into the main cli.
|
|
22
|
+
|
|
23
|
+
3. Commands should accept a `--help` option that displays their help
|
|
24
|
+
information. This will be shown when a user runs `<command> --help` and
|
|
25
|
+
when a user runs `help <command>`.
|
|
26
|
+
|