aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt10
-rw-r--r--git-access.c7
-rw-r--r--save-git.c9
3 files changed, 26 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5247b623b..4f80fefeb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,7 @@ option(LIBDC_FROM_PKGCONFIG "use pkg-config to retrieve libdivecomputer" OFF)
option(NO_MARBLE "disable the marble widget" OFF)
option(NO_TESTS "disable the tests" OFF)
option(NO_DOCS "disable the docs" OFF)
+option(USE_LIBGIT23_API "allow building with libgit2 master" OFF)
set(CMAKE_MODULE_PATH ${${PROJECT_NAME}_SOURCE_DIR}/cmake/Modules)
include_directories(. ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR} qt-ui qt-ui/profile)
@@ -35,9 +36,18 @@ pkg_config_library(LIBUSB libusb-1.0 QUIET)
if(LIBGIT2_FROM_PKGCONFIG)
pkg_config_library(LIBGIT2 libgit2 REQUIRED)
set(LIBGIT2_LIBRARIES "")
+ if(USE_LIBGIT23_API)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_LIBGIT23_API")
+ pkg_config_library(LIBSSH2 libssh2 REQUIRED)
+ set(LIBGIT2_LIBRARIES ${LIBGIT2_LIBRARIES} ${LIBSSH2_LIBRARIES})
+ endif()
else()
find_package(LIBGIT2 REQUIRED)
include_directories(${LIBGIT2_INCLUDE_DIR})
+ if(USE_LIBGIT23_API)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_LIBGIT23_API")
+ set(LIBGIT2_LIBRARIES ${LIBGIT2_LIBRARIES} -lssh2)
+ endif()
endif()
if(LIBDC_FROM_PKGCONFIG)
diff --git a/git-access.c b/git-access.c
index 7e1a47ee1..2b318e323 100644
--- a/git-access.c
+++ b/git-access.c
@@ -26,6 +26,13 @@
#define git_remote_fetch(remote, refspecs, signature, reflog) git_remote_fetch(remote, signature, reflog)
#endif
#endif
+/*
+ * api break introduced in libgit2 master after 0.22 - let's guess this is the v0.23 API
+ */
+#if USE_LIBGIT23_API
+ #define git_branch_create(out, repo, branch_name, target, force, signature, log_message) \
+ git_branch_create(out, repo, branch_name, target, force)
+#endif
static char *get_local_dir(const char *remote, const char *branch)
{
diff --git a/save-git.c b/save-git.c
index a7b51446a..6461366f1 100644
--- a/save-git.c
+++ b/save-git.c
@@ -34,6 +34,15 @@
#else
#define git_treebuilder_write(id, repo, bld) git_treebuilder_write(id, bld)
#endif
+/*
+ * api break introduced in libgit2 master after 0.22 - let's guess this is the v0.23 API
+ */
+#if USE_LIBGIT23_API
+ #define git_branch_create(out, repo, branch_name, target, force, signature, log_message) \
+ git_branch_create(out, repo, branch_name, target, force)
+ #define git_reference_set_target(out, ref, id, author, log_message) \
+ git_reference_set_target(out, ref, id, log_message)
+#endif
#define VA_BUF(b, fmt) do { va_list args; va_start(args, fmt); put_vformat(b, fmt, args); va_end(args); } while (0)