cmake_minimum_required(VERSION 3.4)
project(rmvncclient)

option(CHECK_INCLUDES "Run include-what-you-use to check #includes" OFF)
option(TRACE "Print tracing messages on standard output" OFF)

if(CHECK_INCLUDES)
    find_program(IWYU_PATH include-what-you-use)

    if(NOT IWYU_PATH)
        message(FATAL_ERROR "Could not find include-what-you-use")
    endif()

    set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE ${IWYU_PATH})
endif()

if(TRACE)
    message(STATUS "Trace mode enabled")
    add_definitions(-DTRACE)
endif()

# Find dependencies
find_package(PkgConfig REQUIRED)
pkg_check_modules(VNCCLIENT REQUIRED IMPORTED_TARGET libvncclient)
set_property(TARGET PkgConfig::VNCCLIENT PROPERTY
    INTERFACE_LINK_LIBRARIES "${VNCCLIENT_STATIC_LIBRARIES}")

add_executable(rmvncclient
    src/rmioc/input.cpp
    src/rmioc/screen.cpp
    src/client.cpp
    src/client-input.cpp
    src/client-screen.cpp
    src/main.cpp
)

set_property(TARGET rmvncclient PROPERTY CXX_STANDARD 17)

target_link_libraries(rmvncclient PUBLIC PkgConfig::VNCCLIENT)