From c59eb810728572fde84492d43a932dcac89746d6 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Thu, 14 Nov 2019 15:06:38 +0100 Subject: [PATCH] EXIV2_ENABLE_SSH: Fix compatibility with >=libssh-0.9.2 0.9.1 remains broken regardless and is beyond fixing in this place. Build-tested with both libssh 0.9.0 and 0.9.2. Solution copied from KDE's kio-extras commit 24506c2af8d1904a99538543804306c6c2b81ca2 --- cmake/findDependencies.cmake | 13 +++++++++++-- src/CMakeLists.txt | 3 +-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/cmake/findDependencies.cmake b/cmake/findDependencies.cmake index a458a0c9..ec3a43f5 100644 --- a/cmake/findDependencies.cmake +++ b/cmake/findDependencies.cmake @@ -26,8 +26,17 @@ if( EXIV2_ENABLE_WEBREADY ) if( EXIV2_ENABLE_SSH ) find_package(libssh CONFIG REQUIRED) - endif( ) -endif( ) + # Define an imported target to have compatibility with <=libssh-0.9.0 + # libssh-0.9.1 is broken regardless. + 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() + endif() +endif() if (EXIV2_ENABLE_XMP AND EXIV2_ENABLE_EXTERNAL_XMP) message(FATAL_ERROR "EXIV2_ENABLE_XMP AND EXIV2_ENABLE_EXTERNAL_XMP are mutually exclusive. You can only choose one of them") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 27f8dbb1..bdd83fa0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -173,8 +173,7 @@ target_include_directories(exiv2lib_int PUBLIC if (EXIV2_ENABLE_WEBREADY) if( EXIV2_ENABLE_SSH ) - target_include_directories(exiv2lib SYSTEM PUBLIC ${LIBSSH_INCLUDE_DIR}) - target_link_libraries(exiv2lib PUBLIC ${LIBSSH_LIBRARIES}) + target_link_libraries(exiv2lib PUBLIC ssh) endif() if( EXIV2_ENABLE_CURL ) -- 2.24.0