cmake_minimum_required(VERSION 3.16)
project(vmctl C)
set(CMAKE_C_STANDARD 17)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS ON)               # POSIX sockets + linux/uinput.h need gnu extensions
option(VMCTL_LTO "Enable LTO" OFF)
add_library(vmctl STATIC
        src/vmctl/qmp.c
        src/vmctl/open.c
        src/vmctl/keymap.c
        src/vmctl/power.c
        src/vmctl/qmp_driver.c
        src/vmctl/linux/uinput_driver.c)
target_include_directories(vmctl
        PUBLIC  ${CMAKE_CURRENT_SOURCE_DIR}/include
        PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/vmctl/include)
target_compile_options(vmctl PRIVATE -O2 -Wall -Wextra)
if(VMCTL_LTO)
    target_compile_options(vmctl PRIVATE -flto)
    target_link_options(vmctl PRIVATE -flto)
endif()
