已开启
修复纯 DSL Native 算子的 custom 和 builtin 构建 #8
zyh_gitcode创建于 4 天前
修复纯 DSL Native 算子的 custom 和 builtin 构建 #8
已开启
zyh_gitcode创建于 4 天前
共 3 个文件变更+32-16
@@ -785,8 +785,8 @@ endif()
785 785 
786target_link_libraries(786target_link_libraries(
787 cust_proto787 cust_proto
788- PUBLIC ${OPHOST_NAME}_infer_obj788+ PUBLIC $<TARGET_NAME_IF_EXISTS:${OPHOST_NAME}_infer_obj>
789- PUBLIC $<$<TARGET_EXISTS:${OPGRAPH_NAME}_gentask_obj>:${OPGRAPH_NAME}_gentask_obj>789+ PUBLIC $<TARGET_NAME_IF_EXISTS:${OPGRAPH_NAME}_gentask_obj>
790)790)
791 791 
792function(filter_aclnn_headers_by_skip_flag input_headers output_headers)792function(filter_aclnn_headers_by_skip_flag input_headers output_headers)
@@ -35,10 +35,12 @@ function(pack_custom)
35 ENABLE_DEFAULT_PACKAGE_NAME_RULE False35 ENABLE_DEFAULT_PACKAGE_NAME_RULE False
36 )36 )
37 37 
38- npu_op_package_add(${PACK_CUSTOM_NAME}38+ if (TARGET cust_opapi)
39- LIBRARY39+ npu_op_package_add(${PACK_CUSTOM_NAME}
40- cust_opapi40+ LIBRARY
41- )41+ cust_opapi
42+ )
43+ endif()
42 if (TARGET cust_proto)44 if (TARGET cust_proto)
43 npu_op_package_add(${PACK_CUSTOM_NAME}45 npu_op_package_add(${PACK_CUSTOM_NAME}
44 LIBRARY46 LIBRARY
@@ -179,14 +179,24 @@ function(gen_opgraph_symbol)
179 )179 )
180endfunction()180endfunction()
181 181 
182+# Call after registering all OpAPI object targets. This function collects them at configure time.
182function(gen_opapi_symbol)183function(gen_opapi_symbol)
183- # opapi shared184+ set(opapi_sources)
184- add_library(${OPAPI_NAME} SHARED185+ foreach(obj_target IN ITEMS
185- $<$<TARGET_EXISTS:${OPHOST_NAME}_cannbotdsl_opapi_obj>:$<TARGET_OBJECTS:${OPHOST_NAME}_cannbotdsl_opapi_obj>>186+ ${OPHOST_NAME}_cannbotdsl_opapi_obj
186- $<$<TARGET_EXISTS:${OPHOST_NAME}_opapi_obj>:$<TARGET_OBJECTS:${OPHOST_NAME}_opapi_obj>>187+ ${OPHOST_NAME}_opapi_obj
187- $<$<TARGET_EXISTS:opbuild_gen_aclnn_all>:$<TARGET_OBJECTS:opbuild_gen_aclnn_all>>188+ opbuild_gen_aclnn_all
188- $<$<TARGET_EXISTS:opbase_util_objs>:$<TARGET_OBJECTS:opbase_util_objs>>189+ opbase_util_objs
189 )190 )
191+ if(TARGET ${obj_target})
192+ list(APPEND opapi_sources $<TARGET_OBJECTS:${obj_target}>)
193+ endif()
194+ endforeach()
195+ # Native-only operators can have Host and Device artifacts without an opapi library.
196+ if(NOT opapi_sources)
197+ return()
198+ endif()
199+ add_library(${OPAPI_NAME} SHARED ${opapi_sources})
190 200 
191 target_link_libraries(${OPAPI_NAME}201 target_link_libraries(${OPAPI_NAME}
192 PUBLIC202 PUBLIC
@@ -207,9 +217,11 @@ function(gen_opapi_symbol)
207endfunction()217endfunction()
208 218 
209function(gen_built_in_opapi_symbol)219function(gen_built_in_opapi_symbol)
210- install(TARGETS ${OPAPI_NAME}220+ if(TARGET ${OPAPI_NAME})
211- LIBRARY DESTINATION ${ACLNN_LIB_INSTALL_DIR}221+ install(TARGETS ${OPAPI_NAME}
212- )222+ LIBRARY DESTINATION ${ACLNN_LIB_INSTALL_DIR}
223+ )
224+ endif()
213endfunction()225endfunction()
214 226 
215function(gen_cust_opapi_symbol)227function(gen_cust_opapi_symbol)
@@ -537,7 +549,9 @@ endfunction()
537function(gen_cust_symbol)549function(gen_cust_symbol)
538 gen_opapi_symbol()550 gen_opapi_symbol()
539 551 
540- gen_cust_opapi_symbol()552+ if(TARGET ${OPAPI_NAME})
553+ gen_cust_opapi_symbol()
554+ endif()
541 555 
542 gen_cust_optiling_symbol()556 gen_cust_optiling_symbol()
543 557