mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-11 10:40:27 +09:00
Signed-off-by: Andreas Schneider <asn@cryptomilk.org> Reviewed-by: Jakub Jelen <jjelen@redhat.com>
110 lines
3.5 KiB
CMake
110 lines
3.5 KiB
CMake
option(WITH_GSSAPI "Build with GSSAPI support" ON)
|
|
option(WITH_ZLIB "Build with ZLIB support" ON)
|
|
option(WITH_SFTP "Build with SFTP support" ON)
|
|
option(WITH_SERVER "Build with SSH server support" ON)
|
|
option(WITH_DEBUG_CRYPTO "Build with crypto debug output" OFF)
|
|
option(WITH_DEBUG_PACKET "Build with packet debug output" OFF)
|
|
option(WITH_DEBUG_CALLTRACE "Build with calltrace debug output" ON)
|
|
option(WITH_GCRYPT "Compile against libgcrypt (deprecated)" OFF)
|
|
option(WITH_MBEDTLS "Compile against libmbedtls" OFF)
|
|
option(WITH_BLOWFISH_CIPHER "Compile with blowfish support" OFF)
|
|
option(WITH_PCAP "Compile with Pcap generation support" ON)
|
|
option(WITH_INTERNAL_DOC "Compile doxygen internal documentation" OFF)
|
|
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
|
|
option(WITH_PKCS11_URI "Build with PKCS#11 URI support" OFF)
|
|
option(WITH_PKCS11_PROVIDER
|
|
"Use the PKCS#11 provider for accessing pkcs11 objects" OFF)
|
|
option(WITH_FIDO2 "Build with FIDO2/U2F support" OFF)
|
|
option(UNIT_TESTING "Build with unit tests" OFF)
|
|
option(CLIENT_TESTING "Build with client tests; requires openssh" OFF)
|
|
option(SERVER_TESTING "Build with server tests; requires openssh and dropbear"
|
|
OFF)
|
|
option(
|
|
GSSAPI_TESTING
|
|
"Build with GSSAPI tests; requires krb5-server,krb5-libs and krb5-workstation"
|
|
OFF)
|
|
option(WITH_BENCHMARKS
|
|
"Build benchmarks tools; enables unit testing and client tests" OFF)
|
|
option(WITH_EXAMPLES "Build examples" ON)
|
|
option(WITH_NACL "Build with libnacl (curve25519)" ON)
|
|
option(WITH_SYMBOL_VERSIONING "Build with symbol versioning" ON)
|
|
option(WITH_ABI_BREAK "Allow ABI break" OFF)
|
|
option(WITH_GEX "Enable DH Group exchange mechanisms" ON)
|
|
option(
|
|
WITH_INSECURE_NONE
|
|
"Enable insecure none cipher and MAC algorithms (not suitable for production!)"
|
|
OFF)
|
|
option(
|
|
WITH_EXEC
|
|
"Enable libssh to execute arbitrary commands from configuration files or options (match exec, proxy commands and OpenSSH-based proxy-jumps)."
|
|
ON)
|
|
option(
|
|
FUZZ_TESTING
|
|
"Build with fuzzer for the server and client (automatically enables none cipher!)"
|
|
OFF)
|
|
option(PICKY_DEVELOPER "Build with picky developer flags" OFF)
|
|
option(WITH_HERMETIC_USR "Build with support for hermetic /usr/" OFF)
|
|
|
|
if (WITH_ZLIB)
|
|
set(WITH_LIBZ ON)
|
|
else (WITH_ZLIB)
|
|
set(WITH_LIBZ OFF)
|
|
endif (WITH_ZLIB)
|
|
|
|
if (WITH_BENCHMARKS)
|
|
set(UNIT_TESTING ON)
|
|
set(CLIENT_TESTING ON)
|
|
endif ()
|
|
|
|
if (UNIT_TESTING
|
|
OR CLIENT_TESTING
|
|
OR SERVER_TESTING
|
|
OR GSSAPI_TESTING)
|
|
set(BUILD_STATIC_LIB ON)
|
|
endif ()
|
|
|
|
if (WITH_NACL)
|
|
set(WITH_NACL ON)
|
|
endif (WITH_NACL)
|
|
|
|
if (WITH_ABI_BREAK)
|
|
set(WITH_SYMBOL_VERSIONING ON)
|
|
endif (WITH_ABI_BREAK)
|
|
|
|
set(GLOBAL_CONF_DIR "/etc/ssh")
|
|
if (WIN32)
|
|
# Use PROGRAMDATA on Windows
|
|
if (DEFINED ENV{PROGRAMDATA})
|
|
set(GLOBAL_CONF_DIR "$ENV{PROGRAMDATA}/ssh")
|
|
else ()
|
|
set(GLOBAL_CONF_DIR "C:/ProgramData/ssh")
|
|
endif ()
|
|
if (WITH_HERMETIC_USR)
|
|
set(USR_GLOBAL_CONF_DIR "/usr${GLOBAL_CONF_DIR}")
|
|
endif ()
|
|
endif ()
|
|
|
|
if (NOT GLOBAL_BIND_CONFIG)
|
|
set(GLOBAL_BIND_CONFIG "${GLOBAL_CONF_DIR}/libssh_server_config")
|
|
|
|
if (WITH_HERMETIC_USR)
|
|
set(USR_GLOBAL_BIND_CONFIG "/usr${GLOBAL_BIND_CONFIG}")
|
|
endif ()
|
|
endif (NOT GLOBAL_BIND_CONFIG)
|
|
|
|
if (NOT GLOBAL_CLIENT_CONFIG)
|
|
set(GLOBAL_CLIENT_CONFIG "${GLOBAL_CONF_DIR}/ssh_config")
|
|
|
|
if (WITH_HERMETIC_USR)
|
|
set(USR_GLOBAL_CLIENT_CONFIG "/usr${GLOBAL_CLIENT_CONFIG}")
|
|
endif ()
|
|
endif (NOT GLOBAL_CLIENT_CONFIG)
|
|
|
|
if (FUZZ_TESTING)
|
|
set(WITH_INSECURE_NONE ON)
|
|
endif (FUZZ_TESTING)
|
|
|
|
if (WIN32)
|
|
set(WITH_EXEC 0)
|
|
endif (WIN32)
|