From ab09c4a277737b2486190e7a089055e9ad22610d Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 13 Mar 2018 05:09:32 -0700 Subject: [libssh] Bake in LIBSSH_STATIC --- ports/libssh/CONTROL | 4 ++-- ports/libssh/portfile.cmake | 15 ++++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) (limited to 'ports/libssh') diff --git a/ports/libssh/CONTROL b/ports/libssh/CONTROL index 9ae256937..692a6f4b8 100644 --- a/ports/libssh/CONTROL +++ b/ports/libssh/CONTROL @@ -1,4 +1,4 @@ Source: libssh -Version: 0.7.5-1 -Description:libssh is a multiplatform C library implementing the SSHv2 and SSHv1 protocol on client and server side +Version: 0.7.5-2 +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/portfile.cmake b/ports/libssh/portfile.cmake index 8cac84063..36ece7321 100644 --- a/ports/libssh/portfile.cmake +++ b/ports/libssh/portfile.cmake @@ -15,20 +15,25 @@ vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS -DWITH_STATIC_LIB=ON - ) vcpkg_install_cmake() vcpkg_copy_pdbs() -vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake/libssh") - if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(INSTALL ${CURRENT_PACKAGES_DIR}/lib/static/ssh.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) - file(INSTALL ${CURRENT_PACKAGES_DIR}/debug/lib/static/ssh.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/lib/ssh.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/debug/lib/ssh.lib) 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(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libssh RENAME copyright) -- cgit v1.2.3 From 9de17844e0201a27132149e392152525f8e8d34b Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 13 Mar 2018 07:37:20 -0700 Subject: [libssh] Only build one flavor at a time, don't build examples. --- ports/libssh/CONTROL | 2 +- ports/libssh/build-one-flavor.patch | 20 ++++++++++++++++++++ ports/libssh/portfile.cmake | 28 ++++++++++++++++++++-------- 3 files changed, 41 insertions(+), 9 deletions(-) create mode 100644 ports/libssh/build-one-flavor.patch (limited to 'ports/libssh') diff --git a/ports/libssh/CONTROL b/ports/libssh/CONTROL index 692a6f4b8..70b555a79 100644 --- a/ports/libssh/CONTROL +++ b/ports/libssh/CONTROL @@ -1,4 +1,4 @@ Source: libssh -Version: 0.7.5-2 +Version: 0.7.5-3 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/portfile.cmake b/ports/libssh/portfile.cmake index 36ece7321..773685f76 100644 --- a/ports/libssh/portfile.cmake +++ b/ports/libssh/portfile.cmake @@ -1,7 +1,7 @@ include(vcpkg_common_functions) if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) - message(FATAL_ERROR "WindowsStore not supported") + message(FATAL_ERROR "WindowsStore not supported") endif() set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libssh-0.7.5) vcpkg_download_distfile(ARCHIVE @@ -11,23 +11,35 @@ vcpkg_download_distfile(ARCHIVE ) vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/build-one-flavor.patch +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" WITH_STATIC_LIB) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS -DWITH_STATIC_LIB=ON + 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") - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/lib/ssh.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/debug/lib/ssh.lib) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/lib/ssh.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/debug/lib/ssh.lib) + 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}") + 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) -- cgit v1.2.3 From 40bc3cb716c912e7a9cd567369a77918cfce87a2 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Tue, 13 Mar 2018 11:06:52 -0700 Subject: [libssh] Fix static builds for non-windows --- ports/libssh/CONTROL | 2 +- ports/libssh/only-one-flavor-threads.patch | 21 +++++++++++++++++++++ ports/libssh/portfile.cmake | 11 ++++++++--- 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 ports/libssh/only-one-flavor-threads.patch (limited to 'ports/libssh') diff --git a/ports/libssh/CONTROL b/ports/libssh/CONTROL index 70b555a79..5f3c8a0db 100644 --- a/ports/libssh/CONTROL +++ b/ports/libssh/CONTROL @@ -1,4 +1,4 @@ Source: libssh -Version: 0.7.5-3 +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/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 index 773685f76..7d986d244 100644 --- a/ports/libssh/portfile.cmake +++ b/ports/libssh/portfile.cmake @@ -13,7 +13,9 @@ vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/build-one-flavor.patch + 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) @@ -33,8 +35,10 @@ vcpkg_install_cmake() vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/lib/ssh.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/debug/lib/ssh.lib) + if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/static/ssh.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/static/ssh.lib ${CURRENT_PACKAGES_DIR}/lib/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) @@ -47,5 +51,6 @@ 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) -- cgit v1.2.3 From 6f7d92ddd38ae80da6cc40251b495dd446b9687c Mon Sep 17 00:00:00 2001 From: past-due <30942300+past-due@users.noreply.github.com> Date: Mon, 19 Mar 2018 20:04:20 -0400 Subject: [libssh] Fix static build failure when VCPKG_BUILD_TYPE is set --- ports/libssh/portfile.cmake | 2 ++ 1 file changed, 2 insertions(+) (limited to 'ports/libssh') diff --git a/ports/libssh/portfile.cmake b/ports/libssh/portfile.cmake index 7d986d244..49c927c22 100644 --- a/ports/libssh/portfile.cmake +++ b/ports/libssh/portfile.cmake @@ -37,6 +37,8 @@ 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) -- cgit v1.2.3