mirror of
https://github.com/libssh2/libssh2.git
synced 2026-10-24 03:48:58 +03:00
Also: - sync with canonical `BSD-3-Clause.txt`: - number the clauses. - wording in the 3rd clause. - add 'All rights reserved.' where missing. - agent: sync with rest of files. - agent: merge two, identical, embedded headers. - fix comments nits found nearby. Closes #2247
74 lines
3.2 KiB
CMake
74 lines
3.2 KiB
CMake
# Copyright (C) Alexander Lamaison <alexander.lamaison@gmail.com>
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are met:
|
|
#
|
|
# 1. Redistributions of source code must retain the above copyright notice,
|
|
# this list of conditions and the following disclaimer.
|
|
#
|
|
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
# this list of conditions and the following disclaimer in the documentation
|
|
# and/or other materials provided with the distribution.
|
|
#
|
|
# 3. Neither the name of the copyright holder nor the names of its
|
|
# contributors may be used to endorse or promote products derived from this
|
|
# software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
include(CheckFunctionExists)
|
|
include(CheckLibraryExists)
|
|
|
|
# libssh2_check_function_exists_may_need_library(<function> <var> [lib1 ... libn])
|
|
#
|
|
# Check if function is available for linking, first without extra libraries, and
|
|
# then, if not found that way, linking in each optional library as well. This
|
|
# function is similar to autotools AC_SEARCH_LIBS.
|
|
#
|
|
# If the function if found, this defines <var>.
|
|
#
|
|
# If the function was only found by linking in an additional library, this
|
|
# defines NEED_LIB_LIBX, where LIBX is the one of lib1 to libn that
|
|
# makes the function available, in uppercase.
|
|
#
|
|
# The following variables may be set before calling this macro to
|
|
# modify the way the check is run:
|
|
#
|
|
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
|
|
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
|
|
# CMAKE_REQUIRED_INCLUDES = list of include directories
|
|
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
|
|
#
|
|
function(libssh2_check_function_exists_may_need_library _function _variable)
|
|
|
|
check_function_exists(${_function} ${_variable})
|
|
|
|
if(NOT ${_variable})
|
|
foreach(_lib IN LISTS ARGN)
|
|
string(TOUPPER ${_lib} _up_lib)
|
|
# Use new variable to prevent cache from previous step shortcircuiting
|
|
# new test
|
|
check_library_exists(${_lib} ${_function} "" HAVE_${_function}_IN_${_lib})
|
|
if(HAVE_${_function}_IN_${_lib})
|
|
set(${_variable} 1 CACHE INTERNAL "Function ${_function} found in library ${_lib}")
|
|
set(NEED_LIB_${_up_lib} 1 CACHE INTERNAL "Need to link ${_lib}") # cmake-lint: disable=C0103
|
|
break()
|
|
endif()
|
|
endforeach()
|
|
endif()
|
|
|
|
endfunction()
|