project(Common LANGUAGES C CXX)
find_package(Qt5 REQUIRED COMPONENTS Core Network Widgets)

set(SRC
    HttpHelper.h
    HttpHelper.cpp
    FileHelper.h
    FileHelper.cpp
    ConfigHelper.h
    ConfigHelper.cpp
    PolicyHelper.h
    PolicyHelper.cpp
    LocalStateHelper.h
    LocalStateHelper.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}>
    $<$<CONFIG:Release>:${OPENSSL_LIB_RELEASE}>
)
target_link_libraries(Common 
    PRIVATE Qt5::Core Qt5::Network Qt5::Widgets
    INTERFACE libssl.lib libcrypto.lib
)