已开启
修复纯 DSL Native 算子的 custom 和 builtin 构建 #8
zyh_gitcode创建于 4 天前
修复纯 DSL Native 算子的 custom 和 builtin 构建 #8
已开启
共 3 个文件变更+32-16
| @@ -785,8 +785,8 @@ endif() | |||
| 785 | 785 | ||
| 786 | target_link_libraries( | 786 | target_link_libraries( |
| 787 | cust_proto | 787 | cust_proto |
| 788 | - PUBLIC ${OPHOST_NAME}_infer_obj | 788 | + 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 | ||
| 792 | function(filter_aclnn_headers_by_skip_flag input_headers output_headers) | 792 | function(filter_aclnn_headers_by_skip_flag input_headers output_headers) |
| @@ -35,10 +35,12 @@ function(pack_custom) | |||
| 35 | ENABLE_DEFAULT_PACKAGE_NAME_RULE False | 35 | ENABLE_DEFAULT_PACKAGE_NAME_RULE False |
| 36 | ) | 36 | ) |
| 37 | 37 | ||
| 38 | - npu_op_package_add(${PACK_CUSTOM_NAME} | 38 | + if (TARGET cust_opapi) |
| 39 | - LIBRARY | 39 | + npu_op_package_add(${PACK_CUSTOM_NAME} |
| 40 | - cust_opapi | 40 | + 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 | LIBRARY | 46 | LIBRARY |
| @@ -179,14 +179,24 @@ function(gen_opgraph_symbol) | |||
| 179 | ) | 179 | ) |
| 180 | endfunction() | 180 | endfunction() |
| 181 | 181 | ||
| 182 | +# Call after registering all OpAPI object targets. This function collects them at configure time. | ||
| 182 | function(gen_opapi_symbol) | 183 | function(gen_opapi_symbol) |
| 183 | - # opapi shared | 184 | + set(opapi_sources) |
| 184 | - add_library(${OPAPI_NAME} SHARED | 185 | + 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 | PUBLIC | 202 | PUBLIC |
| @@ -207,9 +217,11 @@ function(gen_opapi_symbol) | |||
| 207 | endfunction() | 217 | endfunction() |
| 208 | 218 | ||
| 209 | function(gen_built_in_opapi_symbol) | 219 | function(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() | ||
| 213 | endfunction() | 225 | endfunction() |
| 214 | 226 | ||
| 215 | function(gen_cust_opapi_symbol) | 227 | function(gen_cust_opapi_symbol) |
| @@ -537,7 +549,9 @@ endfunction() | |||
| 537 | function(gen_cust_symbol) | 549 | function(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 | ||