cmake_minimum_required(VERSION 3.20)
project(dlt698_consumer LANGUAGES CXX)
# 与被测库共用版本来源，升级主版本后仍校验本次安装包的精确版本。
file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/../../../VERSION" DLT698_CONSUMER_VERSION LIMIT_COUNT 1)
find_package(dlt698 ${DLT698_CONSUMER_VERSION} EXACT CONFIG REQUIRED)
add_executable(consumer main.cpp)
target_link_libraries(consumer PRIVATE dlt698::dlt698)
if(TARGET dlt698::transport)
    target_compile_definitions(consumer PRIVATE HAVE_TRANSPORT)
endif()
if(TARGET dlt698::app)
    target_compile_definitions(consumer PRIVATE HAVE_APP)
    add_executable(app_consumer app.cpp)
    target_link_libraries(app_consumer PRIVATE dlt698::app)
endif()
if(WIN32)
    get_target_property(core_type dlt698::core TYPE)
    if(core_type STREQUAL "SHARED_LIBRARY")
        add_custom_command(TARGET consumer POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
            $<TARGET_FILE:dlt698::core> $<TARGET_FILE_DIR:consumer>)
        foreach(component session service)
            add_custom_command(TARGET consumer POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
                $<TARGET_FILE:dlt698::${component}> $<TARGET_FILE_DIR:consumer>)
        endforeach()
        if(TARGET dlt698::transport)
            add_custom_command(TARGET consumer POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
                $<TARGET_FILE:dlt698::transport> $<TARGET_FILE_DIR:consumer>)
        endif()
        if(TARGET dlt698::app)
            foreach(component core session service transport app)
                add_custom_command(TARGET app_consumer POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
                    $<TARGET_FILE:dlt698::${component}> $<TARGET_FILE_DIR:app_consumer>)
            endforeach()
            add_custom_command(TARGET consumer POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
                $<TARGET_FILE:dlt698::app> $<TARGET_FILE_DIR:consumer>)
        endif()
    endif()
endif()
