| # Copyright (c) 2014, 2015 Alexander Lamaison <alexander.lamaison@gmail.com> |
| # |
| # Redistribution and use in source and binary forms, |
| # with or without modification, are permitted provided |
| # that the following conditions are met: |
| # |
| # Redistributions of source code must retain the above |
| # copyright notice, this list of conditions and the |
| # following disclaimer. |
| # |
| # 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. |
| # |
| # Neither the name of the copyright holder nor the names |
| # of any other 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 OWNER 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. |
| |
| include(CheckIncludeFiles) |
| include(CheckSymbolExists) |
| include(CopyRuntimeDependencies) |
| include(SocketLibraries) |
| |
| set(EXAMPLES |
| direct_tcpip |
| ssh2 |
| scp |
| scp_nonblock |
| scp_write |
| scp_write_nonblock |
| sftp |
| sftp_nonblock |
| sftp_write |
| sftp_write_nonblock |
| sftp_mkdir |
| sftp_mkdir_nonblock |
| sftp_RW_nonblock |
| sftp_write_sliding |
| sftpdir |
| sftpdir_nonblock |
| ssh2_exec |
| ssh2_agent |
| ssh2_echo |
| sftp_append |
| subsystem_netconf |
| tcpip-forward) |
| |
| append_needed_socket_libraries(LIBRARIES) |
| |
| foreach(example ${EXAMPLES}) |
| add_executable(example-${example} ${example}.c) |
| list(APPEND EXAMPLE_TARGETS example-${example}) |
| # to find generated header |
| target_include_directories(example-${example} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) |
| target_link_libraries(example-${example} libssh2 ${LIBRARIES}) |
| endforeach() |
| add_target_to_copy_dependencies( |
| TARGET copy_example_dependencies |
| DEPENDENCIES ${RUNTIME_DEPENDENCIES} |
| BEFORE_TARGETS ${EXAMPLE_TARGETS}) |
| |
| ## Platform checks |
| check_include_files(inttypes.h HAVE_INTTYPES_H) |
| check_include_files(unistd.h HAVE_UNISTD_H) |
| check_include_files(stdlib.h HAVE_STDLIB_H) |
| check_include_files(sys/select.h HAVE_SYS_SELECT_H) |
| check_include_files(sys/socket.h HAVE_SYS_SOCKET_H) |
| check_include_files(sys/time.h HAVE_SYS_TIME_H) |
| check_include_files(arpa/inet.h HAVE_ARPA_INET_H) |
| check_include_files(netinet/in.h HAVE_NETINET_IN_H) |
| check_include_files(winsock2.h HAVE_WINSOCK2_H) |
| |
| check_symbol_exists(strcasecmp strings.h HAVE_STRCASECMP) |
| check_symbol_exists(_stricmp string.h HAVE__STRICMP) |
| check_symbol_exists(snprintf stdio.h HAVE_SNPRINTF) |
| check_symbol_exists(_snprintf stdio.h HAVE__SNPRINTF) |
| |
| check_symbol_exists(__func__ "" HAVE___FUNC__) |
| check_symbol_exists(__FUNCTION__ "" HAVE___FUNCTION__) |
| |
| configure_file( |
| ${CMAKE_CURRENT_SOURCE_DIR}/libssh2_config_cmake.h.in |
| ${CMAKE_CURRENT_BINARY_DIR}/libssh2_config.h) |