if (${PRODUCT_SIDE} STREQUAL host)

    target_include_directories(asdrv_dms_obj PRIVATE
        ${TOP_DIR}/inc/driver/
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/inc
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/inc/dms
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/inc/comm
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/sensor
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/fms/smf/sensor
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/event
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/fms/smf/event
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/devmng/config
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/devmng/include
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/core
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/devmng/product
    )

    target_compile_definitions(asdrv_dms_obj PRIVATE
        CFG_FEATURE_DMS_PRODUCT_HOST
        $<$<STREQUAL:${PRODUCT},ascend910>:CFG_SOC_PLATFORM_CLOUD>
    )

    target_sources(asdrv_dms_obj PRIVATE
        dms_product_host.c
        dms_product.c
    )

else()

    target_include_directories(asdrv_dms_obj PRIVATE
        ${TOP_DIR}/inc/driver/
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/inc
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/inc/dms
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/sensor
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/fms/smf/sensor
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/event
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/fms/smf/event
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/devmng/config
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/devmng/include
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/core
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/devmng/product
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/hccs
        ${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/devmng/product/ipc
        $<$<STREQUAL:${PRODUCT},ascend950>:${TOP_DIR}/drivers/ai_sdk/arc/linux/kernel_space/src/dms/ipc>
    )

    target_compile_definitions(asdrv_dms_obj PRIVATE
        $<$<STREQUAL:${PRODUCT},ascend910B>:CFG_FEATURE_PCIE_HCCS_BANDWIDTH>
        $<$<OR:$<STREQUAL:${PRODUCT},ascend910B>,$<STREQUAL:${PRODUCT},ascend950>>:CFG_FEATURE_HBM_MANUFACTURER_ID>
        $<$<STREQUAL:${PRODUCT},ascend910B>:CFG_FEATURE_HCCS_BANDWIDTH>
        $<$<STREQUAL:${PRODUCT},ascend310p>:CFG_FEATURE_HCCS_LINK_ERROR_INFO>
        $<$<STREQUAL:${PRODUCT},ascend310p>:CFG_FEATURE_PCIE_LINK_ERROR_INFO>
        $<$<STREQUAL:${PRODUCT},ascend950>:CFG_SOC_PLATFORM_CLOUD_V4>
        $<$<STREQUAL:${PRODUCT},ascend950>:CFG_FEATURE_PCIE_HCCS_BANDWIDTH>
    )

    target_sources(asdrv_dms_obj PRIVATE
        dms_product.c
    )
    if (${PRODUCT} STREQUAL ascend950)
        add_subdirectory(ipc)
    endif()

endif ()