90 lines
3.1 KiB
Diff
90 lines
3.1 KiB
Diff
|
From 8bd31391bbe592fd5d7f36b5d5bd378d773d0b4b Mon Sep 17 00:00:00 2001
|
||
|
From: Harald Sitter <sitter@kde.org>
|
||
|
Date: Thu, 7 Nov 2019 21:57:00 +0100
|
||
|
Subject: [PATCH] make the libssh finder ensure the new ssh target is set
|
||
|
|
||
|
Summary:
|
||
|
starting with 0.9.2 the libssh cmake config defines a new ssh imported
|
||
|
target, use this as the new gold standard and ensure older versions
|
||
|
are compatible
|
||
|
|
||
|
broken ubuntu: no cmake config -> manual finder -> target injected
|
||
|
0.9.0 and earlier: cmake config -> target injected
|
||
|
0.9.2: cmake config -> target already defined; noop
|
||
|
|
||
|
(0.9.1 is broken as it neither matches the old nor the new expectation)
|
||
|
|
||
|
Test Plan:
|
||
|
no cmake config -> target injected
|
||
|
older cmake config -> target injected
|
||
|
newer cmake config (with merge request) -> noop
|
||
|
|
||
|
Subscribers: asn, heikobecker, kde-frameworks-devel, kfm-devel
|
||
|
|
||
|
Tags: #dolphin, #frameworks
|
||
|
|
||
|
Differential Revision: https://phabricator.kde.org/D25170
|
||
|
---
|
||
|
cmake/Findlibssh.cmake | 18 ++++++++++++++++++
|
||
|
sftp/CMakeLists.txt | 2 +-
|
||
|
2 files changed, 19 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/cmake/Findlibssh.cmake b/cmake/Findlibssh.cmake
|
||
|
index bf6d797f..f37846f1 100644
|
||
|
--- a/cmake/Findlibssh.cmake
|
||
|
+++ b/cmake/Findlibssh.cmake
|
||
|
@@ -32,6 +32,19 @@
|
||
|
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
|
# SUCH DAMAGE.
|
||
|
|
||
|
+# Define an imported target to have compatibility with newer libssh and so
|
||
|
+# we have a single target to use regardless of the code path taken in the
|
||
|
+# finder and the actual libssh version defining the target.
|
||
|
+macro(libssh_ensure_imported_target)
|
||
|
+ if(NOT TARGET ssh)
|
||
|
+ add_library(ssh SHARED IMPORTED)
|
||
|
+ set_target_properties(ssh PROPERTIES
|
||
|
+ IMPORTED_LOCATION "${LIBSSH_LIBRARIES}"
|
||
|
+ INTERFACE_INCLUDE_DIRECTORIES "${LIBSSH_INCLUDE_DIR}"
|
||
|
+ )
|
||
|
+ endif()
|
||
|
+endmacro()
|
||
|
+
|
||
|
# We prefer the config, but on Ubuntu 18.04 LTS (and to some extent later
|
||
|
# versions it seems) they've not packaged the config properly. So, go for the
|
||
|
# config by default and fall back to manual lookup iff the config was not found.
|
||
|
@@ -39,6 +52,9 @@
|
||
|
# https://bugs.launchpad.net/ubuntu/+source/libssh/+bug/1800135
|
||
|
find_package(libssh ${libssh_FIND_VERSION} NO_MODULE QUIET)
|
||
|
if(libssh_FOUND)
|
||
|
+ # Certain versions with config may not have the target, so make sure it's
|
||
|
+ # defined.
|
||
|
+ libssh_ensure_imported_target()
|
||
|
return()
|
||
|
endif()
|
||
|
|
||
|
@@ -109,5 +125,7 @@ find_package_handle_standard_args(libssh
|
||
|
VERSION_VAR
|
||
|
LIBSSH_VERSION)
|
||
|
|
||
|
+libssh_ensure_imported_target()
|
||
|
+
|
||
|
# show the LIBSSH_INCLUDE_DIRS and LIBSSH_LIBRARIES variables only in the advanced view
|
||
|
mark_as_advanced(LIBSSH_INCLUDE_DIR LIBSSH_LIBRARIES)
|
||
|
diff --git a/sftp/CMakeLists.txt b/sftp/CMakeLists.txt
|
||
|
index 2f134c2c..f3b737c6 100644
|
||
|
--- a/sftp/CMakeLists.txt
|
||
|
+++ b/sftp/CMakeLists.txt
|
||
|
@@ -20,7 +20,7 @@ target_link_libraries(kio_sftp
|
||
|
KF5::WidgetsAddons # KMessageBox
|
||
|
KF5::I18n
|
||
|
Qt5::Network
|
||
|
- ${LIBSSH_LIBRARIES})
|
||
|
+ ssh)
|
||
|
set_target_properties(kio_sftp PROPERTIES OUTPUT_NAME "sftp")
|
||
|
|
||
|
install(TARGETS kio_sftp DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/kio)
|
||
|
--
|
||
|
2.23.0
|
||
|
|