Blame CMakeLists.txt

Packit Service b05338
cmake_minimum_required(VERSION 2.6)
Packit Service b05338
cmake_policy(SET CMP0037 NEW)
Packit Service b05338
Packit Service b05338
project(LibVNCServer)
Packit Service b05338
include(CheckFunctionExists)
Packit Service b05338
include(CheckIncludeFile)
Packit Service b05338
include(CheckTypeSize)
Packit Service b05338
include(TestBigEndian)
Packit Service b05338
include(CheckCSourceCompiles)
Packit Service b05338
include(CheckCXXSourceCompiles)
Packit Service b05338
include(CheckCSourceRuns)
Packit Service b05338
Packit Service b05338
set(PACKAGE_NAME           "LibVNCServer")
Packit Service b05338
set(FULL_PACKAGE_NAME      "LibVNCServer")
Packit Service b05338
set(VERSION_MAJOR          "0")
Packit Service b05338
set(VERSION_MINOR          "9")
Packit Service b05338
set(VERSION_PATCHLEVEL     "11")
Packit Service b05338
set(VERSION_SO             "0")
Packit Service b05338
set(PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCHLEVEL}")
Packit Service b05338
set(PROJECT_BUGREPORT_PATH "http://sourceforge.net/projects/libvncserver")
Packit Service b05338
set(CMAKE_C_FLAGS "-O2 -W -Wall -g")
Packit Service b05338
set(LIBVNCSERVER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libvncserver)
Packit Service b05338
set(COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/common)
Packit Service b05338
set(LIBVNCCLIENT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libvncclient)
Packit Service b05338
set(LIBVNCSRVTEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/examples)
Packit Service b05338
set(LIBVNCCLITEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/client_examples)
Packit Service b05338
Packit Service b05338
Packit Service b05338
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libvncserver ${CMAKE_CURRENT_SOURCE_DIR}/common)
Packit Service b05338
Packit Service b05338
find_package(ZLIB)
Packit Service b05338
find_package(JPEG)
Packit Service b05338
find_package(PNG)
Packit Service b05338
find_package(SDL)
Packit Service b05338
find_package(GnuTLS)
Packit Service b05338
find_package(Threads)
Packit Service b05338
find_package(X11)
Packit Service b05338
find_package(OpenSSL)
Packit Service b05338
find_package(PkgConfig)
Packit Service b05338
find_library(LIBGCRYPT_LIBRARIES gcrypt)
Packit Service b05338
Packit Service b05338
# Check whether the version of libjpeg we found was libjpeg-turbo and print a
Packit Service b05338
# warning if not.
Packit Service b05338
set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARIES})
Packit Service b05338
set(CMAKE_REQUIRED_FLAGS -I${JPEG_INCLUDE_DIR})
Packit Service b05338
Packit Service b05338
set(JPEG_TEST_SOURCE "\n
Packit Service b05338
  #include <stdio.h>\n
Packit Service b05338
  #include <jpeglib.h>\n
Packit Service b05338
  int main(void) {\n
Packit Service b05338
    struct jpeg_compress_struct cinfo;\n
Packit Service b05338
    struct jpeg_error_mgr jerr;\n
Packit Service b05338
    cinfo.err=jpeg_std_error(&jerr);\n
Packit Service b05338
    jpeg_create_compress(&cinfo);\n
Packit Service b05338
    cinfo.input_components = 3;\n
Packit Service b05338
    jpeg_set_defaults(&cinfo);\n
Packit Service b05338
    cinfo.in_color_space = JCS_EXT_RGB;\n
Packit Service b05338
    jpeg_default_colorspace(&cinfo);\n
Packit Service b05338
    return 0;\n
Packit Service b05338
  }")
Packit Service b05338
Packit Service b05338
if(CMAKE_CROSSCOMPILING)
Packit Service b05338
  check_c_source_compiles("${JPEG_TEST_SOURCE}" FOUND_LIBJPEG_TURBO)
Packit Service b05338
else()
Packit Service b05338
  check_c_source_runs("${JPEG_TEST_SOURCE}" FOUND_LIBJPEG_TURBO)
Packit Service b05338
endif()
Packit Service b05338
Packit Service b05338
set(CMAKE_REQUIRED_LIBRARIES)
Packit Service b05338
set(CMAKE_REQUIRED_FLAGS)
Packit Service b05338
set(CMAKE_REQUIRED_DEFINITIONS)
Packit Service b05338
Packit Service b05338
if(NOT FOUND_LIBJPEG_TURBO)
Packit Service b05338
  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/ ***")
Packit Service b05338
endif()
Packit Service b05338
Packit Service b05338
# On systems such as GNU/Linux with glibc, __b64_ntop is defined in a
Packit Service b05338
# separate library, libresolv. On some others, such as FreeBSD, it is
Packit Service b05338
# part of libc itself. We first check if __b64_ntop is found without
Packit Service b05338
# additional libraries, and then try looking for it with libresolv if
Packit Service b05338
# the first test fails.
Packit Service b05338
check_function_exists(__b64_ntop HAVE_B64_IN_LIBC)
Packit Service b05338
if(NOT HAVE_B64_IN_LIBC)
Packit Service b05338
    set(CMAKE_REQUIRED_LIBRARIES resolv)
Packit Service b05338
    check_function_exists(__b64_ntop HAVE_B64_IN_LIBRESOLV)
Packit Service b05338
    set(CMAKE_REQUIRED_LIBRARIES)
Packit Service b05338
Packit Service b05338
    if(HAVE_B64_IN_LIBRESOLV)
Packit Service b05338
        set(RESOLV_LIB "resolv")
Packit Service b05338
    endif(HAVE_B64_IN_LIBRESOLV)
Packit Service b05338
endif(NOT HAVE_B64_IN_LIBC)
Packit Service b05338
Packit Service b05338
if(Threads_FOUND)
Packit Service b05338
  option(TIGHTVNC_FILETRANSFER "Enable filetransfer" ON)
Packit Service b05338
endif(Threads_FOUND)
Packit Service b05338
if(ZLIB_FOUND)
Packit Service b05338
  set(LIBVNCSERVER_HAVE_LIBZ 1)
Packit Service b05338
endif(ZLIB_FOUND)
Packit Service b05338
if(JPEG_FOUND)
Packit Service b05338
  set(LIBVNCSERVER_HAVE_LIBJPEG 1)
Packit Service b05338
endif(JPEG_FOUND)
Packit Service b05338
if(PNG_FOUND)
Packit Service b05338
  set(LIBVNCSERVER_HAVE_LIBPNG 1)
Packit Service b05338
endif(PNG_FOUND)
Packit Service b05338
option(LIBVNCSERVER_ALLOW24BPP "Allow 24 bpp" ON)
Packit Service b05338
Packit Service b05338
pkg_check_modules(SYSTEMD "libsystemd")
Packit Service b05338
if(SYSTEMD_FOUND)
Packit Service b05338
  option(LIBVNCSERVER_WITH_SYSTEMD "Build with systemd socket activation support" ON)
Packit Service b05338
endif(SYSTEMD_FOUND)
Packit Service b05338
Packit Service b05338
if(LIBVNCSERVER_WITH_SYSTEMD)
Packit Service b05338
  add_definitions(-DLIBVNCSERVER_WITH_SYSTEMD)
Packit Service b05338
  include_directories(${SYSTEMD_INCLUDE_DIRS})
Packit Service b05338
  set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${SYSTEMD_LIBRARIES})
Packit Service b05338
endif(LIBVNCSERVER_WITH_SYSTEMD)
Packit Service b05338
Packit Service b05338
if(GNUTLS_FOUND)
Packit Service b05338
  set(LIBVNCSERVER_WITH_CLIENT_TLS 1)
Packit Service b05338
  option(LIBVNCSERVER_WITH_WEBSOCKETS "Build with websockets support (gnutls)" ON)
Packit Service b05338
  set(WEBSOCKET_LIBRARIES ${RESOLV_LIB} ${GNUTLS_LIBRARIES})
Packit Service b05338
  set(WSSRCS ${LIBVNCSERVER_DIR}/rfbssl_gnutls ${LIBVNCSERVER_DIR}/rfbcrypto_gnutls)
Packit Service b05338
  include_directories(${GNUTLS_INCLUDE_DIR})
Packit Service b05338
elseif(OPENSSL_FOUND)
Packit Service b05338
  option(LIBVNCSERVER_WITH_WEBSOCKETS "Build with websockets support (openssl)" ON)
Packit Service b05338
  set(WEBSOCKET_LIBRARIES ${RESOLV_LIB} ${OPENSSL_LIBRARIES})
Packit Service b05338
  set(WSSRCS ${LIBVNCSERVER_DIR}/rfbssl_openssl ${LIBVNCSERVER_DIR}/rfbcrypto_openssl)
Packit Service b05338
  include_directories(${OPENSSL_INCLUDE_DIR})
Packit Service b05338
else()
Packit Service b05338
  option(LIBVNCSERVER_WITH_WEBSOCKETS "Build with websockets support (no ssl)" ON)
Packit Service b05338
  set(WEBSOCKET_LIBRARIES ${RESOLV_LIB})
Packit Service b05338
  set(WSSRCS ${LIBVNCSERVER_DIR}/rfbssl_none.c ${LIBVNCSERVER_DIR}/rfbcrypto_included.c ${COMMON_DIR}/md5.c ${COMMON_DIR}/sha1.c)
Packit Service b05338
endif()
Packit Service b05338
Packit Service b05338
if(LIBGCRYPT_LIBRARIES)
Packit Service b05338
  message(STATUS "Found libgcrypt: ${LIBGCRYPT_LIBRARIES}")
Packit Service b05338
  set(LIBVNCSERVER_WITH_CLIENT_GCRYPT 1)
Packit Service b05338
  set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${LIBGCRYPT_LIBRARIES})
Packit Service b05338
endif(LIBGCRYPT_LIBRARIES)
Packit Service b05338
Packit Service b05338
Packit Service b05338
check_include_file("endian.h"      LIBVNCSERVER_HAVE_ENDIAN_H)
Packit Service b05338
check_include_file("fcntl.h"       LIBVNCSERVER_HAVE_FCNTL_H)
Packit Service b05338
check_include_file("netinet/in.h"  LIBVNCSERVER_HAVE_NETINET_IN_H)
Packit Service b05338
check_include_file("sys/endian.h"  LIBVNCSERVER_HAVE_SYS_ENDIAN_H)
Packit Service b05338
check_include_file("sys/socket.h"  LIBVNCSERVER_HAVE_SYS_SOCKET_H)
Packit Service b05338
check_include_file("sys/stat.h"    LIBVNCSERVER_HAVE_SYS_STAT_H)
Packit Service b05338
check_include_file("sys/time.h"    LIBVNCSERVER_HAVE_SYS_TIME_H)
Packit Service b05338
check_include_file("sys/types.h"   LIBVNCSERVER_HAVE_SYS_TYPES_H)
Packit Service b05338
check_include_file("sys/wait.h"    LIBVNCSERVER_HAVE_SYS_WAIT_H)
Packit Service b05338
check_include_file("unistd.h"      LIBVNCSERVER_HAVE_UNISTD_H)
Packit Service b05338
Packit Service b05338
# headers needed for check_type_size()
Packit Service b05338
check_include_file("vfork.h"       LIBVNCSERVER_HAVE_VFORK_H)
Packit Service b05338
check_include_file("ws2tcpip.h"    LIBVNCSERVER_HAVE_WS2TCPIP_H)
Packit Service b05338
check_include_file("arpa/inet.h"   HAVE_ARPA_INET_H)
Packit Service b05338
check_include_file("stdint.h"      HAVE_STDINT_H)
Packit Service b05338
check_include_file("stddef.h"      HAVE_STDDEF_H)
Packit Service b05338
check_include_file("sys/types.h"   HAVE_SYS_TYPES_H)
Packit Service b05338
Packit Service b05338
check_function_exists(gettimeofday    LIBVNCSERVER_HAVE_GETTIMEOFDAY)
Packit Service b05338
check_function_exists(vfork           LIBVNCSERVER_HAVE_VFORK)
Packit Service b05338
check_function_exists(vprintf         LIBVNCSERVER_HAVE_VPRINTF)
Packit Service b05338
Packit Service b05338
Packit Service b05338
if(LIBVNCSERVER_HAVE_WS2TCPIP_H AND LIBVNCSERVER_HAVE_VPRINTF)
Packit Service b05338
	option(LIBVNCSERVER_IPv6 "Enable IPv6 Support" ON)
Packit Service b05338
endif()
Packit Service b05338
Packit Service b05338
if(CMAKE_USE_PTHREADS_INIT)
Packit Service b05338
  set(LIBVNCSERVER_HAVE_LIBPTHREAD 1)
Packit Service b05338
endif(CMAKE_USE_PTHREADS_INIT)
Packit Service b05338
if(LIBVNCSERVER_HAVE_SYS_SOCKET_H)
Packit Service b05338
  # socklen_t
Packit Service b05338
  list(APPEND CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h")
Packit Service b05338
endif(LIBVNCSERVER_HAVE_SYS_SOCKET_H)
Packit Service b05338
if(HAVE_ARPA_INET_H)
Packit Service b05338
  # in_addr_t
Packit Service b05338
  list(APPEND CMAKE_EXTRA_INCLUDE_FILES "arpa/inet.h")
Packit Service b05338
endif(HAVE_ARPA_INET_H)
Packit Service b05338
Packit Service b05338
check_type_size(pid_t     LIBVNCSERVER_PID_T)
Packit Service b05338
check_type_size(size_t    LIBVNCSERVER_SIZE_T)
Packit Service b05338
check_type_size(socklen_t LIBVNCSERVER_SOCKLEN_T)
Packit Service b05338
check_type_size(in_addr_t LIBVNCSERVER_IN_ADDR_T)
Packit Service b05338
if(NOT HAVE_LIBVNCSERVER_IN_ADDR_T)
Packit Service b05338
  set(LIBVNCSERVER_NEED_INADDR_T 1)
Packit Service b05338
endif(NOT HAVE_LIBVNCSERVER_IN_ADDR_T)
Packit Service b05338
Packit Service b05338
TEST_BIG_ENDIAN(LIBVNCSERVER_WORDS_BIGENDIAN)
Packit Service b05338
Packit Service b05338
# TODO:
Packit Service b05338
# LIBVNCSERVER_ENOENT_WORKAROUND
Packit Service b05338
# inline
Packit Service b05338
Packit Service b05338
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rfb/rfbconfig.h.cmake ${CMAKE_BINARY_DIR}/rfb/rfbconfig.h)
Packit Service b05338
Packit Service b05338
set(LIBVNCSERVER_SOURCES
Packit Service b05338
    ${LIBVNCSERVER_DIR}/main.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/rfbserver.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/rfbregion.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/auth.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/sockets.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/stats.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/corre.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/hextile.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/rre.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/translate.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/cutpaste.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/httpd.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/cursor.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/font.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/draw.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/selbox.c
Packit Service b05338
    ${COMMON_DIR}/d3des.c
Packit Service b05338
    ${COMMON_DIR}/vncauth.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/cargs.c
Packit Service b05338
    ${COMMON_DIR}/minilzo.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/ultra.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/scale.c
Packit Service b05338
)
Packit Service b05338
Packit Service b05338
set(LIBVNCCLIENT_SOURCES
Packit Service b05338
    ${LIBVNCCLIENT_DIR}/cursor.c
Packit Service b05338
    ${LIBVNCCLIENT_DIR}/listen.c
Packit Service b05338
    ${LIBVNCCLIENT_DIR}/rfbproto.c
Packit Service b05338
    ${LIBVNCCLIENT_DIR}/sockets.c
Packit Service b05338
    ${LIBVNCCLIENT_DIR}/vncviewer.c
Packit Service b05338
    ${COMMON_DIR}/minilzo.c
Packit Service b05338
)
Packit Service b05338
Packit Service b05338
if(GNUTLS_FOUND)
Packit Service b05338
  set(LIBVNCCLIENT_SOURCES
Packit Service b05338
    ${LIBVNCCLIENT_SOURCES}
Packit Service b05338
    ${LIBVNCCLIENT_DIR}/tls_gnutls.c
Packit Service b05338
  )
Packit Service b05338
elseif(OPENSSL_FOUND)
Packit Service b05338
  set(LIBVNCCLIENT_SOURCES
Packit Service b05338
    ${LIBVNCCLIENT_SOURCES}
Packit Service b05338
    ${LIBVNCCLIENT_DIR}/tls_openssl.c
Packit Service b05338
  )
Packit Service b05338
else()
Packit Service b05338
  set(LIBVNCCLIENT_SOURCES
Packit Service b05338
    ${LIBVNCCLIENT_SOURCES}
Packit Service b05338
    ${LIBVNCCLIENT_DIR}/tls_none.c
Packit Service b05338
  )
Packit Service b05338
endif()
Packit Service b05338
Packit Service b05338
if(ZLIB_FOUND)
Packit Service b05338
  add_definitions(-DLIBVNCSERVER_HAVE_LIBZ)
Packit Service b05338
  include_directories(${ZLIB_INCLUDE_DIR})
Packit Service b05338
  set(LIBVNCSERVER_SOURCES
Packit Service b05338
    ${LIBVNCSERVER_SOURCES}
Packit Service b05338
    ${LIBVNCSERVER_DIR}/zlib.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/zrle.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/zrleoutstream.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/zrlepalettehelper.c
Packit Service b05338
  )
Packit Service b05338
endif(ZLIB_FOUND)
Packit Service b05338
Packit Service b05338
if(JPEG_FOUND)
Packit Service b05338
  add_definitions(-DLIBVNCSERVER_HAVE_LIBJPEG)
Packit Service b05338
  include_directories(${JPEG_INCLUDE_DIR})
Packit Service b05338
  set(TIGHT_C ${LIBVNCSERVER_DIR}/tight.c ${COMMON_DIR}/turbojpeg.c)
Packit Service b05338
endif(JPEG_FOUND)
Packit Service b05338
Packit Service b05338
if(PNG_FOUND)
Packit Service b05338
  add_definitions(-DLIBVNCSERVER_HAVE_LIBPNG)
Packit Service b05338
  include_directories(${PNG_INCLUDE_DIR})
Packit Service b05338
  set(TIGHT_C ${LIBVNCSERVER_DIR}/tight.c ${COMMON_DIR}/turbojpeg.c)
Packit Service b05338
endif(PNG_FOUND)
Packit Service b05338
Packit Service b05338
set(LIBVNCSERVER_SOURCES
Packit Service b05338
    ${LIBVNCSERVER_SOURCES}
Packit Service b05338
    ${TIGHT_C}
Packit Service b05338
)
Packit Service b05338
Packit Service b05338
if(TIGHTVNC_FILETRANSFER)
Packit Service b05338
  set(LIBVNCSERVER_SOURCES
Packit Service b05338
    ${LIBVNCSERVER_SOURCES}
Packit Service b05338
    ${LIBVNCSERVER_DIR}/tightvnc-filetransfer/rfbtightserver.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/tightvnc-filetransfer/handlefiletransferrequest.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/tightvnc-filetransfer/filetransfermsg.c
Packit Service b05338
    ${LIBVNCSERVER_DIR}/tightvnc-filetransfer/filelistinfo.c
Packit Service b05338
  )
Packit Service b05338
endif(TIGHTVNC_FILETRANSFER)
Packit Service b05338
Packit Service b05338
if(LIBVNCSERVER_WITH_WEBSOCKETS)
Packit Service b05338
  add_definitions(-DLIBVNCSERVER_WITH_WEBSOCKETS)
Packit Service b05338
  set(LIBVNCSERVER_SOURCES
Packit Service b05338
    ${LIBVNCSERVER_SOURCES}
Packit Service b05338
    ${LIBVNCSERVER_DIR}/websockets.c
Packit Service b05338
    ${WSSRCS}
Packit Service b05338
  )
Packit Service b05338
endif(LIBVNCSERVER_WITH_WEBSOCKETS)
Packit Service b05338
Packit Service b05338
Packit Service b05338
add_library(vncclient SHARED ${LIBVNCCLIENT_SOURCES})
Packit Service b05338
add_library(vncserver SHARED ${LIBVNCSERVER_SOURCES})
Packit Service b05338
if(WIN32)
Packit Service b05338
  set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ws2_32)
Packit Service b05338
endif(WIN32)
Packit Service b05338
Packit Service b05338
target_link_libraries(vncclient
Packit Service b05338
                      ${ADDITIONAL_LIBS}
Packit Service b05338
                      ${ZLIB_LIBRARIES}
Packit Service b05338
                      ${JPEG_LIBRARIES}
Packit Service b05338
                      ${GNUTLS_LIBRARIES}
Packit Service b05338
                      ${OPENSSL_LIBRARIES}
Packit Service b05338
)
Packit Service b05338
target_link_libraries(vncserver
Packit Service b05338
                      ${ADDITIONAL_LIBS}
Packit Service b05338
                      ${ZLIB_LIBRARIES}
Packit Service b05338
                      ${JPEG_LIBRARIES}
Packit Service b05338
		      ${PNG_LIBRARIES}
Packit Service b05338
		      ${WEBSOCKET_LIBRARIES}
Packit Service b05338
)
Packit Service b05338
Packit Service b05338
SET_TARGET_PROPERTIES(vncclient vncserver
Packit Service b05338
		PROPERTIES SOVERSION "${VERSION_SO}" VERSION "${PACKAGE_VERSION}"
Packit Service b05338
)
Packit Service b05338
Packit Service b05338
# tests
Packit Service b05338
set(LIBVNCSERVER_TESTS
Packit Service b05338
    backchannel
Packit Service b05338
    camera
Packit Service b05338
    colourmaptest
Packit Service b05338
    example
Packit Service b05338
    fontsel
Packit Service b05338
    pnmshow
Packit Service b05338
    pnmshow24
Packit Service b05338
    regiontest
Packit Service b05338
    rotate
Packit Service b05338
    simple
Packit Service b05338
    simple15
Packit Service b05338
    storepasswd
Packit Service b05338
    vncev
Packit Service b05338
  )
Packit Service b05338
Packit Service b05338
if(Threads_FOUND)
Packit Service b05338
  set(LIBVNCSERVER_TESTS
Packit Service b05338
    ${LIBVNCSERVER_TESTS}
Packit Service b05338
    blooptest
Packit Service b05338
  )
Packit Service b05338
endif(Threads_FOUND)
Packit Service b05338
Packit Service b05338
if(TIGHTVNC_FILETRANSFER)
Packit Service b05338
  set(LIBVNCSERVER_TESTS
Packit Service b05338
    ${LIBVNCSERVER_TESTS}
Packit Service b05338
    filetransfer
Packit Service b05338
  )
Packit Service b05338
endif(TIGHTVNC_FILETRANSFER)
Packit Service b05338
Packit Service b05338
if(MACOS)
Packit Service b05338
  set(LIBVNCSERVER_TESTS
Packit Service b05338
    ${LIBVNCSERVER_TESTS}
Packit Service b05338
    mac
Packit Service b05338
  )
Packit Service b05338
endif(MACOS)
Packit Service b05338
Packit Service b05338
set(LIBVNCCLIENT_TESTS
Packit Service b05338
    backchannel
Packit Service b05338
    ppmtest
Packit Service b05338
)
Packit Service b05338
Packit Service b05338
if(SDL_FOUND)
Packit Service b05338
  include_directories(${SDL_INCLUDE_DIR})
Packit Service b05338
  set(LIBVNCCLIENT_TESTS
Packit Service b05338
    ${LIBVNCCLIENT_TESTS}
Packit Service b05338
    SDLvncviewer
Packit Service b05338
  )
Packit Service b05338
  set(SDLvncviewer_EXTRA_SOURCES scrap.c)
Packit Service b05338
endif(SDL_FOUND)
Packit Service b05338
Packit Service b05338
if(HAVE_FFMPEG)
Packit Service b05338
  set(LIBVNCCLIENT_TESTS
Packit Service b05338
    ${LIBVNCCLIENT_TESTS}
Packit Service b05338
    vnc2mpg
Packit Service b05338
  )
Packit Service b05338
endif(HAVE_FFMPEG)
Packit Service b05338
Packit Service b05338
Packit Service b05338
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/examples)
Packit Service b05338
foreach(test ${LIBVNCSERVER_TESTS})
Packit Service b05338
  add_executable(examples_${test} ${LIBVNCSRVTEST_DIR}/${test}.c)
Packit Service b05338
  target_link_libraries(examples_${test} vncserver ${CMAKE_THREAD_LIBS_INIT})
Packit Service b05338
endforeach(test ${LIBVNCSERVER_TESTS})
Packit Service b05338
Packit Service b05338
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/client_examples)
Packit Service b05338
foreach(test ${LIBVNCCLIENT_TESTS})
Packit Service b05338
  add_executable(client_examples_${test} ${LIBVNCCLITEST_DIR}/${test}.c ${LIBVNCCLITEST_DIR}/${${test}_EXTRA_SOURCES} )
Packit Service b05338
  target_link_libraries(client_examples_${test} vncclient ${CMAKE_THREAD_LIBS_INIT} ${X11_LIBRARIES} ${SDL_LIBRARY} ${FFMPEG_LIBRARIES})
Packit Service b05338
endforeach(test ${LIBVNCCLIENT_TESTS})
Packit Service b05338
Packit Service b05338
install_targets(/lib vncserver)
Packit Service b05338
install_targets(/lib vncclient)
Packit Service b05338
install_files(/include/rfb FILES
Packit Service b05338
    rfb/keysym.h
Packit Service b05338
    rfb/rfb.h
Packit Service b05338
    rfb/rfbclient.h
Packit Service b05338
    rfb/rfbconfig.h
Packit Service b05338
    rfb/rfbproto.h
Packit Service b05338
    rfb/rfbregion.h
Packit Service b05338
)