cmake_minimum_required(VERSION 3.21)
project(Lorenz VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 6.4 REQUIRED COMPONENTS Widgets)
# WIN32: a windowed program, so Send to and shortcuts open no console window.
qt_add_executable(lorenz-desktop WIN32 desktop/main.cpp)
if(WIN32)
    target_sources(lorenz-desktop PRIVATE desktop/lorenz.rc)
endif()
target_link_libraries(lorenz-desktop PRIVATE Qt6::Widgets)
target_compile_definitions(lorenz-desktop PRIVATE LORENZ_VERSION="${PROJECT_VERSION}")
qt_add_resources(lorenz-desktop interface PREFIX "/" BASE assets FILES assets/chevron.png)
install(TARGETS lorenz-desktop RUNTIME DESTINATION bin)
install(FILES assets/lorenz.svg DESTINATION share/icons/hicolor/scalable/apps)
include(CTest)
if(BUILD_TESTING)
    qt_add_executable(lorenz-wheel-test tests/radialwheel.cpp)
    target_link_libraries(lorenz-wheel-test PRIVATE Qt6::Widgets)
    add_test(NAME radial-wheel COMMAND lorenz-wheel-test)
    set_tests_properties(radial-wheel PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen")
    qt_add_executable(lorenz-dropwheel-test tests/dropwheel.cpp)
    target_link_libraries(lorenz-dropwheel-test PRIVATE Qt6::Widgets)
    add_test(NAME drop-wheel COMMAND lorenz-dropwheel-test)
    set_tests_properties(drop-wheel PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen")
endif()
