diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2019-02-06 16:56:55 +0100 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2019-02-06 16:56:55 +0100 |
commit | f3f392caec43b4095bc1d84b315ed7972c13c144 (patch) | |
tree | 5c4ba8b5d38f1ae33de71507c5634a15a0b35bfe /CMakeLists.txt | |
parent | 8c081c8888bccbf5adfe0fc4ec518e2cbfba9871 (diff) | |
parent | 0a70095271d845d16a3ed17354841b01f33963ad (diff) | |
download | libtdevnc-f3f392caec43b4095bc1d84b315ed7972c13c144.tar.gz libtdevnc-f3f392caec43b4095bc1d84b315ed7972c13c144.zip |
Merge tag 'LibVNCServer-0.9.12'
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 403 |
1 files changed, 287 insertions, 116 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 37f88e0..c6525ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,139 +5,142 @@ endif( POLICY CMP0037 ) project(LibVNCServer) include(CheckFunctionExists) +include(CheckSymbolExists) include(CheckIncludeFile) include(CheckTypeSize) include(TestBigEndian) include(CheckCSourceCompiles) -include(CheckCXXSourceCompiles) include(CheckCSourceRuns) +enable_testing() + set(PACKAGE_NAME "LibVNCServer") set(FULL_PACKAGE_NAME "LibVNCServer") set(VERSION_MAJOR "0") set(VERSION_MINOR "9") -set(VERSION_PATCHLEVEL "11") -set(VERSION_SO "0") +set(VERSION_PATCHLEVEL "12") +set(VERSION_SO "1") set(PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCHLEVEL}") -set(PROJECT_BUGREPORT_PATH "http://sourceforge.net/projects/libvncserver") -set(CMAKE_C_FLAGS "-O2 -W -Wall -g") +set(PROJECT_BUGREPORT_PATH "https://github.com/LibVNC/libvncserver/issues") set(LIBVNCSERVER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libvncserver) set(COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/common) set(LIBVNCCLIENT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libvncclient) -set(LIBVNCSRVTEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/examples) -set(LIBVNCCLITEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/client_examples) +set(LIBVNCSRVEXAMPLE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/examples) +set(LIBVNCCLIEXAMPLE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/client_examples) +set(TESTS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/test) +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libvncserver ${CMAKE_CURRENT_SOURCE_DIR}/common) -find_package(ZLIB) -find_package(JPEG) -find_package(PNG) -find_package(SDL) -find_package(GnuTLS) -find_package(Threads) -find_package(X11) -find_package(OpenSSL) -find_package(PkgConfig) -find_library(LIBGCRYPT_LIBRARIES gcrypt) - -# Check whether the version of libjpeg we found was libjpeg-turbo and print a -# warning if not. -set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARIES}) -set(CMAKE_REQUIRED_FLAGS -I${JPEG_INCLUDE_DIR}) - -set(JPEG_TEST_SOURCE "\n - #include <stdio.h>\n - #include <jpeglib.h>\n - int main(void) {\n - struct jpeg_compress_struct cinfo;\n - struct jpeg_error_mgr jerr;\n - cinfo.err=jpeg_std_error(&jerr);\n - jpeg_create_compress(&cinfo);\n - cinfo.input_components = 3;\n - jpeg_set_defaults(&cinfo);\n - cinfo.in_color_space = JCS_EXT_RGB;\n - jpeg_default_colorspace(&cinfo);\n - return 0;\n - }") - -if(CMAKE_CROSSCOMPILING) - check_c_source_compiles("${JPEG_TEST_SOURCE}" FOUND_LIBJPEG_TURBO) -else() - check_c_source_runs("${JPEG_TEST_SOURCE}" FOUND_LIBJPEG_TURBO) +# all the build configuration switches +option(BUILD_SHARED_LIBS "Build shared libraries" ${UNIX}) +option(WITH_ZLIB "Search for the zlib compression library to support additional encodings" ON) +option(WITH_LZO "Search for the LZO compression library to omit internal miniLZO implementation" ON) +option(WITH_JPEG "Search for the libjpeg compression library to support additional encodings" ON) +option(WITH_PNG "Search for the PNG compression library to support additional encodings" ON) +option(WITH_SDL "Search for the Simple Direct Media Layer library to build an example SDL vnc client" ON) +option(WITH_THREADS "Search for a threading library to build with multithreading support" ON) +option(WITH_GNUTLS "Search for the GnuTLS secure communications library to support encryption" ON) +option(WITH_OPENSSL "Search for the OpenSSL cryptography library to support encryption" ON) +option(WITH_SYSTEMD "Search for libsystemd to build with systemd socket activation support" ON) +option(WITH_GCRYPT "Search for libgcrypt to support additional authentication methods in LibVNCClient" ON) +option(WITH_FFMPEG "Search for FFMPEG to build an example VNC to MPEG encoder" ON) +option(WITH_TIGHTVNC_FILETRANSFER "Enable filetransfer if there is pthreads support" ON) +option(WITH_24BPP "Allow 24 bpp" ON) +option(WITH_IPv6 "Enable IPv6 Support" ON) +option(WITH_WEBSOCKETS "Build with websockets support" ON) +option(WITH_SASL "Build with SASL support" ON) + + + +if(WITH_ZLIB) + find_package(ZLIB) +endif(WITH_ZLIB) + +if(WITH_LZO) + find_package(LZO) endif() -set(CMAKE_REQUIRED_LIBRARIES) -set(CMAKE_REQUIRED_FLAGS) -set(CMAKE_REQUIRED_DEFINITIONS) - -if(NOT FOUND_LIBJPEG_TURBO) - message(WARNING "*** The libjpeg library you are building against is not libjpeg-turbo. Performance will be reduced. You can obtain libjpeg-turbo from: https://sourceforge.net/projects/libjpeg-turbo/files/ ***") -endif() +if(WITH_JPEG) + find_package(JPEG) + if(JPEG_FOUND) + # Check whether the version of libjpeg we found was libjpeg-turbo and print a + # warning if not. + set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARIES}) + set(CMAKE_REQUIRED_FLAGS -I${JPEG_INCLUDE_DIR}) + + set(JPEG_TEST_SOURCE "\n + #include <stdio.h>\n + #include <jpeglib.h>\n + int main(void) {\n + struct jpeg_compress_struct cinfo;\n + struct jpeg_error_mgr jerr;\n + cinfo.err=jpeg_std_error(&jerr);\n + jpeg_create_compress(&cinfo);\n + cinfo.input_components = 3;\n + jpeg_set_defaults(&cinfo);\n + cinfo.in_color_space = JCS_EXT_RGB;\n + jpeg_default_colorspace(&cinfo);\n + return 0;\n + }") + + if(CMAKE_CROSSCOMPILING) + check_c_source_compiles("${JPEG_TEST_SOURCE}" FOUND_LIBJPEG_TURBO) + else() + check_c_source_runs("${JPEG_TEST_SOURCE}" FOUND_LIBJPEG_TURBO) + endif() -# On systems such as GNU/Linux with glibc, __b64_ntop is defined in a -# separate library, libresolv. On some others, such as FreeBSD, it is -# part of libc itself. We first check if __b64_ntop is found without -# additional libraries, and then try looking for it with libresolv if -# the first test fails. -check_function_exists(__b64_ntop HAVE_B64_IN_LIBC) -if(NOT HAVE_B64_IN_LIBC) - set(CMAKE_REQUIRED_LIBRARIES resolv) - check_function_exists(__b64_ntop HAVE_B64_IN_LIBRESOLV) set(CMAKE_REQUIRED_LIBRARIES) + set(CMAKE_REQUIRED_FLAGS) + set(CMAKE_REQUIRED_DEFINITIONS) - if(HAVE_B64_IN_LIBRESOLV) - set(RESOLV_LIB "resolv") - endif(HAVE_B64_IN_LIBRESOLV) -endif(NOT HAVE_B64_IN_LIBC) + if(NOT FOUND_LIBJPEG_TURBO) + message(WARNING "*** The libjpeg library you are building against is not libjpeg-turbo. Performance will be reduced. You can obtain libjpeg-turbo from: https://sourceforge.net/projects/libjpeg-turbo/files/ ***") + endif() + endif(JPEG_FOUND) +endif(WITH_JPEG) -if(Threads_FOUND) - option(TIGHTVNC_FILETRANSFER "Enable filetransfer" ON) -endif(Threads_FOUND) -if(ZLIB_FOUND) - set(LIBVNCSERVER_HAVE_LIBZ 1) -endif(ZLIB_FOUND) -if(JPEG_FOUND) - set(LIBVNCSERVER_HAVE_LIBJPEG 1) -endif(JPEG_FOUND) -if(PNG_FOUND) - set(LIBVNCSERVER_HAVE_LIBPNG 1) -endif(PNG_FOUND) -option(LIBVNCSERVER_ALLOW24BPP "Allow 24 bpp" ON) -pkg_check_modules(SYSTEMD "libsystemd") -if(SYSTEMD_FOUND) - option(LIBVNCSERVER_WITH_SYSTEMD "Build with systemd socket activation support" ON) -endif(SYSTEMD_FOUND) +if(WITH_PNG) + find_package(PNG) +endif(WITH_PNG) -if(LIBVNCSERVER_WITH_SYSTEMD) - add_definitions(-DLIBVNCSERVER_WITH_SYSTEMD) - include_directories(${SYSTEMD_INCLUDE_DIRS}) - set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${SYSTEMD_LIBRARIES}) -endif(LIBVNCSERVER_WITH_SYSTEMD) -if(GNUTLS_FOUND) - set(LIBVNCSERVER_WITH_CLIENT_TLS 1) - option(LIBVNCSERVER_WITH_WEBSOCKETS "Build with websockets support (gnutls)" ON) - set(WEBSOCKET_LIBRARIES ${RESOLV_LIB} ${GNUTLS_LIBRARIES}) - set(WSSRCS ${LIBVNCSERVER_DIR}/rfbssl_gnutls.c ${LIBVNCSERVER_DIR}/rfbcrypto_gnutls.c) - include_directories(${GNUTLS_INCLUDE_DIR}) -elseif(OPENSSL_FOUND) - option(LIBVNCSERVER_WITH_WEBSOCKETS "Build with websockets support (openssl)" ON) - set(WEBSOCKET_LIBRARIES ${RESOLV_LIB} ${OPENSSL_LIBRARIES}) - set(WSSRCS ${LIBVNCSERVER_DIR}/rfbssl_openssl.c ${LIBVNCSERVER_DIR}/rfbcrypto_openssl.c) - include_directories(${OPENSSL_INCLUDE_DIR}) -else() - option(LIBVNCSERVER_WITH_WEBSOCKETS "Build with websockets support (no ssl)" ON) - set(WEBSOCKET_LIBRARIES ${RESOLV_LIB}) - set(WSSRCS ${LIBVNCSERVER_DIR}/rfbssl_none.c ${LIBVNCSERVER_DIR}/rfbcrypto_included.c ${COMMON_DIR}/md5.c ${COMMON_DIR}/sha1.c) -endif() +if(WITH_SDL) + find_package(SDL2) +endif(WITH_SDL) + + +if(WITH_THREADS) + find_package(Threads) +endif(WITH_THREADS) + + +if(WITH_GNUTLS) + find_package(GnuTLS) +endif(WITH_GNUTLS) + + +if(WITH_OPENSSL) + find_package(OpenSSL) +endif(WITH_OPENSSL) -if(LIBGCRYPT_LIBRARIES) - message(STATUS "Found libgcrypt: ${LIBGCRYPT_LIBRARIES}") - set(LIBVNCSERVER_WITH_CLIENT_GCRYPT 1) - set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${LIBGCRYPT_LIBRARIES}) -endif(LIBGCRYPT_LIBRARIES) + +if(WITH_SYSTEMD AND NOT ANDROID) + find_package(PkgConfig) + pkg_check_modules(SYSTEMD "libsystemd") +endif(WITH_SYSTEMD AND NOT ANDROID) + + +if(WITH_GCRYPT) + find_library(LIBGCRYPT_LIBRARIES gcrypt) +endif(WITH_GCRYPT) + +if(WITH_FFMPEG) + find_package(FFMPEG 3.1.0) +endif(WITH_FFMPEG) check_include_file("endian.h" LIBVNCSERVER_HAVE_ENDIAN_H) @@ -150,6 +153,8 @@ check_include_file("sys/time.h" LIBVNCSERVER_HAVE_SYS_TIME_H) check_include_file("sys/types.h" LIBVNCSERVER_HAVE_SYS_TYPES_H) check_include_file("sys/wait.h" LIBVNCSERVER_HAVE_SYS_WAIT_H) check_include_file("unistd.h" LIBVNCSERVER_HAVE_UNISTD_H) +check_include_file("sys/uio.h" LIBVNCSERVER_HAVE_SYS_UIO_H) + # headers needed for check_type_size() check_include_file("vfork.h" LIBVNCSERVER_HAVE_VFORK_H) @@ -159,15 +164,115 @@ check_include_file("stdint.h" HAVE_STDINT_H) check_include_file("stddef.h" HAVE_STDDEF_H) check_include_file("sys/types.h" HAVE_SYS_TYPES_H) +# error out if required headers not found +if(NOT HAVE_STDINT_H) + message(FATAL_ERROR "Could NOT find required header stdint.h") +endif() + check_function_exists(gettimeofday LIBVNCSERVER_HAVE_GETTIMEOFDAY) check_function_exists(vfork LIBVNCSERVER_HAVE_VFORK) check_function_exists(vprintf LIBVNCSERVER_HAVE_VPRINTF) +check_function_exists(mmap LIBVNCSERVER_HAVE_MMAP) +check_function_exists(fork LIBVNCSERVER_HAVE_FORK) +check_function_exists(ftime LIBVNCSERVER_HAVE_FTIME) +check_function_exists(gethostbyname LIBVNCSERVER_HAVE_GETHOSTBYNAME) +check_function_exists(gethostname LIBVNCSERVER_HAVE_GETHOSTNAME) +check_function_exists(inet_ntoa LIBVNCSERVER_HAVE_INET_NTOA) +check_function_exists(memmove LIBVNCSERVER_HAVE_MEMMOVE) +check_function_exists(memset LIBVNCSERVER_HAVE_MEMSET) +check_function_exists(mkfifo LIBVNCSERVER_HAVE_MKFIFO) +check_function_exists(select LIBVNCSERVER_HAVE_SELECT) +check_function_exists(socket LIBVNCSERVER_HAVE_SOCKET) +check_function_exists(strchr LIBVNCSERVER_HAVE_STRCHR) +check_function_exists(strcspn LIBVNCSERVER_HAVE_STRCSPN) +check_function_exists(strdup LIBVNCSERVER_HAVE_STRDUP) +check_function_exists(strerror LIBVNCSERVER_HAVE_STRERROR) +check_function_exists(strstr LIBVNCSERVER_HAVE_STRSTR) + +check_symbol_exists(htobe64 "endian.h" LIBVNCSERVER_HAVE_HTOBE64) +check_symbol_exists(OSSwapHostToBigInt64 "libkern/OSByteOrder.h" LIBVNCSERVER_HAVE_OSSWAPHOSTTOBIGINT64) + +if(Threads_FOUND) + set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) +endif(Threads_FOUND) +if(ZLIB_FOUND) + set(LIBVNCSERVER_HAVE_LIBZ 1) +else() + unset(ZLIB_LIBRARIES) # would otherwise contain -NOTFOUND, confusing target_link_libraries() +endif(ZLIB_FOUND) +if(LZO_FOUND) + set(LIBVNCSERVER_HAVE_LZO 1) +else() + unset(LZO_LIBRARIES CACHE) # would otherwise contain -NOTFOUND, confusing target_link_libraries() +endif() +if(JPEG_FOUND) + set(LIBVNCSERVER_HAVE_LIBJPEG 1) +else() + unset(JPEG_LIBRARIES) # would otherwise confuse target_link_libraries() +endif(JPEG_FOUND) +if(PNG_FOUND) + set(LIBVNCSERVER_HAVE_LIBPNG 1) +endif(PNG_FOUND) +if(NOT OPENSSL_FOUND) + unset(OPENSSL_LIBRARIES) # would otherwise contain -NOTFOUND, confusing target_link_libraries() +endif() +if(SYSTEMD_FOUND) + add_definitions(-DLIBVNCSERVER_WITH_SYSTEMD) + include_directories(${SYSTEMD_INCLUDE_DIRS}) + set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${SYSTEMD_LIBRARIES}) +endif(SYSTEMD_FOUND) + +if(LIBVNCSERVER_HAVE_SYS_UIO_H) + if(GNUTLS_FOUND) + message(STATUS "Building crypto with GnuTLS") + set(CRYPTO_LIBRARIES ${GNUTLS_LIBRARIES}) + set(CRYPTO_SOURCES ${COMMON_DIR}/rfbcrypto_gnutls.c) + include_directories(${GNUTLS_INCLUDE_DIR}) + elseif(OPENSSL_FOUND) + message(STATUS "Building crypto with OpenSSL") + set(CRYPTO_LIBRARIES ${OPENSSL_LIBRARIES}) + set(CRYPTO_SOURCES ${COMMON_DIR}/rfbcrypto_openssl.c) + else() + message(STATUS "Building crypto with builtin functions") + set(CRYPTO_SOURCES ${COMMON_DIR}/rfbcrypto_included.c ${COMMON_DIR}/md5.c ${COMMON_DIR}/sha1.c) + endif() + set(LIBVNCSERVER_HAVE_CRYPTO 1) +endif(LIBVNCSERVER_HAVE_SYS_UIO_H) + + +if(WITH_WEBSOCKETS AND LIBVNCSERVER_HAVE_CRYPTO AND (LIBVNCSERVER_HAVE_HTOBE64 OR LIBVNCSERVER_HAVE_OSSWAPHOSTTOBIGINT64)) + set(LIBVNCSERVER_WITH_WEBSOCKETS 1) +endif() + +if(WITH_GCRYPT AND LIBGCRYPT_LIBRARIES) + message(STATUS "Found libgcrypt: ${LIBGCRYPT_LIBRARIES}") + set(LIBVNCSERVER_WITH_CLIENT_GCRYPT 1) + set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${LIBGCRYPT_LIBRARIES}) +endif(WITH_GCRYPT AND LIBGCRYPT_LIBRARIES) + +if(GNUTLS_FOUND) + set(LIBVNCSERVER_HAVE_GNUTLS 1) +endif(GNUTLS_FOUND) + +if(OPENSSL_FOUND) + set(LIBVNCSERVER_HAVE_LIBSSL 1) +endif(OPENSSL_FOUND) + +if(WITH_IPv6) + if(WIN32 AND LIBVNCSERVER_HAVE_WS2TCPIP_H AND LIBVNCSERVER_HAVE_VPRINTF) + set(LIBVNCSERVER_IPv6 1) + endif() + if(NOT WIN32) + set(LIBVNCSERVER_IPv6 1) + endif() +endif(WITH_IPv6) -if(LIBVNCSERVER_HAVE_WS2TCPIP_H AND LIBVNCSERVER_HAVE_VPRINTF) - option(LIBVNCSERVER_IPv6 "Enable IPv6 Support" ON) +if(WITH_24BPP) + set(LIBVNCSERVER_ALLOW24BPP 1) endif() + if(CMAKE_USE_PTHREADS_INIT) set(LIBVNCSERVER_HAVE_LIBPTHREAD 1) endif(CMAKE_USE_PTHREADS_INIT) @@ -190,11 +295,23 @@ endif(NOT HAVE_LIBVNCSERVER_IN_ADDR_T) TEST_BIG_ENDIAN(LIBVNCSERVER_WORDS_BIGENDIAN) +if(WITH_SASL) + find_path(SASL2_INCLUDE_DIR sasl/sasl.h) + find_library(LIBSASL2_LIBRARIES sasl2 libsasl.lib) +endif(WITH_SASL) + +if(WITH_SASL AND LIBSASL2_LIBRARIES AND SASL2_INCLUDE_DIR) + message(STATUS "Building with SASL: ${LIBSASL2_LIBRARIES} and ${SASL2_INCLUDE_DIR}") + set(LIBVNCSERVER_HAVE_SASL 1) + set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${LIBSASL2_LIBRARIES}) + include_directories(${SASL2_INCLUDE_DIR}) +endif(WITH_SASL AND LIBSASL2_LIBRARIES AND SASL2_INCLUDE_DIR) + # TODO: # LIBVNCSERVER_ENOENT_WORKAROUND # inline -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rfb/rfbconfig.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/rfb/rfbconfig.h) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rfb/rfbconfig.h.cmakein ${CMAKE_CURRENT_BINARY_DIR}/rfb/rfbconfig.h) set(LIBVNCSERVER_SOURCES ${LIBVNCSERVER_DIR}/main.cc @@ -216,7 +333,6 @@ set(LIBVNCSERVER_SOURCES ${COMMON_DIR}/d3des.c ${COMMON_DIR}/vncauth.c ${LIBVNCSERVER_DIR}/cargs.c - ${COMMON_DIR}/minilzo.c ${LIBVNCSERVER_DIR}/ultra.c ${LIBVNCSERVER_DIR}/scale.c ) @@ -227,24 +343,51 @@ set(LIBVNCCLIENT_SOURCES ${LIBVNCCLIENT_DIR}/rfbproto.c ${LIBVNCCLIENT_DIR}/sockets.c ${LIBVNCCLIENT_DIR}/vncviewer.c - ${COMMON_DIR}/minilzo.c ) +if(JPEG_FOUND) + set(LIBVNCCLIENT_SOURCES + ${LIBVNCCLIENT_SOURCES} + ${COMMON_DIR}/turbojpeg.c + ) +endif() + if(GNUTLS_FOUND) set(LIBVNCCLIENT_SOURCES ${LIBVNCCLIENT_SOURCES} ${LIBVNCCLIENT_DIR}/tls_gnutls.c ) + set(LIBVNCSERVER_SOURCES + ${LIBVNCSERVER_SOURCES} + ${LIBVNCSERVER_DIR}/rfbssl_gnutls.c + ) + include_directories(${GNUTLS_INCLUDE_DIR}) elseif(OPENSSL_FOUND) set(LIBVNCCLIENT_SOURCES ${LIBVNCCLIENT_SOURCES} ${LIBVNCCLIENT_DIR}/tls_openssl.c ) + set(LIBVNCSERVER_SOURCES + ${LIBVNCSERVER_SOURCES} + ${LIBVNCSERVER_DIR}/rfbssl_openssl.c + ) + include_directories(${OPENSSL_INCLUDE_DIR}) else() set(LIBVNCCLIENT_SOURCES ${LIBVNCCLIENT_SOURCES} ${LIBVNCCLIENT_DIR}/tls_none.c ) + set(LIBVNCSERVER_SOURCES + ${LIBVNCSERVER_SOURCES} + ${LIBVNCSERVER_DIR}/rfbssl_none.c + ) +endif() + +if(LIBVNCSERVER_HAVE_SASL) + set(LIBVNCCLIENT_SOURCES + ${LIBVNCCLIENT_SOURCES} + ${LIBVNCCLIENT_DIR}/sasl.c + ) endif() if(ZLIB_FOUND) @@ -259,6 +402,20 @@ if(ZLIB_FOUND) ) endif(ZLIB_FOUND) +if(LZO_FOUND) + add_definitions(-DLIBVNCSERVER_HAVE_LZO) + include_directories(${LZO_INCLUDE_DIR}) +else() + set(LIBVNCSERVER_SOURCES + ${LIBVNCSERVER_SOURCES} + ${COMMON_DIR}/minilzo.c + ) + set(LIBVNCCLIENT_SOURCES + ${LIBVNCCLIENT_SOURCES} + ${COMMON_DIR}/minilzo.c + ) +endif() + if(JPEG_FOUND) add_definitions(-DLIBVNCSERVER_HAVE_LIBJPEG) include_directories(${JPEG_INCLUDE_DIR}) @@ -268,7 +425,6 @@ endif(JPEG_FOUND) if(PNG_FOUND) add_definitions(-DLIBVNCSERVER_HAVE_LIBPNG) include_directories(${PNG_INCLUDE_DIR}) - set(TIGHT_C ${LIBVNCSERVER_DIR}/tight.c ${COMMON_DIR}/turbojpeg.c) endif(PNG_FOUND) set(LIBVNCSERVER_SOURCES @@ -276,7 +432,7 @@ set(LIBVNCSERVER_SOURCES ${TIGHT_C} ) -if(TIGHTVNC_FILETRANSFER) +if(WITH_TIGHTVNC_FILETRANSFER AND CMAKE_USE_PTHREADS_INIT) set(LIBVNCSERVER_SOURCES ${LIBVNCSERVER_SOURCES} ${LIBVNCSERVER_DIR}/tightvnc-filetransfer/rfbtightserver.c @@ -284,14 +440,16 @@ if(TIGHTVNC_FILETRANSFER) ${LIBVNCSERVER_DIR}/tightvnc-filetransfer/filetransfermsg.c ${LIBVNCSERVER_DIR}/tightvnc-filetransfer/filelistinfo.c ) -endif(TIGHTVNC_FILETRANSFER) +endif(WITH_TIGHTVNC_FILETRANSFER AND CMAKE_USE_PTHREADS_INIT) if(LIBVNCSERVER_WITH_WEBSOCKETS) add_definitions(-DLIBVNCSERVER_WITH_WEBSOCKETS) set(LIBVNCSERVER_SOURCES ${LIBVNCSERVER_SOURCES} ${LIBVNCSERVER_DIR}/websockets.c - ${WSSRCS} + ${LIBVNCSERVER_DIR}/ws_decode.c + ${COMMON_DIR}/base64.c + ${CRYPTO_SOURCES} ) endif(LIBVNCSERVER_WITH_WEBSOCKETS) @@ -301,7 +459,13 @@ tde_add_library( tdevncclient STATIC_PIC AUTOMOC SOURCES ${LIBVNCCLIENT_SOURCES} LINK - pthread ${ADDITIONAL_LIBS} ${ZLIB_LIBRARIES} ${JPEG_LIBRARIES} ${GNUTLS_LIBRARIES} ${OPENSSL_LIBRARIES} + pthread + ${ADDITIONAL_LIBS} + ${ZLIB_LIBRARIES} + ${LZO_LIBRARIES} + ${JPEG_LIBRARIES} + ${GNUTLS_LIBRARIES} + ${OPENSSL_LIBRARIES} ) ##### tdevncserver (static) ######################## @@ -310,5 +474,12 @@ tde_add_library( tdevncserver STATIC_PIC AUTOMOC SOURCES ${LIBVNCSERVER_SOURCES} LINK - ${ADDITIONAL_LIBS} ${ZLIB_LIBRARIES} ${JPEG_LIBRARIES} ${PNG_LIBRARIES} ${WEBSOCKET_LIBRARIES} + ${ADDITIONAL_LIBS} + ${ZLIB_LIBRARIES} + ${LZO_LIBRARIES} + ${JPEG_LIBRARIES} + ${PNG_LIBRARIES} + ${CRYPTO_LIBRARIES} + ${GNUTLS_LIBRARIES} + ${OPENSSL_LIBRARIES} ) |