cmake_minimum_required(VERSION 3.16)

project(ClientChat VERSION 0.1 LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 查找Qt版本
find_package(Qt6 COMPONENTS Widgets QUIET)
if(NOT Qt6_FOUND)
    find_package(Qt5 COMPONENTS Widgets REQUIRED)
    set(QT_VERSION_MAJOR 5)
else()
    set(QT_VERSION_MAJOR 6)
endif()

file(GLOB PROJECT_SOURCES
    model/*.h
    *.cpp
    *.h
    *.ui
    *.qrc
)

if(ANDROID)
    # Android 平台：附加 Android 可部署资源
    qt_add_executable(ClientChat
        MANUAL_FINALIZATION
        ${PROJECT_SOURCES}
    )

    # 指定自定义的 Android 部署目录
    # set_property(TARGET ClientChat APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
else()
    if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
        qt_add_executable(ClientChat
            MANUAL_FINALIZATION
            ${PROJECT_SOURCES}
        )
    else()
        add_executable(ClientChat ${PROJECT_SOURCES})
    endif()
endif()

target_link_libraries(ClientChat PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)

if(${QT_VERSION_MAJOR} EQUAL 6)
    qt_finalize_executable(ClientChat)
endif()

include(GNUInstallDirs)
install(TARGETS ClientChat
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
