summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-03-06 11:17:50 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-03-06 11:17:50 +0100
commitd7d37fe292a85b5e1b0b34c773a6af039b7849d8 (patch)
tree99a95bf76e4e28f4c65e0afd8e05fdc2d6ca86d4 /cmake
parent4dc7274f13be14eb6ca210f4297362b0ad0845a5 (diff)
downloadsink-d7d37fe292a85b5e1b0b34c773a6af039b7849d8.tar.gz
sink-d7d37fe292a85b5e1b0b34c773a6af039b7849d8.zip
libgit version check
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/FindLibgit2.cmake29
1 files changed, 23 insertions, 6 deletions
diff --git a/cmake/modules/FindLibgit2.cmake b/cmake/modules/FindLibgit2.cmake
index f33db4a..fbfb32f 100644
--- a/cmake/modules/FindLibgit2.cmake
+++ b/cmake/modules/FindLibgit2.cmake
@@ -9,8 +9,8 @@
9 9
10# use pkg-config to get the directories and then use these values 10# use pkg-config to get the directories and then use these values
11# in the FIND_PATH() and FIND_LIBRARY() calls 11# in the FIND_PATH() and FIND_LIBRARY() calls
12#FIND_PACKAGE(PkgConfig) 12FIND_PACKAGE(PkgConfig)
13#PKG_SEARCH_MODULE(PC_LIBGIT2 libgit2) 13PKG_SEARCH_MODULE(PC_LIBGIT2 libgit2)
14 14
15SET(LIBGIT2_DEFINITIONS ${PC_LIBGIT2_CFLAGS_OTHER}) 15SET(LIBGIT2_DEFINITIONS ${PC_LIBGIT2_CFLAGS_OTHER})
16 16
@@ -26,11 +26,28 @@ FIND_LIBRARY(LIBGIT2_LIBRARIES NAMES git2
26 ${PC_LIBGIT2_LIBRARY_DIRS} 26 ${PC_LIBGIT2_LIBRARY_DIRS}
27 ) 27 )
28 28
29#Should be replaced by a version check 29message("foo: ${LIBGIT2_INCLUDE_DIR} : ${PC_LIBGIT2_INCLUDEDIR} : ${PC_LIBGIT2_INCLUDE_DIRS}")
30include(CheckFunctionExists) 30
31CHECK_FUNCTION_EXISTS(git_buf_free HAVE_BUF_FREE) 31# get version from header, should work on windows, too
32if(LIBGIT2_INCLUDE_DIR)
33 file(STRINGS "${LIBGIT2_INCLUDE_DIR}/git2/version.h" LIBGIT2_H REGEX "^#define LIBGIT2_VERSION \"[^\"]*\"$")
34
35 string(REGEX REPLACE "^.*LIBGIT2_VERSION \"([0-9]+).*$" "\\1" LIBGIT2_VERSION_MAJOR "${LIBGIT2_H}")
36 string(REGEX REPLACE "^.*LIBGIT2_VERSION \"[0-9]+\\.([0-9]+).*$" "\\1" LIBGIT2_VERSION_MINOR "${LIBGIT2_H}")
37 string(REGEX REPLACE "^.*LIBGIT2_VERSION \"[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" LIBGIT2_VERSION_PATCH "${LIBGIT2_H}")
38 set(LIBGIT2_VERSION "${LIBGIT2_VERSION_MAJOR}.${LIBGIT2_VERSION_MINOR}.${LIBGIT2_VERSION_PATCH}")
39
40 set(LIBGIT2_MAJOR_VERSION "${LIBGIT2_VERSION_MAJOR}")
41 set(LIBGIT2_MINOR_VERSION "${LIBGIT2_VERSION_MINOR}")
42 set(LIBGIT2_PATCH_VERSION "${LIBGIT2_VERSION_PATCH}")
43
44 unset(LIBGIT2_H)
45endif()
32 46
33INCLUDE(FindPackageHandleStandardArgs) 47INCLUDE(FindPackageHandleStandardArgs)
34FIND_PACKAGE_HANDLE_STANDARD_ARGS(libgit2 DEFAULT_MSG LIBGIT2_LIBRARIES LIBGIT2_INCLUDE_DIR HAVE_BUF_FREE) 48FIND_PACKAGE_HANDLE_STANDARD_ARGS(libgit2
49 REQUIRED_VARS LIBGIT2_LIBRARIES LIBGIT2_INCLUDE_DIR
50 FOUND_VAR LIBGIT2_FOUND
51 VERSION_VAR LIBGIT2_VERSION)
35 52
36MARK_AS_ADVANCED(LIBGIT2_INCLUDE_DIR LIBGIT2_LIBRARIES) 53MARK_AS_ADVANCED(LIBGIT2_INCLUDE_DIR LIBGIT2_LIBRARIES)