aboutsummaryrefslogtreecommitdiff
path: root/ports/libssh
diff options
context:
space:
mode:
authorAlexander Saprykin <xelfium@gmail.com>2018-05-26 13:27:14 +0200
committerGitHub <noreply@github.com>2018-05-26 13:27:14 +0200
commit4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5 (patch)
treed95c9490352eb73f078d34a33bc4bb44ac9fa48b /ports/libssh
parentfb689bd13dd6ba563a885d71fff1dd2b32a615db (diff)
parent2ac7527b40b1dbeb7856b9f763362c1e139e2ca9 (diff)
downloadvcpkg-4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5.tar.gz
vcpkg-4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5.zip
Merge pull request #1 from Microsoft/master
Update vcpkg from upstream
Diffstat (limited to 'ports/libssh')
-rw-r--r--ports/libssh/CONTROL4
-rw-r--r--ports/libssh/build-one-flavor.patch20
-rw-r--r--ports/libssh/only-one-flavor-threads.patch21
-rw-r--r--ports/libssh/portfile.cmake58
4 files changed, 103 insertions, 0 deletions
diff --git a/ports/libssh/CONTROL b/ports/libssh/CONTROL
new file mode 100644
index 000000000..5f3c8a0db
--- /dev/null
+++ b/ports/libssh/CONTROL
@@ -0,0 +1,4 @@
+Source: libssh
+Version: 0.7.5-4
+Description: libssh is a multiplatform C library implementing the SSHv2 and SSHv1 protocol on client and server side
+Build-Depends: zlib, openssl
diff --git a/ports/libssh/build-one-flavor.patch b/ports/libssh/build-one-flavor.patch
new file mode 100644
index 000000000..96e20ba98
--- /dev/null
+++ b/ports/libssh/build-one-flavor.patch
@@ -0,0 +1,20 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 1012ddf..612f0ba 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -225,6 +225,7 @@ include_directories(
+ ${LIBSSH_PRIVATE_INCLUDE_DIRS}
+ )
+
++if (NOT WITH_STATIC_LIB)
+ add_library(${LIBSSH_SHARED_LIBRARY} SHARED ${libssh_SRCS})
+
+ target_link_libraries(${LIBSSH_SHARED_LIBRARY} ${LIBSSH_LINK_LIBRARIES})
+@@ -259,6 +260,7 @@ install(
+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
+ COMPONENT libraries
+ )
++endif()
+
+ if (WITH_STATIC_LIB)
+ add_library(${LIBSSH_STATIC_LIBRARY} STATIC ${libssh_SRCS})
diff --git a/ports/libssh/only-one-flavor-threads.patch b/ports/libssh/only-one-flavor-threads.patch
new file mode 100644
index 000000000..31b3e1f36
--- /dev/null
+++ b/ports/libssh/only-one-flavor-threads.patch
@@ -0,0 +1,21 @@
+diff --git a/src/threads/CMakeLists.txt b/src/threads/CMakeLists.txt
+index 2ab4e1b..a47620b 100644
+--- a/src/threads/CMakeLists.txt
++++ b/src/threads/CMakeLists.txt
+@@ -59,6 +59,7 @@ include_directories(
+ if (libssh_threads_SRCS)
+ set(LIBSSH_THREADS ON CACHE "libssh threads lib" INTERNAL)
+
++ if (NOT WITH_STATIC_LIB)
+ add_library(${LIBSSH_THREADS_SHARED_LIBRARY} SHARED ${libssh_threads_SRCS})
+
+ target_link_libraries(${LIBSSH_THREADS_SHARED_LIBRARY} ${LIBSSH_THREADS_LINK_LIBRARIES})
+@@ -89,7 +90,7 @@ if (libssh_threads_SRCS)
+ COMPONENT libraries
+ )
+
+- if (WITH_STATIC_LIB)
++ else (WITH_STATIC_LIB)
+ add_library(${LIBSSH_THREADS_STATIC_LIBRARY} STATIC ${libssh_threads_SRCS})
+
+ if (MSVC)
diff --git a/ports/libssh/portfile.cmake b/ports/libssh/portfile.cmake
new file mode 100644
index 000000000..49c927c22
--- /dev/null
+++ b/ports/libssh/portfile.cmake
@@ -0,0 +1,58 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+ message(FATAL_ERROR "WindowsStore not supported")
+endif()
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libssh-0.7.5)
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://red.libssh.org/attachments/download/218/libssh-0.7.5.tar.xz"
+ FILENAME "libssh-0.7.5.tar.xz"
+ SHA512 6c7f539899caaedf13d66fa2e0fac1a475ecdfe389131abcbdf908bdebc50a0b9e6b0d43e67e52aea85c32f6aa68e46ca2f50695992f82ded83489f445a8e775
+)
+vcpkg_extract_source_archive(${ARCHIVE})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/build-one-flavor.patch
+ ${CMAKE_CURRENT_LIST_DIR}/only-one-flavor-threads.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" WITH_STATIC_LIB)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DWITH_STATIC_LIB=${WITH_STATIC_LIB}
+ -DWITH_EXAMPLES=OFF
+ -DWITH_TESTING=OFF
+ -DWITH_NACL=OFF
+ -DWITH_GSSAPI=OFF
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/static/ssh.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/lib/ssh.lib)
+ endif()
+ if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/static/ssh.lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/debug/lib/ssh.lib)
+ endif()
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+
+ file(READ ${CURRENT_PACKAGES_DIR}/include/libssh/libssh.h _contents)
+ string(REPLACE "#ifdef LIBSSH_STATIC" "#if 1" _contents "${_contents}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/libssh/libssh.h "${_contents}")
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/static ${CURRENT_PACKAGES_DIR}/debug/lib/static)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# The installed cmake config files are nonfunctional (0.7.5)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake ${CURRENT_PACKAGES_DIR}/cmake)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake ${CURRENT_PACKAGES_DIR}/lib/cmake)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libssh RENAME copyright)