project(Common LANGUAGES C CXX)

set(SRC
    HttpHelper.h
    HttpHelper.cpp
    FileHelper.h
    FileHelper.cpp
    ConfigHelper.h
    ConfigHelper.cpp
    PolicyHelper.h
    PolicyHelper.cpp
    LocalStateHelper.h
    LocalStateHelper.cpp
    TicketHelper.h
    TicketHelper.cpp
    IntegrityHelper.h
    IntegrityHelper.cpp
    DeviceIdentityHelper.h
    DeviceIdentityHelper.cpp
)
add_library(Common STATIC ${SRC})

# Common编译自身需要OpenSSL头文件
target_include_directories(Common
    PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
    PRIVATE ${OPENSSL_INC}
)

# 链接库、库目录通过INTERFACE传递给所有依赖Common的exe
target_link_directories(Common INTERFACE
    $<$<CONFIG:Debug>:${OPENSSL_LIB_DEBUG}>
    $<$<NOT:$<CONFIG:Debug>>:${OPENSSL_LIB_RELEASE}>
)
target_link_libraries(Common
    PRIVATE Qt5::Core Qt5::Network Qt5::Widgets
    INTERFACE libssl.lib libcrypto.lib
)

if(WIN32)
    target_link_libraries(Common INTERFACE shell32)
endif()
