cmake_minimum_required ( VERSION 3.1 )
if ( POLICY CMP0037 )
cmake_policy ( SET CMP0037 NEW )
endif ( POLICY CMP0037 )
project ( LibVNCServer )
include ( CheckFunctionExists )
include ( CheckSymbolExists )
include ( CheckIncludeFile )
include ( CheckTypeSize )
include ( TestBigEndian )
include ( CheckCSourceCompiles )
include ( CheckCSourceRuns )
enable_testing ( )
set ( PACKAGE_NAME "LibVNCServer" )
set ( FULL_PACKAGE_NAME "LibVNCServer" )
set ( VERSION_MAJOR "0" )
set ( VERSION_MINOR "9" )
set ( VERSION_PATCHLEVEL "12" )
set ( VERSION_SO "1" )
set ( PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCHLEVEL}" )
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 ( 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_CURRENT_SOURCE_DIR}/cmake/Modules/" )
include_directories ( ${ CMAKE_CURRENT_SOURCE_DIR } ${ CMAKE_CURRENT_BINARY_DIR } ${ CMAKE_CURRENT_SOURCE_DIR } /libvncserver ${ CMAKE_CURRENT_SOURCE_DIR } /common )
# 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" OFF )
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 ( )
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
i n t main ( void ) { \ n
s t r u c t j p e g _ c o m p r e s s _ s t r u c t c i n f o ; \ n
s t r u c t j p e g _ e r r o r _ m g r j e r r ; \ n
c i n f o . e r r = jpeg_std_error ( &jerr ) ; \ n
jpeg_create_compress ( &cinfo ) ; \ n
c i n f o . i n p u t _ c o m p o n e n t s = 3 ; \ n
jpeg_set_defaults ( &cinfo ) ; \ n
c i n f o . i n _ c o l o r _ s p a c e = J C S _ E X T _ R G B ; \ n
jpeg_default_colorspace ( &cinfo ) ; \ n
r e t u r n 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 ( )
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 ( )
endif ( JPEG_FOUND )
endif ( WITH_JPEG )
if ( WITH_PNG )
find_package ( PNG )
endif ( WITH_PNG )
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 ( 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 )
check_include_file ( "fcntl.h" LIBVNCSERVER_HAVE_FCNTL_H )
check_include_file ( "netinet/in.h" LIBVNCSERVER_HAVE_NETINET_IN_H )
check_include_file ( "sys/endian.h" LIBVNCSERVER_HAVE_SYS_ENDIAN_H )
check_include_file ( "sys/socket.h" LIBVNCSERVER_HAVE_SYS_SOCKET_H )
check_include_file ( "sys/stat.h" LIBVNCSERVER_HAVE_SYS_STAT_H )
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 )
check_include_file ( "ws2tcpip.h" LIBVNCSERVER_HAVE_WS2TCPIP_H )
check_include_file ( "arpa/inet.h" HAVE_ARPA_INET_H )
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 ( WITH_24BPP )
set ( LIBVNCSERVER_ALLOW24BPP 1 )
endif ( )
if ( CMAKE_USE_PTHREADS_INIT )
set ( LIBVNCSERVER_HAVE_LIBPTHREAD 1 )
endif ( CMAKE_USE_PTHREADS_INIT )
if ( LIBVNCSERVER_HAVE_SYS_SOCKET_H )
# socklen_t
list ( APPEND CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h" )
endif ( LIBVNCSERVER_HAVE_SYS_SOCKET_H )
if ( HAVE_ARPA_INET_H )
# in_addr_t
list ( APPEND CMAKE_EXTRA_INCLUDE_FILES "arpa/inet.h" )
endif ( HAVE_ARPA_INET_H )
check_type_size ( pid_t LIBVNCSERVER_PID_T )
check_type_size ( size_t LIBVNCSERVER_SIZE_T )
check_type_size ( socklen_t LIBVNCSERVER_SOCKLEN_T )
check_type_size ( in_addr_t LIBVNCSERVER_IN_ADDR_T )
if ( NOT HAVE_LIBVNCSERVER_IN_ADDR_T )
set ( LIBVNCSERVER_NEED_INADDR_T 1 )
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.cmakein ${ CMAKE_CURRENT_BINARY_DIR } /rfb/rfbconfig.h )
set ( LIBVNCSERVER_SOURCES
$ { L I B V N C S E R V E R _ D I R } / m a i n . c p p
$ { L I B V N C S E R V E R _ D I R } / r f b s e r v e r . c
$ { L I B V N C S E R V E R _ D I R } / r f b r e g i o n . c
$ { L I B V N C S E R V E R _ D I R } / a u t h . c
$ { L I B V N C S E R V E R _ D I R } / s o c k e t s . c
$ { L I B V N C S E R V E R _ D I R } / s t a t s . c
$ { L I B V N C S E R V E R _ D I R } / c o r r e . c
$ { L I B V N C S E R V E R _ D I R } / h e x t i l e . c
$ { L I B V N C S E R V E R _ D I R } / r r e . c
$ { L I B V N C S E R V E R _ D I R } / t r a n s l a t e . c
$ { L I B V N C S E R V E R _ D I R } / c u t p a s t e . c
$ { L I B V N C S E R V E R _ D I R } / h t t p d . c
$ { L I B V N C S E R V E R _ D I R } / c u r s o r . c
$ { L I B V N C S E R V E R _ D I R } / f o n t . c
$ { L I B V N C S E R V E R _ D I R } / d r a w . c
$ { L I B V N C S E R V E R _ D I R } / s e l b o x . c
$ { C O M M O N _ D I R } / d 3 d e s . c
$ { C O M M O N _ D I R } / v n c a u t h . c
$ { L I B V N C S E R V E R _ D I R } / c a r g s . c
$ { L I B V N C S E R V E R _ D I R } / u l t r a . c
$ { L I B V N C S E R V E R _ D I R } / s c a l e . c
)
set ( LIBVNCCLIENT_SOURCES
$ { L I B V N C C L I E N T _ D I R } / c u r s o r . c
$ { L I B V N C C L I E N T _ D I R } / l i s t e n . c
$ { L I B V N C C L I E N T _ D I R } / r f b p r o t o . c
$ { L I B V N C C L I E N T _ D I R } / s o c k e t s . c
$ { L I B V N C C L I E N T _ D I R } / v n c v i e w e r . c
)
if ( JPEG_FOUND )
set ( LIBVNCCLIENT_SOURCES
$ { L I B V N C C L I E N T _ S O U R C E S }
$ { C O M M O N _ D I R } / t u r b o j p e g . c
)
endif ( )
if ( GNUTLS_FOUND )
set ( LIBVNCCLIENT_SOURCES
$ { L I B V N C C L I E N T _ S O U R C E S }
$ { L I B V N C C L I E N T _ D I R } / t l s _ g n u t l s . c
)
set ( LIBVNCSERVER_SOURCES
$ { L I B V N C S E R V E R _ S O U R C E S }
$ { L I B V N C S E R V E R _ D I R } / r f b s s l _ g n u t l s . c
)
include_directories ( ${ GNUTLS_INCLUDE_DIR } )
elseif ( OPENSSL_FOUND )
set ( LIBVNCCLIENT_SOURCES
$ { L I B V N C C L I E N T _ S O U R C E S }
$ { L I B V N C C L I E N T _ D I R } / t l s _ o p e n s s l . c
)
set ( LIBVNCSERVER_SOURCES
$ { L I B V N C S E R V E R _ S O U R C E S }
$ { L I B V N C S E R V E R _ D I R } / r f b s s l _ o p e n s s l . c
)
include_directories ( ${ OPENSSL_INCLUDE_DIR } )
else ( )
set ( LIBVNCCLIENT_SOURCES
$ { L I B V N C C L I E N T _ S O U R C E S }
$ { L I B V N C C L I E N T _ D I R } / t l s _ n o n e . c
)
set ( LIBVNCSERVER_SOURCES
$ { L I B V N C S E R V E R _ S O U R C E S }
$ { L I B V N C S E R V E R _ D I R } / r f b s s l _ n o n e . c
)
endif ( )
if ( LIBVNCSERVER_HAVE_SASL )
set ( LIBVNCCLIENT_SOURCES
$ { L I B V N C C L I E N T _ S O U R C E S }
$ { L I B V N C C L I E N T _ D I R } / s a s l . c
)
endif ( )
if ( ZLIB_FOUND )
add_definitions ( -DLIBVNCSERVER_HAVE_LIBZ )
include_directories ( ${ ZLIB_INCLUDE_DIR } )
set ( LIBVNCSERVER_SOURCES
$ { L I B V N C S E R V E R _ S O U R C E S }
$ { L I B V N C S E R V E R _ D I R } / z l i b . c
$ { L I B V N C S E R V E R _ D I R } / z r l e . c
$ { L I B V N C S E R V E R _ D I R } / z r l e o u t s t r e a m . c
$ { L I B V N C S E R V E R _ D I R } / z r l e p a l e t t e h e l p e r . c
)
endif ( ZLIB_FOUND )
if ( LZO_FOUND )
add_definitions ( -DLIBVNCSERVER_HAVE_LZO )
include_directories ( ${ LZO_INCLUDE_DIR } )
else ( )
set ( LIBVNCSERVER_SOURCES
$ { L I B V N C S E R V E R _ S O U R C E S }
$ { C O M M O N _ D I R } / m i n i l z o . c
)
set ( LIBVNCCLIENT_SOURCES
$ { L I B V N C C L I E N T _ S O U R C E S }
$ { C O M M O N _ D I R } / m i n i l z o . c
)
endif ( )
if ( JPEG_FOUND )
add_definitions ( -DLIBVNCSERVER_HAVE_LIBJPEG )
include_directories ( ${ JPEG_INCLUDE_DIR } )
set ( TIGHT_C ${ LIBVNCSERVER_DIR } /tight.c ${ COMMON_DIR } /turbojpeg.c )
endif ( JPEG_FOUND )
if ( PNG_FOUND )
add_definitions ( -DLIBVNCSERVER_HAVE_LIBPNG )
include_directories ( ${ PNG_INCLUDE_DIR } )
endif ( PNG_FOUND )
set ( LIBVNCSERVER_SOURCES
$ { L I B V N C S E R V E R _ S O U R C E S }
$ { T I G H T _ C }
)
if ( WITH_TIGHTVNC_FILETRANSFER AND CMAKE_USE_PTHREADS_INIT )
set ( LIBVNCSERVER_SOURCES
$ { L I B V N C S E R V E R _ S O U R C E S }
$ { L I B V N C S E R V E R _ D I R } / t i g h t v n c - f i l e t r a n s f e r / r f b t i g h t s e r v e r . c
$ { L I B V N C S E R V E R _ D I R } / t i g h t v n c - f i l e t r a n s f e r / h a n d l e f i l e t r a n s f e r r e q u e s t . c
$ { L I B V N C S E R V E R _ D I R } / t i g h t v n c - f i l e t r a n s f e r / f i l e t r a n s f e r m s g . c
$ { L I B V N C S E R V E R _ D I R } / t i g h t v n c - f i l e t r a n s f e r / f i l e l i s t i n f o . c
)
endif ( WITH_TIGHTVNC_FILETRANSFER AND CMAKE_USE_PTHREADS_INIT )
if ( LIBVNCSERVER_WITH_WEBSOCKETS )
add_definitions ( -DLIBVNCSERVER_WITH_WEBSOCKETS )
set ( LIBVNCSERVER_SOURCES
$ { L I B V N C S E R V E R _ S O U R C E S }
$ { L I B V N C S E R V E R _ D I R } / w e b s o c k e t s . c
$ { L I B V N C S E R V E R _ D I R } / w s _ d e c o d e . c
$ { C O M M O N _ D I R } / b a s e 6 4 . c
$ { C R Y P T O _ S O U R C E S }
)
endif ( LIBVNCSERVER_WITH_WEBSOCKETS )
##### tdevncclient (static) ########################
tde_add_library ( tdevncclient STATIC_PIC AUTOMOC
S O U R C E S
$ { L I B V N C C L I E N T _ S O U R C E S }
L I N K
p t h r e a d
$ { A D D I T I O N A L _ L I B S }
$ { Z L I B _ L I B R A R I E S }
$ { L Z O _ L I B R A R I E S }
$ { J P E G _ L I B R A R I E S }
$ { G N U T L S _ L I B R A R I E S }
$ { O P E N S S L _ L I B R A R I E S }
)
##### tdevncserver (static) ########################
tde_add_library ( tdevncserver STATIC_PIC AUTOMOC
S O U R C E S
$ { L I B V N C S E R V E R _ S O U R C E S }
L I N K
$ { A D D I T I O N A L _ L I B S }
$ { Z L I B _ L I B R A R I E S }
$ { L Z O _ L I B R A R I E S }
$ { J P E G _ L I B R A R I E S }
$ { P N G _ L I B R A R I E S }
$ { C R Y P T O _ L I B R A R I E S }
$ { G N U T L S _ L I B R A R I E S }
$ { O P E N S S L _ L I B R A R I E S }
)