if(WIN32 AND MSVC)
    # 强制所有编译、设计时生成均使用x64，禁止Win32
    set(CMAKE_GENERATOR_PLATFORM x64 CACHE STRING "强制x64平台，禁用Win32")
    set(CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCH x64)
    # 关闭VS自动Win32设计时预生成
    set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD OFF)
endif()

project(Updater)
set(SRC
    main.cpp
    UpdaterLogic.h
    UpdaterLogic.cpp
    UpdateTransaction.h
    UpdateTransaction.cpp
    ${CMAKE_SOURCE_DIR}/i18n/update-client.qrc
)
add_executable(Updater ${SRC})

if(WIN32)
    set_target_properties(Updater PROPERTIES WIN32_EXECUTABLE TRUE)
endif()

# 关键：给Updater自身添加OpenSSL头文件目录，解决#include openssl/*找不到
target_include_directories(Updater PRIVATE ${OPENSSL_INC})

# 仅链接Common和Qt，OpenSSL库由Common INTERFACE自动传递
target_link_libraries(Updater PRIVATE
    Common
    Qt5::Core Qt5::Network Qt5::Gui Qt5::Widgets
)

# Qt部署脚本
if(WIN32)
    get_target_property(QT_WINDEPLOYQT_EXE Qt5::qmake IMPORTED_LOCATION)
    get_filename_component(QT_BIN_PATH "${QT_WINDEPLOYQT_EXE}" DIRECTORY)
    set(WINDEPLOYQT "${QT_BIN_PATH}/windeployqt.exe")
    add_custom_command(TARGET Updater POST_BUILD
        COMMAND ${WINDEPLOYQT} $<IF:$<CONFIG:Debug>,--debug,--release> $<TARGET_FILE:Updater>
    )
endif()
