diff options
Diffstat (limited to 'cmake/Modules/HandleFindGit2.cmake')
-rw-r--r-- | cmake/Modules/HandleFindGit2.cmake | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/cmake/Modules/HandleFindGit2.cmake b/cmake/Modules/HandleFindGit2.cmake new file mode 100644 index 000000000..e0bb9979f --- /dev/null +++ b/cmake/Modules/HandleFindGit2.cmake @@ -0,0 +1,39 @@ +# more libraries with special handling in case we build them ourselves +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") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_LIBGIT23_API") + if(ANDROID) + # for Android we need to force a static link against ssl and crypto + # this is a bit hacky, but it seems to work + set(LIBGIT2_LIBRARIES ${LIBGIT2_LIBRARIES} ${LIBGIT2_LIBRARY_DIRS}/libssl.a ${LIBGIT2_LIBRARY_DIRS}/libcrypto.a) + endif() + if(FORCE_LIBSSH) + pkg_config_library(LIBSSH2 libssh2 REQUIRED) + set(LIBGIT2_LIBRARIES ${LIBGIT2_LIBRARIES} ${LIBSSH2_LIBRARIES}) + endif() + 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(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_LIBGIT23_API") + if(FORCE_LIBSSH) + find_package(Libssh2 QUIET CONFIG) + if ("${LIBSSH2_VERSION}" STRGREATER "1.6.1") + set(LIBSSH2_LIBRARIES Libssh2::libssh2) + endif() + if(!LIBSSH2_FOUND OR "${LIBSSH2_FOUND}" STREQUAL "") + pkg_config_library(LIBSSH2 libssh2 REQUIRED) + endif() + endif() + find_package(libcurl QUIET) + if(!LIBCURL_FOUND OR "${LIBCURL_FOUND}" STREQUAL "") + pkg_config_library(LIBCURL libcurl REQUIRED) + endif() + set(LIBGIT2_LIBRARIES ${LIBGIT2_LIBRARIES} -L${LIBSSH2_LIBRARY_DIRS} ${LIBSSH2_LIBRARIES} ${LIBCURL_LIBRARIES}) + endif() +endif() |