Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--CMakeLists.txt13
-rw-r--r--cmake/Modules/FindLibSSH2.cmake44
3 files changed, 58 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 949baec98..bba9d5d5c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,8 +24,8 @@ msvc/Release/
*.sdf
*.opensdf
*.aps
-CMake*
*.cmake
+!cmake/Modules/*.cmake
.DS_Store
*~
tags
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6bd25aacc..20d63fecb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,6 +14,8 @@
PROJECT(libgit2 C)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
+
# Build options
#
OPTION( SONAME "Set the (SO)VERSION of the target" ON )
@@ -138,6 +140,15 @@ ELSE()
FILE(GLOB SRC_ZLIB deps/zlib/*.c)
ENDIF()
+IF(NOT LIBSSH2_LIBRARY)
+ FIND_PACKAGE(LIBSSH2 QUIET)
+ENDIF()
+IF (LIBSSH2_FOUND)
+ ADD_DEFINITIONS(-DGIT_SSH)
+ INCLUDE_DIRECTORIES(${LIBSSH2_INCLUDE_DIR})
+ SET(SSH_LIBRARIES ${LIBSSH2_LIBRARIES})
+ENDIF()
+
# Platform specific compilation flags
IF (MSVC)
@@ -280,6 +291,7 @@ FILE(GLOB SRC_GIT2 src/*.c src/transports/*.c src/xdiff/*.c)
# Compile and link libgit2
ADD_LIBRARY(git2 ${SRC_GIT2} ${SRC_OS} ${SRC_ZLIB} ${SRC_HTTP} ${SRC_REGEX} ${SRC_SHA1} ${WIN_RC})
TARGET_LINK_LIBRARIES(git2 ${SSL_LIBRARIES})
+TARGET_LINK_LIBRARIES(git2 ${SSH_LIBRARIES})
TARGET_OS_LIBRARIES(git2)
# Workaround for Cmake bug #0011240 (see http://public.kitware.com/Bug/view.php?id=11240)
@@ -340,6 +352,7 @@ IF (BUILD_CLAR)
ADD_EXECUTABLE(libgit2_clar ${SRC_GIT2} ${SRC_OS} ${SRC_CLAR} ${SRC_TEST} ${SRC_ZLIB} ${SRC_HTTP} ${SRC_REGEX} ${SRC_SHA1})
TARGET_LINK_LIBRARIES(libgit2_clar ${SSL_LIBRARIES})
+ TARGET_LINK_LIBRARIES(libgit2_clar ${SSH_LIBRARIES})
TARGET_OS_LIBRARIES(libgit2_clar)
MSVC_SPLIT_SOURCES(libgit2_clar)
diff --git a/cmake/Modules/FindLibSSH2.cmake b/cmake/Modules/FindLibSSH2.cmake
new file mode 100644
index 000000000..6347d60ea
--- /dev/null
+++ b/cmake/Modules/FindLibSSH2.cmake
@@ -0,0 +1,44 @@
+if (LIBSSH2_LIBRARIES AND LIBSSH2_INCLUDE_DIRS)
+ set(LIBSSH2_FOUND TRUE)
+else (LIBSSH2_LIBRARIES AND LIBSSH2_INCLUDE_DIRS)
+ find_path(LIBSSH2_INCLUDE_DIR
+ NAMES
+ libssh2.h
+ PATHS
+ /usr/include
+ /usr/local/include
+ /opt/local/include
+ /sw/include
+ ${CMAKE_INCLUDE_PATH}
+ ${CMAKE_INSTALL_PREFIX}/include
+ )
+
+ find_library(LIBSSH2_LIBRARY
+ NAMES
+ ssh2
+ libssh2
+ PATHS
+ /usr/lib
+ /usr/local/lib
+ /opt/local/lib
+ /sw/lib
+ ${CMAKE_LIBRARY_PATH}
+ ${CMAKE_INSTALL_PREFIX}/lib
+ )
+
+ if (LIBSSH2_INCLUDE_DIR AND LIBSSH2_LIBRARY)
+ set(LIBSSH2_FOUND TRUE)
+ endif (LIBSSH2_INCLUDE_DIR AND LIBSSH2_LIBRARY)
+
+ if (LIBSSH2_FOUND)
+ set(LIBSSH2_INCLUDE_DIRS
+ ${LIBSSH2_INCLUDE_DIR}
+ )
+
+ set(LIBSSH2_LIBRARIES
+ ${LIBSSH2_LIBRARIES}
+ ${LIBSSH2_LIBRARY}
+ )
+ endif (LIBSSH2_FOUND)
+endif (LIBSSH2_LIBRARIES AND LIBSSH2_INCLUDE_DIRS)
+