From 6e4adcc140102b80883bba85dff05003620b0029 Mon Sep 17 00:00:00 2001 From: Nicolas Viennot Date: Fri, 31 Oct 2014 00:10:02 -0400 Subject: Update libssh --- libssh/AUTHORS | 2 +- libssh/CMakeLists.txt | 22 +- libssh/CPackConfig.cmake | 2 +- libssh/ConfigureChecks.cmake | 10 +- libssh/build/.gitkeep | 0 libssh/build/build_make.sh | 197 --- libssh/cmake/Modules/AddCMockaTest.cmake | 2 +- libssh/cmake/Modules/DefineCMakeDefaults.cmake | 3 + libssh/cmake/Modules/DefineCompilerFlags.cmake | 7 + libssh/cmake/Modules/FindArgp.cmake | 2 +- libssh/cmake/Modules/FindNaCl.cmake | 2 +- libssh/cmake/Modules/MacroAddCompileFlags.cmake | 21 - libssh/cmake/Modules/MacroAddLinkFlags.cmake | 20 - libssh/cmake/Modules/MacroAddPlugin.cmake | 30 - libssh/cmake/Modules/MacroCopyFile.cmake | 33 - libssh/cmake/Modules/UseDoxygen.cmake | 174 +- libssh/config.h.cmake | 6 + libssh/doc/Doxyfile.in | 1917 +++++++++++++++++++++++ libssh/doc/authentication.dox | 4 +- libssh/doc/doxy.config.in | 1917 ----------------------- libssh/doc/doxy.trac.in | 1546 ------------------ libssh/doc/forwarding.dox | 11 +- libssh/doc/threading.dox | 1 + libssh/examples/CMakeLists.txt | 13 +- libssh/examples/authentication.c | 8 +- libssh/examples/samplesshd-tty.c | 466 ------ libssh/examples/samplesshd.c | 314 ---- libssh/examples/ssh_server_fork.c | 697 ++++++++ libssh/examples/sshnetcat.c | 45 +- libssh/include/libssh/bignum.h | 32 + libssh/include/libssh/buffer.h | 17 +- libssh/include/libssh/callbacks.h | 4 + libssh/include/libssh/channels.h | 2 + libssh/include/libssh/crypto.h | 10 +- libssh/include/libssh/curve25519.h | 5 +- libssh/include/libssh/dh.h | 4 - libssh/include/libssh/ecdh.h | 4 +- libssh/include/libssh/ed25519.h | 79 + libssh/include/libssh/fe25519.h | 68 + libssh/include/libssh/ge25519.h | 43 + libssh/include/libssh/knownhosts.h | 27 + libssh/include/libssh/legacy.h | 90 +- libssh/include/libssh/libcrypto.h | 13 + libssh/include/libssh/libgcrypt.h | 8 +- libssh/include/libssh/libssh.h | 56 +- libssh/include/libssh/libsshpp.hpp | 38 +- libssh/include/libssh/packet.h | 4 +- libssh/include/libssh/pki.h | 5 + libssh/include/libssh/pki_priv.h | 20 + libssh/include/libssh/priv.h | 25 +- libssh/include/libssh/sc25519.h | 74 + libssh/include/libssh/server.h | 66 +- libssh/include/libssh/session.h | 16 + libssh/include/libssh/sftp.h | 8 +- libssh/include/libssh/socket.h | 1 + libssh/include/libssh/wrapper.h | 29 + libssh/libssh-config.cmake.in | 6 +- libssh/obj/build_make.sh | 197 +++ libssh/src/CMakeLists.txt | 16 +- libssh/src/agent.c | 8 +- libssh/src/auth.c | 563 ++----- libssh/src/base64.c | 13 +- libssh/src/bignum.c | 96 ++ libssh/src/bind.c | 77 +- libssh/src/buffer.c | 438 +++++- libssh/src/callbacks.c | 2 +- libssh/src/channels.c | 882 +++++------ libssh/src/channels1.c | 7 +- libssh/src/client.c | 100 +- libssh/src/config.c | 57 +- libssh/src/connect.c | 14 +- libssh/src/curve25519.c | 70 +- libssh/src/dh.c | 526 +++---- libssh/src/ecdh.c | 37 +- libssh/src/ed25519.c | 222 +++ libssh/src/error.c | 4 +- libssh/src/fe25519.c | 416 +++++ libssh/src/ge25519.c | 367 +++++ libssh/src/ge25519_base.data | 858 ++++++++++ libssh/src/getpass.c | 2 +- libssh/src/gssapi.c | 455 +++--- libssh/src/gzip.c | 14 +- libssh/src/kex.c | 316 +++- libssh/src/kex1.c | 6 +- libssh/src/known_hosts.c | 104 +- libssh/src/legacy.c | 8 +- libssh/src/libcrypto.c | 84 +- libssh/src/libgcrypt.c | 127 +- libssh/src/log.c | 6 +- libssh/src/messages.c | 603 ++----- libssh/src/misc.c | 3 +- libssh/src/options.c | 306 ++-- libssh/src/packet.c | 441 +++--- libssh/src/packet1.c | 27 +- libssh/src/packet_cb.c | 32 +- libssh/src/packet_crypt.c | 31 +- libssh/src/pcap.c | 149 +- libssh/src/pki.c | 249 ++- libssh/src/pki_crypto.c | 376 ++++- libssh/src/pki_ed25519.c | 305 ++++ libssh/src/pki_gcrypt.c | 24 +- libssh/src/poll.c | 56 +- libssh/src/sc25519.c | 373 +++++ libssh/src/scp.c | 6 +- libssh/src/server.c | 306 ++-- libssh/src/session.c | 222 ++- libssh/src/sftp.c | 641 +++----- libssh/src/sftpserver.c | 122 +- libssh/src/socket.c | 260 +-- libssh/src/string.c | 9 +- libssh/src/threads.c | 25 +- libssh/src/threads/CMakeLists.txt | 134 +- libssh/src/wrapper.c | 117 +- libssh/tests/CMakeLists.txt | 8 +- libssh/tests/client/torture_algorithms.c | 136 +- libssh/tests/client/torture_auth.c | 116 +- libssh/tests/client/torture_connect.c | 40 +- libssh/tests/client/torture_forward.c | 10 +- libssh/tests/client/torture_knownhosts.c | 192 +++ libssh/tests/client/torture_request_env.c | 10 +- libssh/tests/client/torture_session.c | 5 +- libssh/tests/client/torture_sftp_read.c | 4 +- libssh/tests/pkd/CMakeLists.txt | 35 + libssh/tests/pkd/pkd_client.h | 69 + libssh/tests/pkd/pkd_daemon.c | 500 ++++++ libssh/tests/pkd/pkd_daemon.h | 40 + libssh/tests/pkd/pkd_hello.c | 534 +++++++ libssh/tests/pkd/pkd_keyutil.c | 138 ++ libssh/tests/pkd/pkd_keyutil.h | 40 + libssh/tests/pkd/pkd_util.c | 46 + libssh/tests/pkd/pkd_util.h | 16 + libssh/tests/test_ssh_bind_accept_fd.c | 139 ++ libssh/tests/torture.c | 242 ++- libssh/tests/torture.h | 10 +- libssh/tests/unittests/torture_buffer.c | 142 +- libssh/tests/unittests/torture_callbacks.c | 40 + libssh/tests/unittests/torture_channel.c | 1 + libssh/tests/unittests/torture_pki.c | 517 ++++-- 138 files changed, 13478 insertions(+), 8687 deletions(-) create mode 100644 libssh/build/.gitkeep delete mode 100755 libssh/build/build_make.sh delete mode 100644 libssh/cmake/Modules/MacroAddCompileFlags.cmake delete mode 100644 libssh/cmake/Modules/MacroAddLinkFlags.cmake delete mode 100644 libssh/cmake/Modules/MacroAddPlugin.cmake delete mode 100644 libssh/cmake/Modules/MacroCopyFile.cmake create mode 100644 libssh/doc/Doxyfile.in delete mode 100644 libssh/doc/doxy.config.in delete mode 100644 libssh/doc/doxy.trac.in delete mode 100644 libssh/examples/samplesshd-tty.c delete mode 100644 libssh/examples/samplesshd.c create mode 100644 libssh/examples/ssh_server_fork.c create mode 100644 libssh/include/libssh/bignum.h create mode 100644 libssh/include/libssh/ed25519.h create mode 100644 libssh/include/libssh/fe25519.h create mode 100644 libssh/include/libssh/ge25519.h create mode 100644 libssh/include/libssh/knownhosts.h create mode 100644 libssh/include/libssh/sc25519.h create mode 100755 libssh/obj/build_make.sh create mode 100644 libssh/src/bignum.c create mode 100644 libssh/src/ed25519.c create mode 100644 libssh/src/fe25519.c create mode 100644 libssh/src/ge25519.c create mode 100644 libssh/src/ge25519_base.data create mode 100644 libssh/src/pki_ed25519.c create mode 100644 libssh/src/sc25519.c create mode 100644 libssh/tests/pkd/CMakeLists.txt create mode 100644 libssh/tests/pkd/pkd_client.h create mode 100644 libssh/tests/pkd/pkd_daemon.c create mode 100644 libssh/tests/pkd/pkd_daemon.h create mode 100644 libssh/tests/pkd/pkd_hello.c create mode 100644 libssh/tests/pkd/pkd_keyutil.c create mode 100644 libssh/tests/pkd/pkd_keyutil.h create mode 100644 libssh/tests/pkd/pkd_util.c create mode 100644 libssh/tests/pkd/pkd_util.h create mode 100644 libssh/tests/test_ssh_bind_accept_fd.c diff --git a/libssh/AUTHORS b/libssh/AUTHORS index fd753860..51b3e46f 100644 --- a/libssh/AUTHORS +++ b/libssh/AUTHORS @@ -1,7 +1,7 @@ Author(s): Aris Adamantiadis (project initiator) -Andreas Schneider (developer) +Andreas Schneider (developer) Nick Zitzmann (mostly client SFTP stuff) diff --git a/libssh/CMakeLists.txt b/libssh/CMakeLists.txt index 5998bc50..48559f37 100644 --- a/libssh/CMakeLists.txt +++ b/libssh/CMakeLists.txt @@ -7,8 +7,8 @@ cmake_minimum_required(VERSION 2.6.0) set(APPLICATION_NAME ${PROJECT_NAME}) set(APPLICATION_VERSION_MAJOR "0") -set(APPLICATION_VERSION_MINOR "5") -set(APPLICATION_VERSION_PATCH "90") +set(APPLICATION_VERSION_MINOR "7") +set(APPLICATION_VERSION_PATCH "0") set(APPLICATION_VERSION "${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR}.${APPLICATION_VERSION_PATCH}") @@ -39,10 +39,6 @@ include(CPackConfig.cmake) include(MacroEnsureOutOfSourceBuild) macro_ensure_out_of_source_build("${PROJECT_NAME} requires an out of source build. Please create a separate build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there.") -# add macros -include(MacroAddPlugin) -include(MacroCopyFile) - # search for libraries if (WITH_ZLIB) find_package(ZLIB REQUIRED) @@ -101,18 +97,22 @@ install( ) # cmake config files -configure_file(libssh-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libssh-config.cmake @ONLY) -configure_file(libssh-config-version.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libssh-config-version.cmake @ONLY) +set(LIBSSH_LIBRARY_NAME @CMAKE_SHARED_LIBRARY_PREFIX@ssh@CMAKE_SHARED_LIBRARY_SUFFIX@) +set(LIBSSH_THREADS_LIBRARY_NAME @CMAKE_SHARED_LIBRARY_PREFIX@ssh@CMAKE_SHARED_LIBRARY_SUFFIX@) + +configure_file(${PROJECT_NAME}-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake @ONLY) +configure_file(${PROJECT_NAME}-config-version.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake @ONLY) install( FILES - ${CMAKE_CURRENT_BINARY_DIR}/libssh-config.cmake - ${CMAKE_CURRENT_BINARY_DIR}/libssh-config-version.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake DESTINATION - ${CMAKE_INSTALL_DIR} + ${CMAKE_INSTALL_DIR}/${PROJECT_NAME} COMPONENT devel ) + # in tree build settings configure_file(libssh-build-tree-settings.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libssh-build-tree-settings.cmake @ONLY) diff --git a/libssh/CPackConfig.cmake b/libssh/CPackConfig.cmake index 2e4c9fee..2c4c3b5b 100644 --- a/libssh/CPackConfig.cmake +++ b/libssh/CPackConfig.cmake @@ -19,7 +19,7 @@ set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSIO ### source generator set(CPACK_SOURCE_GENERATOR "TGZ") -set(CPACK_SOURCE_IGNORE_FILES "~$;[.]swp$;/[.]svn/;/[.]git/;.gitignore;/build/;tags;cscope.*") +set(CPACK_SOURCE_IGNORE_FILES "~$;[.]swp$;/[.]svn/;/[.]git/;.gitignore;/build/;/obj/;tags;cscope.*") set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") if (WIN32) diff --git a/libssh/ConfigureChecks.cmake b/libssh/ConfigureChecks.cmake index 29b70636..befb4290 100644 --- a/libssh/ConfigureChecks.cmake +++ b/libssh/ConfigureChecks.cmake @@ -48,9 +48,11 @@ endif(CMAKE_COMPILER_IS_GNUCC AND NOT MINGW AND NOT OS2) # HEADER FILES check_include_file(argp.h HAVE_ARGP_H) check_include_file(pty.h HAVE_PTY_H) +check_include_file(utmp.h HAVE_UTMP_H) check_include_file(termios.h HAVE_TERMIOS_H) check_include_file(unistd.h HAVE_UNISTD_H) check_include_file(util.h HAVE_UTIL_H) +check_include_file(libutil.h HAVE_LIBUTIL_H) if (WIN32) check_include_files("winsock2.h;ws2tcpip.h;wspiapi.h" HAVE_WSPIAPI_H) @@ -178,11 +180,9 @@ if (GCRYPT_FOUND) endif (GCRYPT_VERSION VERSION_GREATER "1.4.6") endif (GCRYPT_FOUND) -if (CMAKE_HAVE_THREADS_LIBRARY) - if (CMAKE_USE_PTHREADS_INIT) - set(HAVE_PTHREAD 1) - endif (CMAKE_USE_PTHREADS_INIT) -endif (CMAKE_HAVE_THREADS_LIBRARY) +if (CMAKE_USE_PTHREADS_INIT) + set(HAVE_PTHREAD 1) +endif (CMAKE_USE_PTHREADS_INIT) # OPTIONS check_c_source_compiles(" diff --git a/libssh/build/.gitkeep b/libssh/build/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/libssh/build/build_make.sh b/libssh/build/build_make.sh deleted file mode 100755 index ba03c99c..00000000 --- a/libssh/build/build_make.sh +++ /dev/null @@ -1,197 +0,0 @@ -#!/bin/bash -# -# Last Change: 2008-06-18 14:13:46 -# -# Script to build libssh on UNIX. -# -# Copyright (c) 2006-2007 Andreas Schneider -# - -SOURCE_DIR=".." - -LANG=C -export LANG - -SCRIPT="$0" -COUNT=0 -while [ -L "${SCRIPT}" ] -do - SCRIPT=$(readlink ${SCRIPT}) - COUNT=$(expr ${COUNT} + 1) - if [ ${COUNT} -gt 100 ]; then - echo "Too many symbolic links" - exit 1 - fi -done -BUILDDIR=$(dirname ${SCRIPT}) - -cleanup_and_exit () { - if test "$1" = 0 -o -z "$1" ; then - exit 0 - else - exit $1 - fi -} - -function configure() { - if [ -n "${CMAKEDIR}" ]; then - ${CMAKEDIR}/bin/cmake "$@" ${SOURCE_DIR} || cleanup_and_exit $? - else - cmake "$@" ${SOURCE_DIR} || cleanup_and_exit $? - fi -} - -function compile() { - if [ -f /proc/cpuinfo ]; then - CPUCOUNT=$(grep -c processor /proc/cpuinfo) - elif test `uname` = "SunOS" ; then - CPUCOUNT=$(psrinfo -p) - else - CPUCOUNT="1" - fi - - if [ "${CPUCOUNT}" -gt "1" ]; then - ${MAKE} -j${CPUCOUNT} $1 || cleanup_and_exit $? - else - ${MAKE} $1 || exit $? - fi -} - -function clean_build_dir() { - find ! -path "*.svn*" ! -name "*.bat" ! -name "*.sh" ! -name "." -print0 | xargs -0 rm -rf -} - -function usage () { -echo "Usage: `basename $0` [--prefix /install_prefix|--build [debug|final]|--clean|--verbose|--libsuffix (32|64)|--help|--clang|--cmakedir /directory|--make -(gmake|make)|--ccompiler (gcc|cc)|--withstaticlib|--unittesting|--clientunittesting|--withssh1|--withserver]" - cleanup_and_exit -} - -cd ${BUILDDIR} - -# the default CMake options: -OPTIONS="--graphviz=${BUILDDIR}/libssh.dot" - -# the default 'make' utility: -MAKE="make" - -while test -n "$1"; do - PARAM="$1" - ARG="$2" - shift - case ${PARAM} in - *-*=*) - ARG=${PARAM#*=} - PARAM=${PARAM%%=*} - set -- "----noarg=${PARAM}" "$@" - esac - case ${PARAM} in - *-help|-h) - #echo_help - usage - cleanup_and_exit - ;; - *-build) - DOMAKE="1" - BUILD_TYPE="${ARG}" - test -n "${BUILD_TYPE}" && shift - ;; - *-clean) - clean_build_dir - cleanup_and_exit - ;; - *-clang) - OPTIONS="${OPTIONS} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++" - ;; - *-verbose) - DOVERBOSE="1" - ;; - *-memtest) - OPTIONS="${OPTIONS} -DMEM_NULL_TESTS=ON" - ;; - *-libsuffix) - OPTIONS="${OPTIONS} -DLIB_SUFFIX=${ARG}" - shift - ;; - *-prefix) - OPTIONS="${OPTIONS} -DCMAKE_INSTALL_PREFIX=${ARG}" - shift - ;; - *-sysconfdir) - OPTIONS="${OPTIONS} -DSYSCONF_INSTALL_DIR=${ARG}" - shift - ;; - *-cmakedir) - CMAKEDIR="${ARG}" - shift - ;; - *-make) - MAKE="${ARG}" - shift - ;; - *-ccompiler) - OPTIONS="${OPTIONS} -DCMAKE_C_COMPILER=${ARG}" - shift - ;; - *-withstaticlib) - OPTIONS="${OPTIONS} -DWITH_STATIC_LIB=ON" - ;; - *-unittesting) - OPTIONS="${OPTIONS} -DWITH_TESTING=ON" - ;; - *-clientunittesting) - OPTIONS="${OPTIONS} -DWITH_CLIENT_TESTING=ON" - ;; - *-withssh1) - OPTIONS="${OPTIONS} -DWITH_SSH1=ON" - ;; - *-withserver) - OPTIONS="${OPTIONS} -DWITH_SERVER=ON" - ;; - ----noarg) - echo "$ARG does not take an argument" - cleanup_and_exit - ;; - -*) - echo Unknown Option "$PARAM". Exit. - cleanup_and_exit 1 - ;; - *) - usage - ;; - esac -done - -if [ "${DOMAKE}" == "1" ]; then - OPTIONS="${OPTIONS} -DCMAKE_BUILD_TYPE=${BUILD_TYPE}" -fi - -if [ -n "${DOVERBOSE}" ]; then - OPTIONS="${OPTIONS} -DCMAKE_VERBOSE_MAKEFILE=1" -else - OPTIONS="${OPTIONS} -DCMAKE_VERBOSE_MAKEFILE=0" -fi - -test -f "${BUILDDIR}/.build.log" && rm -f ${BUILDDIR}/.build.log -touch ${BUILDDIR}/.build.log -# log everything from here to .build.log -exec 1> >(exec -a 'build logging tee' tee -a ${BUILDDIR}/.build.log) 2>&1 -echo "${HOST} started build at $(date)." -echo - -configure ${OPTIONS} "$@" - -if [ -n "${DOMAKE}" ]; then - test -n "${DOVERBOSE}" && compile VERBOSE=1 || compile -fi - -DOT=$(which dot 2>/dev/null) -if [ -n "${DOT}" ]; then - ${DOT} -Tpng -o${BUILDDIR}/libssh.png ${BUILDDIR}/libssh.dot - ${DOT} -Tsvg -o${BUILDDIR}/libssh.svg ${BUILDDIR}/libssh.dot -fi - -exec >&0 2>&0 # so that the logging tee finishes -sleep 1 # wait till tee terminates - -cleanup_and_exit 0 diff --git a/libssh/cmake/Modules/AddCMockaTest.cmake b/libssh/cmake/Modules/AddCMockaTest.cmake index b2d1ca8a..19eff622 100644 --- a/libssh/cmake/Modules/AddCMockaTest.cmake +++ b/libssh/cmake/Modules/AddCMockaTest.cmake @@ -1,7 +1,7 @@ # - ADD_CHECK_TEST(test_name test_source linklib1 ... linklibN) # Copyright (c) 2007 Daniel Gollub -# Copyright (c) 2007-2010 Andreas Schneider +# Copyright (c) 2007-2010 Andreas Schneider # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. diff --git a/libssh/cmake/Modules/DefineCMakeDefaults.cmake b/libssh/cmake/Modules/DefineCMakeDefaults.cmake index 72893c3c..22eda6fa 100644 --- a/libssh/cmake/Modules/DefineCMakeDefaults.cmake +++ b/libssh/cmake/Modules/DefineCMakeDefaults.cmake @@ -25,3 +25,6 @@ if (NOT CMAKE_BUILD_TYPE) "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." ) endif (NOT CMAKE_BUILD_TYPE) + +# Create the compile command database for clang by default +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) diff --git a/libssh/cmake/Modules/DefineCompilerFlags.cmake b/libssh/cmake/Modules/DefineCompilerFlags.cmake index 0ab8802c..bfbc38fc 100644 --- a/libssh/cmake/Modules/DefineCompilerFlags.cmake +++ b/libssh/cmake/Modules/DefineCompilerFlags.cmake @@ -75,3 +75,10 @@ if (MSVC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_NONSTDC_NO_WARNINGS=1 /D _CRT_SECURE_NO_WARNINGS=1") endif (MSVC) + +# This removes this annoying warning +# "warning: 'BN_CTX_free' is deprecated: first deprecated in OS X 10.7 [-Wdeprecated-declarations]" +if (OSX) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations") +endif (OSX) + diff --git a/libssh/cmake/Modules/FindArgp.cmake b/libssh/cmake/Modules/FindArgp.cmake index aa228557..8dedc855 100644 --- a/libssh/cmake/Modules/FindArgp.cmake +++ b/libssh/cmake/Modules/FindArgp.cmake @@ -6,7 +6,7 @@ # ARGP_LIBRARIES - Link these to use Argp # ARGP_DEFINITIONS - Compiler switches required for using Argp # -# Copyright (c) 2010 Andreas Schneider +# Copyright (c) 2010 Andreas Schneider # # Redistribution and use is allowed according to the terms of the New # BSD license. diff --git a/libssh/cmake/Modules/FindNaCl.cmake b/libssh/cmake/Modules/FindNaCl.cmake index fa9c4090..b1a8da45 100644 --- a/libssh/cmake/Modules/FindNaCl.cmake +++ b/libssh/cmake/Modules/FindNaCl.cmake @@ -6,7 +6,7 @@ # NACL_LIBRARIES - Link these to use NaCl # NACL_DEFINITIONS - Compiler switches required for using NaCl # -# Copyright (c) 2010 Andreas Schneider +# Copyright (c) 2010 Andreas Schneider # Copyright (c) 2013 Aris Adamantiadis # # Redistribution and use is allowed according to the terms of the New diff --git a/libssh/cmake/Modules/MacroAddCompileFlags.cmake b/libssh/cmake/Modules/MacroAddCompileFlags.cmake deleted file mode 100644 index a866689d..00000000 --- a/libssh/cmake/Modules/MacroAddCompileFlags.cmake +++ /dev/null @@ -1,21 +0,0 @@ -# - MACRO_ADD_COMPILE_FLAGS(target_name flag1 ... flagN) - -# Copyright (c) 2006, Oswald Buddenhagen, -# Copyright (c) 2006, Andreas Schneider, -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - - -macro (MACRO_ADD_COMPILE_FLAGS _target) - - get_target_property(_flags ${_target} COMPILE_FLAGS) - if (_flags) - set(_flags ${_flags} ${ARGN}) - else (_flags) - set(_flags ${ARGN}) - endif (_flags) - - set_target_properties(${_target} PROPERTIES COMPILE_FLAGS ${_flags}) - -endmacro (MACRO_ADD_COMPILE_FLAGS) diff --git a/libssh/cmake/Modules/MacroAddLinkFlags.cmake b/libssh/cmake/Modules/MacroAddLinkFlags.cmake deleted file mode 100644 index 91cad306..00000000 --- a/libssh/cmake/Modules/MacroAddLinkFlags.cmake +++ /dev/null @@ -1,20 +0,0 @@ -# - MACRO_ADD_LINK_FLAGS(target_name flag1 ... flagN) - -# Copyright (c) 2006, Oswald Buddenhagen, -# Copyright (c) 2006, Andreas Schneider, -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -macro (MACRO_ADD_LINK_FLAGS _target) - - get_target_property(_flags ${_target} LINK_FLAGS) - if (_flags) - set(_flags "${_flags} ${ARGN}") - else (_flags) - set(_flags "${ARGN}") - endif (_flags) - - set_target_properties(${_target} PROPERTIES LINK_FLAGS "${_flags}") - -endmacro (MACRO_ADD_LINK_FLAGS) diff --git a/libssh/cmake/Modules/MacroAddPlugin.cmake b/libssh/cmake/Modules/MacroAddPlugin.cmake deleted file mode 100644 index 36b5e57e..00000000 --- a/libssh/cmake/Modules/MacroAddPlugin.cmake +++ /dev/null @@ -1,30 +0,0 @@ -# - MACRO_ADD_PLUGIN(name [WITH_PREFIX] file1 .. fileN) -# -# Create a plugin from the given source files. -# If WITH_PREFIX is given, the resulting plugin will have the -# prefix "lib", otherwise it won't. -# -# Copyright (c) 2006, Alexander Neundorf, -# Copyright (c) 2006, Laurent Montel, -# Copyright (c) 2006, Andreas Schneider, -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - - -macro (MACRO_ADD_PLUGIN _target_NAME _with_PREFIX) - - if (${_with_PREFIX} STREQUAL "WITH_PREFIX") - set(_first_SRC) - else (${_with_PREFIX} STREQUAL "WITH_PREFIX") - set(_first_SRC ${_with_PREFIX}) - endif (${_with_PREFIX} STREQUAL "WITH_PREFIX") - - add_library(${_target_NAME} MODULE ${_first_SRC} ${ARGN}) - - if (_first_SRC) - set_target_properties(${_target_NAME} PROPERTIES PREFIX "") - endif (_first_SRC) - -endmacro (MACRO_ADD_PLUGIN _name _sources) - diff --git a/libssh/cmake/Modules/MacroCopyFile.cmake b/libssh/cmake/Modules/MacroCopyFile.cmake deleted file mode 100644 index cee1cae3..00000000 --- a/libssh/cmake/Modules/MacroCopyFile.cmake +++ /dev/null @@ -1,33 +0,0 @@ -# - macro_copy_file(_src _dst) -# Copies a file to ${_dst} only if ${_src} is different (newer) than ${_dst} -# -# Example: -# macro_copy_file(${CMAKE_CURRENT_SOURCE_DIR}/icon.png ${CMAKE_CURRENT_BINARY_DIR}/.) -# Copies file icon.png to ${CMAKE_CURRENT_BINARY_DIR} directory -# -# Copyright (c) 2006-2007 Wengo -# Copyright (c) 2006-2008 Andreas Schneider -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING file. - - -macro (macro_copy_file _src _dst) - # Removes all path containing .svn or CVS or CMakeLists.txt during the copy - if (NOT ${_src} MATCHES ".*\\.svn|CVS|CMakeLists\\.txt.*") - - if (CMAKE_VERBOSE_MAKEFILE) - message(STATUS "Copy file from ${_src} to ${_dst}") - endif (CMAKE_VERBOSE_MAKEFILE) - - # Creates directory if necessary - get_filename_component(_path ${_dst} PATH) - file(MAKE_DIRECTORY ${_path}) - - execute_process( - COMMAND - ${CMAKE_COMMAND} -E copy_if_different ${_src} ${_dst} - OUTPUT_QUIET - ) - endif (NOT ${_src} MATCHES ".*\\.svn|CVS|CMakeLists\\.txt.*") -endmacro (macro_copy_file) diff --git a/libssh/cmake/Modules/UseDoxygen.cmake b/libssh/cmake/Modules/UseDoxygen.cmake index 861afa51..72c384d2 100644 --- a/libssh/cmake/Modules/UseDoxygen.cmake +++ b/libssh/cmake/Modules/UseDoxygen.cmake @@ -2,10 +2,18 @@ # # Adds a doxygen target that runs doxygen to generate the html # and optionally the LaTeX API documentation. -# The doxygen target is added to the doc target as dependency. +# The doxygen target is added to the doc target as a dependency. # i.e.: the API documentation is built with: # make doc # +# USAGE: GLOBAL INSTALL +# +# Install it with: +# cmake ./ && sudo make install +# Add the following to the CMakeLists.txt of your project: +# include(UseDoxygen OPTIONAL) +# Optionally copy Doxyfile.in in the directory of CMakeLists.txt and edit it. +# # USAGE: INCLUDE IN PROJECT # # set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) @@ -13,88 +21,120 @@ # Add the Doxyfile.in and UseDoxygen.cmake files to the projects source directory. # # -# Variables you may define are: -# DOXYFILE_OUTPUT_DIR - Path where the Doxygen output is stored. Defaults to "doc". +# CONFIGURATION # -# DOXYFILE_LATEX_DIR - Directory where the Doxygen LaTeX output is stored. Defaults to "latex". -# -# DOXYFILE_HTML_DIR - Directory where the Doxygen html output is stored. Defaults to "html". +# To configure Doxygen you can edit Doxyfile.in and set some variables in cmake. +# Variables you may define are: +# DOXYFILE_SOURCE_DIR - Path where the Doxygen input files are. +# Defaults to the current source directory. +# DOXYFILE_EXTRA_SOURCES - Additional source diretories/files for Doxygen to scan. +# The Paths should be in double quotes and separated by space. e.g.: +# "${CMAKE_CURRENT_BINARY_DIR}/foo.c" "${CMAKE_CURRENT_BINARY_DIR}/bar/" +# +# DOXYFILE_OUTPUT_DIR - Path where the Doxygen output is stored. +# Defaults to "${CMAKE_CURRENT_BINARY_DIR}/doc". +# +# DOXYFILE_LATEX - ON/OFF; Set to "ON" if you want the LaTeX documentation +# to be built. +# DOXYFILE_LATEX_DIR - Directory relative to DOXYFILE_OUTPUT_DIR where +# the Doxygen LaTeX output is stored. Defaults to "latex". +# +# DOXYFILE_HTML_DIR - Directory relative to DOXYFILE_OUTPUT_DIR where +# the Doxygen html output is stored. Defaults to "html". # # -# Copyright (c) 2009-2010 Tobias Rautenkranz -# Copyright (c) 2010 Andreas Schneider +# Copyright (c) 2009, 2010, 2011 Tobias Rautenkranz # # Redistribution and use is allowed according to the terms of the New # BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # -macro(usedoxygen_set_default name value) - if(NOT DEFINED "${name}") - set("${name}" "${value}") - endif() +macro(usedoxygen_set_default name value type docstring) + if(NOT DEFINED "${name}") + set("${name}" "${value}" CACHE "${type}" "${docstring}") + endif() endmacro() find_package(Doxygen) if(DOXYGEN_FOUND) - find_file(DOXYFILE_IN - NAMES - doxy.config.in - PATHS - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_ROOT}/Modules/ - NO_DEFAULT_PATH) - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(DOXYFILE_IN DEFAULT_MSG "DOXYFILE_IN") + find_file(DOXYFILE_IN "Doxyfile.in" + PATHS "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_ROOT}/Modules/" + NO_DEFAULT_PATH + DOC "Path to the doxygen configuration template file") + set(DOXYFILE "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile") + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(DOXYFILE_IN DEFAULT_MSG "DOXYFILE_IN") endif() if(DOXYGEN_FOUND AND DOXYFILE_IN_FOUND) - add_custom_target(doxygen ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxy.config) - - usedoxygen_set_default(DOXYFILE_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}") - usedoxygen_set_default(DOXYFILE_HTML_DIR "html") - - set_property(DIRECTORY APPEND PROPERTY - ADDITIONAL_MAKE_CLEAN_FILES "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_HTML_DIR}") - - set(DOXYFILE_LATEX FALSE) - set(DOXYFILE_PDFLATEX FALSE) - set(DOXYFILE_DOT FALSE) - - #find_package(LATEX) - #if(LATEX_COMPILER AND MAKEINDEX_COMPILER) - # set(DOXYFILE_LATEX TRUE) - # usedoxygen_set_default(DOXYFILE_LATEX_DIR "latex") - # - # set_property(DIRECTORY APPEND PROPERTY - # ADDITIONAL_MAKE_CLEAN_FILES - # "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}") - # - # if(PDFLATEX_COMPILER) - # set(DOXYFILE_PDFLATEX TRUE) - # endif() - # if(DOXYGEN_DOT_EXECUTABLE) - # set(DOXYFILE_DOT TRUE) - # endif() - # - # add_custom_command(TARGET doxygen - # POST_BUILD - # COMMAND ${CMAKE_MAKE_PROGRAM} - # WORKING_DIRECTORY "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}") - #endif() - - configure_file(${DOXYFILE_IN} ${CMAKE_CURRENT_BINARY_DIR}/doxy.config ESCAPE_QUOTES IMMEDIATE @ONLY) - if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/doxy.trac.in) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxy.trac.in ${CMAKE_CURRENT_BINARY_DIR}/doxy.trac ESCAPE_QUOTES IMMEDIATE @ONLY) - add_custom_target(doxygen-trac ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxy.trac) - endif() - - get_target_property(DOC_TARGET doc TYPE) - if(NOT DOC_TARGET) - add_custom_target(doc) - endif() - - add_dependencies(doc doxygen) + usedoxygen_set_default(DOXYFILE_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc" + PATH "Doxygen output directory") + usedoxygen_set_default(DOXYFILE_HTML_DIR "html" + STRING "Doxygen HTML output directory") + usedoxygen_set_default(DOXYFILE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" + PATH "Input files source directory") + usedoxygen_set_default(DOXYFILE_EXTRA_SOURCE_DIRS "" + STRING "Additional source files/directories separated by space") + set(DOXYFILE_SOURCE_DIRS "\"${DOXYFILE_SOURCE_DIR}\" ${DOXYFILE_EXTRA_SOURCES}") + + usedoxygen_set_default(DOXYFILE_LATEX YES BOOL "Generate LaTeX API documentation" OFF) + usedoxygen_set_default(DOXYFILE_LATEX_DIR "latex" STRING "LaTex output directory") + + mark_as_advanced(DOXYFILE_OUTPUT_DIR DOXYFILE_HTML_DIR DOXYFILE_LATEX_DIR + DOXYFILE_SOURCE_DIR DOXYFILE_EXTRA_SOURCE_DIRS DOXYFILE_IN) + + + set_property(DIRECTORY + APPEND PROPERTY + ADDITIONAL_MAKE_CLEAN_FILES + "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_HTML_DIR}") + + add_custom_target(doxygen + COMMAND "${DOXYGEN_EXECUTABLE}" + "${DOXYFILE}" + COMMENT "Writing documentation to ${DOXYFILE_OUTPUT_DIR}..." + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") + + set(DOXYFILE_DOT "NO") + if(DOXYGEN_DOT_EXECUTABLE) + set(DOXYFILE_DOT "YES") + endif() + + ## LaTeX + set(DOXYFILE_PDFLATEX "NO") + + set_property(DIRECTORY APPEND PROPERTY + ADDITIONAL_MAKE_CLEAN_FILES + "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}") + + if(DOXYFILE_LATEX STREQUAL "ON") + set(DOXYFILE_GENERATE_LATEX "YES") + find_package(LATEX) + find_program(DOXYFILE_MAKE make) + mark_as_advanced(DOXYFILE_MAKE) + if(LATEX_COMPILER AND MAKEINDEX_COMPILER AND DOXYFILE_MAKE) + if(PDFLATEX_COMPILER) + set(DOXYFILE_PDFLATEX "YES") + endif() + + add_custom_command(TARGET doxygen + POST_BUILD + COMMAND "${DOXYFILE_MAKE}" + COMMENT "Running LaTeX for Doxygen documentation in ${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}..." + WORKING_DIRECTORY "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}") + else() + set(DOXYGEN_LATEX "NO") + endif() + else() + set(DOXYFILE_GENERATE_LATEX "NO") + endif() + + + configure_file("${DOXYFILE_IN}" "${DOXYFILE}" @ONLY) + + add_custom_target(doc) + add_dependencies(doc doxygen) endif() diff --git a/libssh/config.h.cmake b/libssh/config.h.cmake index 7e8cb6a8..55e37aca 100644 --- a/libssh/config.h.cmake +++ b/libssh/config.h.cmake @@ -20,9 +20,15 @@ /* Define to 1 if you have the header file. */ #cmakedefine HAVE_PTY_H 1 +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UTMP_H 1 + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_UTIL_H 1 +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LIBUTIL_H 1 + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_TERMIOS_H 1 diff --git a/libssh/doc/Doxyfile.in b/libssh/doc/Doxyfile.in new file mode 100644 index 00000000..a7a9ffbb --- /dev/null +++ b/libssh/doc/Doxyfile.in @@ -0,0 +1,1917 @@ +# Doxyfile 1.8.4 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed +# in front of the TAG it is preceding . +# All text after a hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" "). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or sequence of words) that should +# identify the project. Note that if you do not use Doxywizard you need +# to put quotes around the project name if it contains spaces. + +PROJECT_NAME = @APPLICATION_NAME@ + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = @APPLICATION_VERSION@ + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer +# a quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify an logo or icon that is +# included in the documentation. The maximum height of the logo should not +# exceed 55 pixels and the maximum width should not exceed 200 pixels. +# Doxygen will copy the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@ + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian, +# Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, +# Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. Note that you specify absolute paths here, but also +# relative paths, which will be relative from the directory where doxygen is +# started. + +STRIP_FROM_PATH = @CMAKE_SOURCE_DIR@ + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = @CMAKE_SOURCE_DIR@ + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful if your file system +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 2 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding +# "class=itcl::class" will allow you to use the command class in the +# itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, +# and language is one of the parsers supported by doxygen: IDL, Java, +# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, +# C++. For instance to make doxygen treat .inc files as Fortran files (default +# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note +# that for custom extensions you also need to set FILE_PATTERNS otherwise the +# files are not read by doxygen. + +EXTENSION_MAPPING = + +# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all +# comments according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you +# can mix doxygen, HTML, and XML commands with Markdown formatting. +# Disable only in case of backward compatibilities issues. + +MARKDOWN_SUPPORT = YES + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by by putting a % sign in front of the word +# or globally by setting AUTOLINK_SUPPORT to NO. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also makes the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES (the +# default) will make doxygen replace the get and set methods by a property in +# the documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and +# unions are shown inside the group in which they are included (e.g. using +# @ingroup) instead of on a separate page (for HTML and Man pages) or +# section (for LaTeX and RTF). + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and +# unions with only public data fields or simple typedef fields will be shown +# inline in the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO (the default), structs, classes, and unions are shown on a separate +# page (for HTML and Man pages) or section (for LaTeX and RTF). + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = YES + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can +# be an expensive process and often the same symbol appear multiple times in +# the code, doxygen keeps a cache of pre-resolved symbols. If the cache is too +# small doxygen will become slower. If the cache is too large, memory is wasted. +# The cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid +# range is 0..9, the default is 0, corresponding to a cache size of 2^16 = 65536 +# symbols. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# scope will be included in the documentation. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = NO + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespaces are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = YES + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = YES + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = @CMAKE_INTERNAL_DOC@ + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen +# will list include files with double quotes in the documentation +# rather than with sharp brackets. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = YES + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to +# do proper type resolution of all parameters of a function it will reject a +# match between the prototype and the implementation of a member function even +# if there is only one candidate or it is obvious which candidate to choose +# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen +# will still accept a match between prototype and implementation in such cases. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if section-label ... \endif +# and \cond section-label ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or macro consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and macros in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. +# This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. +# You can optionally specify a file name after the option, if omitted +# DoxygenLayout.xml will be used as the name of the layout file. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files +# containing the references data. This must be a list of .bib files. The +# .bib extension is automatically appended if omitted. Using this command +# requires the bibtex tool to be installed. See also +# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style +# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this +# feature you need bibtex and perl available in the search path. Do not use +# file names with spaces, bibtex cannot handle them. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_NO_PARAMDOC option can be enabled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = @CMAKE_SOURCE_DIR@/include/libssh \ + @CMAKE_SOURCE_DIR@/src \ + @CMAKE_SOURCE_DIR@/doc + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the