get_filename_component(ALG_ANALYZER_UI_PROTO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ui/proto ABSOLUTE)
add_custom_target(alg_analyzer_proto
DEPENDS host_protoc
)
add_custom_command(TARGET alg_analyzer_proto
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/proto/alg_analyzer_proto/proto
COMMAND cd ${ALG_ANALYZER_UI_PROTO_DIR} && ${PROTOC_PROGRAM} --cpp_out=${CMAKE_BINARY_DIR}/proto/alg_analyzer_proto/proto analysis_result.proto
)
add_dependencies(hccl_alg_analyzer alg_analyzer_proto)
target_include_directories(hccl_alg_analyzer PRIVATE
${UTILS_PUBLIC_INCLUDE_LIST}
${UTILS_INNER_INCLUDE_LIST}
${HCOMM_PUBLIC_INCLUDE_LIST}
${HCOMM_PLATFORM_INCLUDE_LIST}
${HCOMM_ALGORITHM_INCLUDE_LIST}
${HCOMM_COMMON_INCLUDE_LIST}
${HCOMM_FRAMEWORK_INCLUDE_LIST}
${HCOMM_LEGACY_INCLUDE_LIST}
${CMAKE_BINARY_DIR}/proto/alg_analyzer_proto/proto
${ASCEND_CANN_INCLUDE_LIST}
)
target_sources(hccl_alg_analyzer
PRIVATE
check_utils.cc
checker.cc
task_stub.cc
task_graph_generator.cc
topo_meta.cc
${CMAKE_BINARY_DIR}/proto/alg_analyzer_proto/proto/analysis_result.pb.cc
aiv_task_stub.cc
)
add_subdirectory(task_collector)
add_subdirectory(rank_info_recorder)
add_subdirectory(mem_layout)
add_subdirectory(link_type_recorder)
add_subdirectory(semantics_check)
add_subdirectory(ui)
add_subdirectory(param_trans)
add_subdirectory(singletask_check)
add_subdirectory(mem_conflict_check)