cmake_minimum_required(VERSION 3.21)
project(TSSPlatformUpdateTests LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
find_package(Qt6 REQUIRED COMPONENTS Core)
find_package(OpenSSL REQUIRED COMPONENTS Crypto)
enable_testing()
add_executable(platform_update_tests main.cpp ../../platform/linuxmanifest.cpp ../../platform/linuxinstall.cpp)
target_include_directories(platform_update_tests PRIVATE ../../platform)
target_link_libraries(platform_update_tests PRIVATE Qt6::Core OpenSSL::Crypto)
add_test(NAME signed_appimage_metadata COMMAND platform_update_tests "${CMAKE_CURRENT_BINARY_DIR}/fixtures")
option(TSS_TEST_CLIENT_COMPILE "Проверить компиляцию Qt-клиента AppImageUpdate на другой ОС" OFF)
if(TSS_TEST_CLIENT_COMPILE)
    find_package(Qt6 REQUIRED COMPONENTS Widgets Network Concurrent)
    set(TSS_UPDATE_APP TSSLogViewer)
    set(TSS_UPDATE_VERSION 26.2)
    set(TSS_UPDATE_BUILD 100)
    set(TSS_UPDATE_CHANNEL viewer)
    file(READ "${CMAKE_CURRENT_SOURCE_DIR}/../../keys/release-public.pem" TSS_UPDATE_RSA_PEM)
    configure_file(../../platform/buildconfig.h.in "${CMAKE_CURRENT_BINARY_DIR}/buildconfig.h" @ONLY)
    add_library(appimage_client_compile OBJECT ../../platform/linux.cpp ../../platform/updatecontroller.h ../../client/updatedialog.ui)
    set_target_properties(appimage_client_compile PROPERTIES AUTOMOC ON AUTOUIC ON
        AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/../../client")
    target_include_directories(appimage_client_compile PRIVATE "${CMAKE_CURRENT_BINARY_DIR}" ../../platform)
    target_link_libraries(appimage_client_compile PRIVATE Qt6::Widgets Qt6::Network Qt6::Concurrent)
endif()
