set(product_list "ascend310B" "ascend910B" "ascend910" "ascend310p" "ascend950" "ascend950esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55")

if("${PRODUCT}" STREQUAL helper310p)
    set(ascend_trs_core_depends)
elseif ("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_core_depends asdrv_trsbase asdrv_pbl asdrv_dms asdrv_esched ascend_kernel_open_adapt)
    set(ascend_trs_core_host_depends asdrv_trsbase asdrv_pbl asdrv_dms
        drv_seclib_host asdrv_esched asdrv_dpa ascend_kernel_open_adapt)
elseif ("${PRODUCT}" STREQUAL ascend310Brc)
    set(ascend_trs_core_depends asdrv_trsbase asdrv_pbl asdrv_dms asdrv_esched ascend_kernel_open_adapt)
    set(ascend_trs_core_host_depends ascend_kernel_open_adapt)
else()
    set(ascend_trs_core_depends asdrv_trsbase asdrv_pbl asdrv_dms asdrv_esched ascend_kernel_open_adapt)
    set(ascend_trs_core_host_depends asdrv_trsbase asdrv_pbl asdrv_dms asdrv_dpa
        drv_seclib_host asdrv_esched ascend_kernel_open_adapt)
endif()

set(product_list "ascend310p" "ascend910" "ascend910B" "ascend310B" "ascend310Brc" "ascend950" "ascend950esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55")

if("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_id_pool_depends asdrv_pbl)
else()
    set(ascend_trs_id_pool_depends)
endif()

set(product_list "ascend310B" "ascend910B" "ascend910" "ascend310p" "ascend950" "ascend950esl" "ascend910_96" "ascend910_96esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55")
set(david_solomon_list "ascend950" "ascend950esl" "ascend910_96" "ascend910_96esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55")

if("${PRODUCT}" STREQUAL helper310p)
    set(ascend_trs_pm_adapt_host_depends)
elseif ("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_pm_adapt_host_depends asdrv_trsbase asdrv_esched
        asdrv_pbl drv_pcie_host asdrv_dms drv_seclib_host asdrv_dpa ascend_kernel_open_adapt)
    # set(ascend_trs_pm_adapt_host_depends asdrv_trsbase
    #    asdrv_pbl drv_pcie_host asdrv_dms drv_seclib_host)
elseif ("${PRODUCT}" IN_LIST david_solomon_list)
    set(ascend_trs_pm_adapt_host_depends asdrv_trsbase asdrv_esched
        asdrv_pbl drv_pcie_host asdrv_dms drv_seclib_host asdrv_svm asdrv_dpa ascend_kernel_open_adapt)
else()
    set(ascend_trs_pm_adapt_host_depends asdrv_trsbase asdrv_esched
        asdrv_pbl drv_pcie_host asdrv_dms drv_seclib_host asdrv_dpa ascend_kernel_open_adapt)
endif()

set(product_list "ascend310p" "ascend910" "ascend910B" "ascend310B" "ascend310Brc" "ascend950" "ascend950esl" "ascend910_96" "ascend910_96esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55")

if("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_pm_adapt_depends asdrv_trsbase asdrv_pbl asdrv_dms svm ascend_kernel_open_adapt)
elseif("${PRODUCT}" IN_LIST helper310p)
    set(ascend_trs_pm_adapt_depends asdrv_trsbase asdrv_pbl asdrv_dms svm ascend_kernel_open_adapt)
elseif ((${PRODUCT} STREQUAL mc62cm12a) OR (${PRODUCT} STREQUAL mc62cm12aesl))
    set(ascend_trs_pm_adapt_depends asdrv_trsbase asdrv_pbl asdrv_dms ascend_kernel_open_adapt)
else()
    set(ascend_trs_pm_adapt_depends asdrv_trsbase asdrv_pbl asdrv_dms svm ascend_kernel_open_adapt)
    #set(ascend_trs_pm_adapt_depends asdrv_trsbase asdrv_pbl asdrv_dms svm)
endif()

set(product_list "ascend310B" "ascend910B" "ascend910" "ascend310p" "ascend950" "ascend950esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55")

if ("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_sub_stars_depends asdrv_pbl drv_seclib_host)
else()
    set(ascend_trs_sub_stars_depends asdrv_pbl drv_seclib_host)
endif()

set(product_list "ascend310B" "ascend910B" "ascend910" "ascend310p")

if("${PRODUCT}" STREQUAL helper310p)
    set(ascend_trs_shrid_depends)
elseif ("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_shrid_depends asdrv_pbl asdrv_dms drv_seclib_host
        asdrv_esched drv_pcie_host)
else()
    set(ascend_trs_shrid_depends asdrv_pbl asdrv_dms drv_seclib_host
        asdrv_esched drv_pcie_host)
endif()

set(product_list "ascend310p" "ascend910" "ascend910B" "ascend310B" "ascend310Brc" "ascend950" "ascend950esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55"  "ascend910_96esl" "ascend910_96")

if("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_adapt_agent_depends drv_pcie asdrv_pbl)
elseif(${PRODUCT} STREQUAL helper310p)
    set(ascend_trs_adapt_agent_depends)
elseif ((${PRODUCT} STREQUAL mc62cm12a) OR (${PRODUCT} STREQUAL mc62cm12aesl))
    set(ascend_trs_adapt_agent_depends )
else()
    set(ascend_trs_adapt_agent_depends drv_pcie asdrv_pbl)
    #set(ascend_trs_adapt_agent_depends drv_pcie asdrv_pbl)
endif()

set(ascend_trs_stars_depends asdrv_pbl)

set(product_list "ascend310B" "ascend310Brc" "ascend910B" "ascend910" "ascend310p" "ascend950" "ascend950esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55")
if("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_tsmng_depends asdrv_pbl)
    if("${PRODUCT}" STREQUAL ascend910B)
        set(ascend_trs_tsmng_depends ${ascend_trs_tsmng_depends} asdrv_pbl)
    endif()
else()
    set(ascend_trs_tsmng_depends )
endif()

set(product_list "ascend310p" "ascend910" "ascend910B" "ascend310B" "ascend950" "ascend950esl" "ascend910_96" "ascend910_96esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55")

if("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_mia_adapt_depends asdrv_pbl asdrv_trsbase drv_pcie asdrv_vmng)
elseif( ${PRODUCT} STREQUAL helper310p)
    set(ascend_trs_mia_adapt_depends)
elseif( ${PRODUCT} STREQUAL as31xm1)
    set(ascend_trs_mia_adapt_depends asdrv_pbl asdrv_trsbase drv_pcie ascend_msg_chan)
elseif( ${PRODUCT} STREQUAL ascend310Brc)
    set(ascend_trs_mia_adapt_depends asdrv_pbl asdrv_trsbase asdrv_vmng)
elseif ((${PRODUCT} STREQUAL mc62cm12a) OR (${PRODUCT} STREQUAL mc62cm12aesl))
    set(ascend_trs_mia_adapt_depends )
else()
    set(ascend_trs_mia_adapt_depends asdrv_pbl asdrv_trsbase drv_pcie asdrv_vmng)
endif()

set(product_list "ascend310p" "ascend910" "ascend910B" "ascend310B" "ascend310Brc" "ascend950" "ascend950esl" "ascend910_96" "ascend910_96esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55")

if("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_mia_agent_depends asdrv_pbl)
else()
    set(ascend_trs_mia_agent_depends)
endif()

set(product_list "ascend310B" "ascend910B" "ascend910" "ascend310p" "ascend950" "ascend950esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55" "ascend910_96esl" "ascend910_96")
set(david_solomon_list "ascend950" "ascend950esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55" "ascend910_96esl" "ascend910_96")

if("${PRODUCT}" STREQUAL helper310p)
    set(ascend_trs_sec_eh_adapt_depends)
elseif ("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_sec_eh_adapt_depends drv_seclib_host asdrv_pbl asdrv_trsbase
        asdrv_vvpc drv_pcie_host asdrv_dpa)
    #set(ascend_trs_sec_eh_adapt_depends asdrv_trsbase asdrv_pbl asdrv_vvpc)
elseif ("${PRODUCT}" IN_LIST david_solomon_list)
    set(ascend_trs_sec_eh_adapt_depends drv_seclib_host asdrv_pbl asdrv_trsbase
        asdrv_vvpc drv_pcie_host asdrv_svm asdrv_dpa)
else()
    set(ascend_trs_sec_eh_adapt_depends drv_seclib_host asdrv_pbl asdrv_trsbase
        asdrv_vvpc drv_pcie_host asdrv_dpa)
endif()

set(product_list "ascend310B" "ascend910B" "ascend910" "ascend310p" "ascend950" "ascend950esl" "ascend910_96" "ascend910_96esl" "ascend910_55esl" "ascend910_55fpga" "ascend910_55")

if("${PRODUCT}" STREQUAL helper310p)
    set(ascend_trs_sec_eh_agent_depends)
elseif ("${PRODUCT}" IN_LIST product_list)
    set(ascend_trs_sec_eh_agent_depends asdrv_pbl asdrv_vmng drv_pcie_host asdrv_vpc asdrv_vascend_adapt)
    #set(ascend_trs_sec_eh_agent_depends ascend_trs_cdqm ascend_trs_pm_adapt)
else()
    set(ascend_trs_sec_eh_agent_depends asdrv_pbl asdrv_vmng drv_pcie_host asdrv_vpc)
endif()

if ((${PRODUCT} STREQUAL ascend610Lite) OR (${PRODUCT} STREQUAL ascend610Liteesl))
add_device_ko(LOCAL_MODULE asdrv_trs KO_SRC_FOLDER
              ${CMAKE_CURRENT_SOURCE_DIR}
              USE_LOCAL_MODULE_BIN_FOLDER
              MAKE_ARGS ${MAKE_ARGS}
              TARGETE_DPENDS "${ascend_trs_tsmng_depends}")
add_device_ko(LOCAL_MODULE asdrv_trs_v3 KO_SRC_FOLDER
              ${CMAKE_CURRENT_SOURCE_DIR}
              USE_LOCAL_MODULE_BIN_FOLDER
              MAKE_ARGS ${MAKE_ARGS} TARGET_TYPE=ascend610Lite
              TARGETE_DPENDS "${ascend_trs_tsmng_depends}")
else()
    if (${PRODUCT_SIDE} STREQUAL host)
        add_host_ko(LOCAL_MODULE asdrv_trs
            KO_SRC_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}
            MAKE_ARGS ${MAKE_ARGS}
            TARGETE_DPENDS "${ascend_trs_core_host_depends}" "${ascend_trs_sub_stars_depends}" "${ascend_trs_shrid_depends}" "${ascend_trs_pm_adapt_host_depends}" "${ascend_trs_sec_eh_agent_depends}")
        add_host_ko(LOCAL_MODULE asdrv_vtrs
            KO_SRC_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}
            MAKE_ARGS ${MAKE_ARGS} Driver_Install_Mode=vnpu_guest
            TARGETE_DPENDS "${ascend_trs_core_host_depends}" "${ascend_trs_sec_eh_adapt_depends}")
    else ()
        add_device_ko(LOCAL_MODULE asdrv_trs
            KO_SRC_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}
            MAKE_ARGS ${MAKE_ARGS}
            TARGETE_DPENDS "${ascend_trs_core_depends}" "${ascend_trs_stars_depends}" "${ascend_trs_id_pool_depends}" "${ascend_trs_tsmng_depends}" "${ascend_trs_pm_adapt_depends}" "${ascend_trs_mia_adapt_depends}" "${ascend_trs_adapt_agent_depends}" "${ascend_trs_mia_agent_depends}")
    endif()
endif()
