diff options
author | Brad Morgan <brad@dmgctrl.com> | 2013-05-07 14:26:33 -0400 |
---|---|---|
committer | Brad Morgan <brad@dmgctrl.com> | 2013-05-07 14:26:33 -0400 |
commit | 7369b3c3bf396e466d065f9921415fe2b9d69a7a (patch) | |
tree | c35c2f7d8acafb5771b06b14ef59564306b3ca3e | |
parent | 574b86b72294e4b0fd08281f4c19e013f0d9b137 (diff) | |
download | libgit2-7369b3c3bf396e466d065f9921415fe2b9d69a7a.tar.gz |
Added libssh2 cmake module
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | CMakeLists.txt | 13 | ||||
-rw-r--r-- | cmake/Modules/FindLibSSH2.cmake | 44 |
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) + |