aboutsummaryrefslogtreecommitdiff
path: root/ports/libssh
diff options
context:
space:
mode:
Diffstat (limited to 'ports/libssh')
-rw-r--r--ports/libssh/0001-export-pkgconfig-file.patch43
-rw-r--r--ports/libssh/CONTROL4
-rw-r--r--ports/libssh/portfile.cmake24
3 files changed, 59 insertions, 12 deletions
diff --git a/ports/libssh/0001-export-pkgconfig-file.patch b/ports/libssh/0001-export-pkgconfig-file.patch
new file mode 100644
index 000000000..c84510ce5
--- /dev/null
+++ b/ports/libssh/0001-export-pkgconfig-file.patch
@@ -0,0 +1,43 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1f5b0bf5..c51fb0d3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -111,8 +111,28 @@ add_subdirectory(include)
+ add_subdirectory(src)
+
+ # pkg-config file
+-if (UNIX)
+ configure_file(libssh.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc)
++ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc "Requires:")
++ if (WITH_ZLIB)
++ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc " zlib")
++ endif ()
++ if (WITH_GCRYPT)
++ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc "\nLibs.private: -lgcrypt")
++ elseif (WITH_MBEDTLS)
++ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc "\nLibs.private: -lmbedcrypto -lpthread")
++ else ()
++ if (WIN32)
++ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc "\nLibs.private: -llibcrypto -lUser32 -lCrypt32")
++ else ()
++ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc " libcrypto\nLibs.private:")
++ endif ()
++ endif ()
++ if (CMAKE_USE_PTHREADS_INIT)
++ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc " -lpthread")
++ endif ()
++ if (WIN32)
++ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc " -lws2_32 -lShell32 -lAdvapi32")
++ endif ()
+ install(
+ FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc
+@@ -121,7 +141,6 @@ install(
+ COMPONENT
+ pkgconfig
+ )
+-endif (UNIX)
+
+ # CMake config files
+ include(CMakePackageConfigHelpers)
+
diff --git a/ports/libssh/CONTROL b/ports/libssh/CONTROL
index d1e607e8c..0a138fcd9 100644
--- a/ports/libssh/CONTROL
+++ b/ports/libssh/CONTROL
@@ -1,11 +1,11 @@
Source: libssh
Version: 0.9.5
-Port-Version: 1
+Port-Version: 2
Homepage: https://www.libssh.org/
Build-Depends: libssh[core,mbedtls] (android)
Description: libssh is a multiplatform C library implementing the SSHv2 protocol on client and server side
Default-Features: crypto
-Supports: !uwp
+Supports: !(uwp | arm)
Feature: crypto
Build-Depends: libssh[mbedtls]
diff --git a/ports/libssh/portfile.cmake b/ports/libssh/portfile.cmake
index ee7f0ac8f..a35ee1162 100644
--- a/ports/libssh/portfile.cmake
+++ b/ports/libssh/portfile.cmake
@@ -1,16 +1,12 @@
vcpkg_fail_port_install(ON_TARGET "UWP")
-set(VERSION 0.9.5)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://www.libssh.org/files/0.9/libssh-${VERSION}.tar.xz"
- FILENAME "libssh-${VERSION}.tar.xz"
- SHA512 64e692a0bfa7f73585ea7b7b8b1d4c9a7f9be59565bfd4de32ca8cd9db121f87e7ad51f5c80269fbd99545af34dcf1894374ed8a6d6c1ac5f8601c026572ac18
-)
-
-vcpkg_extract_source_archive_ex(
+vcpkg_from_git(
OUT_SOURCE_PATH SOURCE_PATH
- ARCHIVE ${ARCHIVE}
- REF ${VERSION}
+ URL https://git.libssh.org/projects/libssh.git
+ REF 9c4af47965d284b2de26407bcd80473aba4ee4c9 # REFERENCE VERSION 0.9.5
+ SHA512 64e692a0bfa7f73585ea7b7b8b1d4c9a7f9be59565bfd4de32ca8cd9db121f87e7ad51f5c80269fbd99545af34dcf1894374ed8a6d6c1ac5f8601c026572ac18
+ PATCHES
+ 0001-export-pkgconfig-file.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
@@ -40,6 +36,14 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})
vcpkg_copy_pdbs()
+#Fixup pthread naming
+if(NOT VCPKG_TARGET_IS_MINGW AND VCPKG_TARGET_IS_WINDOWS)
+ if(NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libssh.pc" "-lpthread" "-lpthreadVC3d")
+ endif()
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libssh.pc" "-lpthread" "-lpthreadVC3")
+endif()
+vcpkg_fixup_pkgconfig()
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)