cmake_minimum_required(VERSION 3.16)
project(ak820-center VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)

find_package(Qt6 REQUIRED COMPONENTS Widgets)
find_package(hidapi CONFIG QUIET)
if(TARGET hidapi::hidraw)
    set(AK820_HIDAPI_TARGET hidapi::hidraw)
else()
    find_package(PkgConfig REQUIRED)
    pkg_check_modules(HIDAPI REQUIRED IMPORTED_TARGET hidapi-hidraw)
    set(AK820_HIDAPI_TARGET PkgConfig::HIDAPI)
endif()

add_executable(ak820-center
    src/main.cpp
    src/device.cpp
    src/layout.cpp
    src/keycodes.cpp
    src/appstate.cpp
    src/mainwindow.cpp
    src/keyboardview.cpp
    src/lightingwidget.cpp
    src/keymapwidget.cpp
    src/rgbwidget.cpp
    src/macrowidget.cpp
    src/screenwidget.cpp
    src/settingswidget.cpp
)

target_link_libraries(ak820-center PRIVATE Qt6::Widgets ${AK820_HIDAPI_TARGET})
target_include_directories(ak820-center PRIVATE src)
target_compile_definitions(ak820-center PRIVATE
    AK820_SOURCE_SKIN_DIR="${CMAKE_CURRENT_SOURCE_DIR}/../resources/official-skin"
    AK820_SOURCE_RESOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}/../resources")
