diff options
Diffstat (limited to 'cmake/modules/FindLibgit2.cmake')
-rw-r--r-- | cmake/modules/FindLibgit2.cmake | 29 |
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) | 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) |