if(NOT (LITE_WITH_LIGHT_WEIGHT_FRAMEWORK AND LITE_WITH_ARM)) return() endif() if(NOT (LITE_WITH_LIGHT_WEIGHT_FRAMEWORK AND LITE_WITH_ARM)) return() endif() set(HAS_ARM_MATH_LIB_DIR OFF) # will search name as "libmath_arm.${os}.${abi}.${lang}.a" if(ARM_MATH_LIB_DIR AND EXISTS "${ARM_MATH_LIB_DIR}") set(arm_math_name "") if(ARM_TARGET_OS STREQUAL "android") if(ARM_TARGET_ARCH_ABI STREQUAL "armv8") set(arm_math_name "math_arm.android.armv8") elseif(ARM_TARGET_ARCH_ABI STREQUAL "armv7") set(arm_math_name "math_arm.android.armv7") endif() endif() if(ARM_TARGET_OS STREQUAL "armlinux" ) if(ARM_TARGET_ARCH_ABI STREQUAL "armv8") set(arm_math_name "math_arm.armlinux.armv8") elseif(ARM_TARGET_ARCH_ABI STREQUAL "armv7") set(arm_math_name "math_arm.armlinux.armv7") endif() endif() if(ARM_TARGET_LANG STREQUAL "clang") set(arm_math_name "${arm_math_name}.clang") else() set(arm_math_name "${arm_math_name}.gcc") endif() find_library(math_arm_file ${arm_math_name} ${ARM_MATH_LIB_DIR} NO_DEFAULT_PATH) if(math_arm_file) add_library(math_arm STATIC IMPORTED GLOBAL) set_property(TARGET math_arm PROPERTY IMPORTED_LOCATION ${math_arm_file}) message(STATUS "ARM math library imported: ${math_arm_file}") set(HAS_ARM_MATH_LIB_DIR ON) else() message(WARNING "Can not find arm math library ${arm_math_name} in ${ARM_MATH_LIB_DIR}") endif() endif() if (NOT HAS_ARM_MATH_LIB_DIR) # TODO(xxx): seperate them and do not deps proto, eigen3 cc_library(math_arm SRCS funcs.cc packed_sgemm.cc sgemm.cc softmax.cc scale.cc pooling.cc elementwise.cc lrn.cc decode_bboxes.cc concat.cc sgemv.cc type_trans.cc box_coder.cc conv_impl.cc conv_direct_3x3s1.cc conv_direct_3x3s2.cc conv_direct.cc conv_depthwise_3x3_int8.cc conv_depthwise_5x5s1_int8.cc conv_depthwise_3x3p0.cc conv_depthwise_3x3p1.cc conv_depthwise_5x5s1.cc conv_depthwise_5x5s2.cc conv_depthwise.cc conv_gemmlike.cc conv_winograd_3x3.cc conv_winograd.cc split.cc shuffle_channel.cc activation.cc yolo_box.cc dropout.cc gemm_prepacked_int8.cc gemv_arm_int8.cc conv3x3s1_direct_int8.cc conv3x3s2_direct_int8.cc power.cc interpolate.cc argmax.cc axpy.cc fill_bias_relu.cc col_im_transform.cc im2sequence.cc prior_box.cc sequence_softmax.cc norm.cc topk.cc increment.cc pad2d.cc negative.cc beam_search.cc reduce_max.cc sequence_pool.cc sequence_expand.cc slice.cc reduce_mean.cc stack.cc affine_channel.cc anchor_generator.cc DEPS ${lite_kernel_deps} context tensor) endif()