cmake_minimum_required(VERSION 3.14.1)
project(mspti_llt)
set(CMAKE_SKIP_RPATH TRUE)
set(TOP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
set(UT_TOP_DIR ${CMAKE_CURRENT_SOURCE_DIR})

set(CMAKE_MODULE_PATH
    ${TOP_DIR}/test/cmake/modules
)

include(${TOP_DIR}/test/cmake/depend.cmake)

find_package(gtest)
find_package(mockcpp)

set(CMAKE_CXX_FLAGS " -Wno-unused")

# common include
include_directories(
    ${TOP_DIR}/test/mspti_cpp/ut/stub
    ${TOP_DIR}
    ${TOP_DIR}/csrc/include
    ${TOP_DIR}/platform/securec/include
    ${GTEST_INCLUDE_DIR}
    ${MOCKCPP_INCLUDE_DIR}
)

function(run_test test_case)
    target_compile_options(${test_case} PRIVATE
        -g
        -pipe
        -Wall
        -std=c++14
        -fno-access-control
        -Wfloat-equal
        -Wextra
        -D_GLIBCXX_USE_CXX11_ABI=0
        -fprofile-arcs
        -ftest-coverage
    )

    target_link_options(${test_case} PRIVATE
        -lgcov
        --coverage
    )

    target_link_libraries(${test_case} PRIVATE
        ${GTEST_STATIC_LIBRARY}
        ${MOCKCPP_STATIC_LIBRARY}
        c_sec_static
        pthread
        dl
    )

    set_target_properties(${test_case}
        PROPERTIES
        OUTPUT_NAME ${test_case}
        LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
    )

    run_llt_test(
        TARGET ${test_case}
        TASK_NUM 1
    )
endfunction()

add_subdirectory(activity)
add_subdirectory(callback)
add_subdirectory(common)
add_subdirectory(whl)