summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/modules/FindLibgit2.cmake29
-rw-r--r--tests/hawd/CMakeLists.txt3
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) 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)
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 @@
1project(hawd) 1project(hawd)
2 2
3find_package(Libgit2) 3#We require git_buf_free function
4find_package(Libgit2 0.20.0)
4 5
5if (LIBGIT2_FOUND) 6if (LIBGIT2_FOUND)
6 add_definitions(-DHAVE_LIBGIT2) 7 add_definitions(-DHAVE_LIBGIT2)