Ssunsuodongadd model_c ut
5f1e4e29创建于 2022年8月21日历史提交
set(TOP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
set(TEST_DIR ${TOP_DIR}/mindspore/lite/test)
set(LITE_DIR ${TOP_DIR}/mindspore/lite)

include_directories(${TOP_DIR})
include_directories(${TEST_DIR})
include_directories(${TOP_DIR}/mindspore/ccsrc/backend/kernel_compiler/cpu)

include(${TOP_DIR}/cmake/external_libs/gtest.cmake)

if(MSLITE_ENABLE_V0)
    add_definitions(-DENABLE_V0)
endif()

file(GLOB_RECURSE TEST_UT_SRC
        ${TEST_DIR}/main.cc
        ${TEST_DIR}/common/common_test.cc
        ${TEST_DIR}/ut/src/infer_test.cc
        ${TEST_DIR}/ut/src/utils_test.cc
        ${TEST_DIR}/ut/src/scheduler_test.cc
        ${TEST_DIR}/ut/src/registry/registry_test.cc
        ${TEST_DIR}/ut/src/registry/registry_custom_op_test.cc
        ${TEST_DIR}/ut/src/runtime/runtime_pass_tests.cc
        ${TEST_DIR}/st/multiple_device_test.cc
        ${TEST_DIR}/st/mindrt_parallel_runtime_test.cc
        ${TEST_DIR}/st/mix_data_type_test.cc
        ${TEST_DIR}/ut/nnacl/infer/*.cc
        ${TEST_DIR}/ut/src/runtime/kernel/arm/common/*.cc
        ${TEST_DIR}/ut/src/runtime/kernel/arm/fp32/*.cc
        ${TEST_DIR}/ut/src/runtime/kernel/arm/int8/*.cc
        ${TEST_DIR}/ut/src/runtime/kernel/arm/string/*.cc
        ${TEST_DIR}/ut/src/api/*.cc
        )

if(MSLITE_ENABLE_TRAIN)
    file(GLOB_RECURSE TEST_TRAIN_UT_SRC
            ${TEST_DIR}/ut/src/runtime/kernel/arm/fp32_grad/*.cc
            ${TEST_DIR}/ut/src/runtime/kernel/arm/cxx_api/*.cc
            )
    list(APPEND TEST_UT_SRC ${TEST_TRAIN_UT_SRC})
endif()

if(MSLITE_GPU_BACKEND STREQUAL opencl)
    file(GLOB_RECURSE TEST_GPU_UT_SRC
            ${TEST_DIR}/ut/src/runtime/kernel/opencl/*.cc
            ${TEST_DIR}/ut/src/registry/registry_gpu_custom_op_test.cc
            )
    list(APPEND TEST_UT_SRC ${TEST_GPU_UT_SRC})
endif()

if(MSLITE_ENABLE_FP16)
    file(GLOB_RECURSE TEST_FP16_UT_SRC
            ${TEST_DIR}/ut/src/runtime/kernel/arm/fp16/*.cc
            )
    list(APPEND TEST_UT_SRC ${TEST_FP16_UT_SRC})

    if(SUPPORT_TRAIN)
        file(GLOB_RECURSE TEST_TRAIN_FP16_SRC
                ${TEST_DIR}/ut/src/runtime/kernel/arm/fp16_grad/*.cc)
        list(APPEND TEST_UT_SRC ${TEST_TRAIN_FP16_SRC})
    endif()
endif()

if(MSLITE_ENABLE_CONVERTER)
    if(MSLITE_ENABLE_TOOLS)
        list(APPEND TEST_UT_SRC ${TEST_DIR}/st/benchmark_test.cc)

        set(TEST_LITE_SRC
                ${TEST_LITE_SRC}
                ${LITE_DIR}/tools/benchmark/run_benchmark.cc
                ${LITE_DIR}/tools/benchmark/benchmark_base.cc
                ${LITE_DIR}/tools/benchmark/benchmark_unified_api.cc
                ${LITE_DIR}/tools/benchmark/benchmark_c_api.cc
                ${LITE_DIR}/tools/benchmark/benchmark.cc
                )
    endif()
    add_definitions(-DPRIMITIVE_WRITEABLE)
    add_definitions(-DUSE_GLOG)
    file(GLOB_RECURSE TEST_CONVERTER_UT_SRC
            ${TEST_DIR}/ut/tools/converter/registry/*.cc
            ${TEST_DIR}/ut/tools/converter/parser/tflite/*.cc
            ${TEST_DIR}/st/converter_test.cc
            ${TEST_DIR}/st/delegate_test.cc
            ${TEST_DIR}/st/mindrt_parallel_test.cc
            ${TEST_DIR}/st/graph_test.cc
            ${TEST_DIR}/st/sub_graph_test.cc
            ${TEST_DIR}/ut/src/dynamic_library_loader_test.cc
            ${TEST_DIR}/ut/tools/optimizer/fusion/conv_biasadd_fusion_test.cc
            ${TEST_DIR}/ut/tools/optimizer/fusion/conv_bn_fusion_test.cc
            ${TEST_DIR}/ut/tools/optimizer/fusion/conv_scale_fusion_test.cc
            ${TEST_DIR}/ut/tools/optimizer/fusion/conv_activation_fusion_test.cc
            ${TEST_DIR}/ut/tools/optimizer/fusion/constant_folding_fusion_test.cc
            )
    list(APPEND TEST_UT_SRC ${TEST_CONVERTER_UT_SRC})

    set(TEST_LITE_SRC
        ${TEST_LITE_SRC}
        ${TEST_DIR}/common/import_from_meta_graphT.cc
        ${LITE_DIR}/src/ops/ops_utils.cc
        ${LITE_DIR}/src/ops/ops_def.cc
        ${LITE_DIR}/src/tensor.cc
        )
endif()

set(TEST_SRC
        ${TEST_UT_SRC}
        ${TEST_LITE_SRC}
        )

add_executable(lite-test ${TEST_SRC})
add_dependencies(lite-test fbs_src fbs_inner_src)

target_link_libraries(lite-test mindspore-lite dl mindspore::gtest)

if(MSLITE_ENABLE_TRAIN)
    if(MSLITE_MINDDATA_IMPLEMENT STREQUAL "off")
        target_link_libraries(lite-test mindspore-lite-train)
    else()
        target_link_libraries(lite-test mindspore-lite-train minddata-lite)
    endif()
endif()

if(PLATFORM_ARM)
    target_link_libraries(lite-test log)
else()
    target_link_libraries(lite-test ${SECUREC_LIBRARY} pthread)
endif()

if(MSLITE_ENABLE_NPU)
    target_link_libraries(lite-test c++_shared)
endif()

if(MSLITE_ENABLE_MINDRT)
    add_library(mindrt_test_mid OBJECT ${TEST_DIR}/ut/src/lite_mindrt_test.cc)
    add_dependencies(mindrt_test_mid fbs_src fbs_inner_src)
    if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
        target_compile_options(mindrt_test_mid PRIVATE -fno-rtti)
    endif()
    target_link_libraries(lite-test mindrt_test_mid)
endif()

if(MSLITE_ENABLE_CONVERTER)
    target_link_libraries(lite-test
            anf_exporter_mid
            mslite_converter_plugin
            tflite_parser_mid
            caffe_parser_mid
            onnx_parser_mid
            tf_parser_mid
            graph_pass_mid
            fusion_mid
            quantizer_mid
            proto_mid
            ccsrc_src_mid
            converter_src_mid
            mindspore::protobuf
            mindspore::eigen
            mindspore::json
            -Wl,--whole-archive mindspore_core -Wl,--no-whole-archive
            mindspore::glog
            preprocess_mid
            config_parser_mid
            )
endif()

if(ENABLE_MODEL_OBF)
    target_link_libraries(lite-test ${OBF_LIB_DIR}/libmsdeobfuscator-lite.so)
endif()