diff --git a/cmake/libssh2-config.cmake.in b/cmake/libssh2-config.cmake.in index edc86d7..fd53d55 100644 --- a/cmake/libssh2-config.cmake.in +++ b/cmake/libssh2-config.cmake.in @@ -2,6 +2,7 @@ # SPDX-License-Identifier: BSD-3-Clause include(CMakeFindDependencyMacro) +set(_libssh2_cmake_module_path_save "${CMAKE_MODULE_PATH}") list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) if("@CRYPTO_BACKEND@" STREQUAL "OpenSSL") @@ -13,6 +14,7 @@ elseif("@CRYPTO_BACKEND@" STREQUAL "Libgcrypt") elseif("@CRYPTO_BACKEND@" STREQUAL "mbedTLS") find_dependency(MbedTLS) endif() +set(CMAKE_MODULE_PATH ${_libssh2_cmake_module_path_save}) if(@ZLIB_FOUND@) find_dependency(ZLIB) @@ -22,10 +24,22 @@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake") # Alias for either shared or static library if(NOT TARGET @PROJECT_NAME@::@LIB_NAME@) + if(CMAKE_VERSION VERSION_LESS "3.18.0") + # cannot add alias to non-global imported library + add_library(@PROJECT_NAME@::@LIB_NAME@ INTERFACE IMPORTED) + set_target_properties(@PROJECT_NAME@::@LIB_NAME@ PROPERTIES INTERFACE_LINK_LIBRARIES @PROJECT_NAME@::@LIB_SELECTED@) + else() add_library(@PROJECT_NAME@::@LIB_NAME@ ALIAS @PROJECT_NAME@::@LIB_SELECTED@) + endif() endif() # Compatibility alias if(NOT TARGET Libssh2::@LIB_NAME@) + if(CMAKE_VERSION VERSION_LESS "3.18.0") + # cannot add alias to non-global imported library + add_library(Libssh2::@LIB_NAME@ INTERFACE IMPORTED) + set_target_properties(Libssh2::@LIB_NAME@ PROPERTIES INTERFACE_LINK_LIBRARIES @PROJECT_NAME@::@LIB_SELECTED@) + else() add_library(Libssh2::@LIB_NAME@ ALIAS @PROJECT_NAME@::@LIB_SELECTED@) + endif() endif()