diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-03-06 11:17:50 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-03-06 11:17:50 +0100 |
commit | d7d37fe292a85b5e1b0b34c773a6af039b7849d8 (patch) | |
tree | 99a95bf76e4e28f4c65e0afd8e05fdc2d6ca86d4 | |
parent | 4dc7274f13be14eb6ca210f4297362b0ad0845a5 (diff) | |
download | sink-d7d37fe292a85b5e1b0b34c773a6af039b7849d8.tar.gz sink-d7d37fe292a85b5e1b0b34c773a6af039b7849d8.zip |
libgit version check
-rw-r--r-- | cmake/modules/FindLibgit2.cmake | 29 | ||||
-rw-r--r-- | tests/hawd/CMakeLists.txt | 3 |
2 files changed, 25 insertions, 7 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) | 12 | FIND_PACKAGE(PkgConfig) |
13 | #PKG_SEARCH_MODULE(PC_LIBGIT2 libgit2) | 13 | PKG_SEARCH_MODULE(PC_LIBGIT2 libgit2) |
14 | 14 | ||
15 | SET(LIBGIT2_DEFINITIONS ${PC_LIBGIT2_CFLAGS_OTHER}) | 15 | SET(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 | 29 | message("foo: ${LIBGIT2_INCLUDE_DIR} : ${PC_LIBGIT2_INCLUDEDIR} : ${PC_LIBGIT2_INCLUDE_DIRS}") |
30 | include(CheckFunctionExists) | 30 | |
31 | CHECK_FUNCTION_EXISTS(git_buf_free HAVE_BUF_FREE) | 31 | # get version from header, should work on windows, too |
32 | if(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) | ||
45 | endif() | ||
32 | 46 | ||
33 | INCLUDE(FindPackageHandleStandardArgs) | 47 | INCLUDE(FindPackageHandleStandardArgs) |
34 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(libgit2 DEFAULT_MSG LIBGIT2_LIBRARIES LIBGIT2_INCLUDE_DIR HAVE_BUF_FREE) | 48 | FIND_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 | ||
36 | MARK_AS_ADVANCED(LIBGIT2_INCLUDE_DIR LIBGIT2_LIBRARIES) | 53 | MARK_AS_ADVANCED(LIBGIT2_INCLUDE_DIR LIBGIT2_LIBRARIES) |
diff --git a/tests/hawd/CMakeLists.txt b/tests/hawd/CMakeLists.txt index b3de83e..6ae5f13 100644 --- a/tests/hawd/CMakeLists.txt +++ b/tests/hawd/CMakeLists.txt | |||
@@ -1,6 +1,7 @@ | |||
1 | project(hawd) | 1 | project(hawd) |
2 | 2 | ||
3 | find_package(Libgit2) | 3 | #We require git_buf_free function |
4 | find_package(Libgit2 0.20.0) | ||
4 | 5 | ||
5 | if (LIBGIT2_FOUND) | 6 | if (LIBGIT2_FOUND) |
6 | add_definitions(-DHAVE_LIBGIT2) | 7 | add_definitions(-DHAVE_LIBGIT2) |