mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-25 22:26:24 +00:00
* move code used to find the SNPE libs to a separate cmake file * Roll back the change for libc++_shared, it's the one from SNPE SDK, otherwise it will cause uncaught exception of type std::bad_cast because of conflict
46 lines
No EOL
1.9 KiB
CMake
46 lines
No EOL
1.9 KiB
CMake
if (NOT SNPE_ARCH_ABI)
|
|
if(MSVC)
|
|
string(TOLOWER ${CMAKE_GENERATOR_PLATFORM} GEN_PLATFORM)
|
|
message(STATUS "Building MSVC for architecture ${CMAKE_SYSTEM_PROCESSOR} with CMAKE_GENERATOR_PLATFORM as ${GEN_PLATFORM}")
|
|
if (${GEN_PLATFORM} STREQUAL "arm64")
|
|
set(SNPE_ARCH_ABI aarch64-windows-vc19)
|
|
else()
|
|
set(SNPE_ARCH_ABI x86_64-windows-vc19)
|
|
endif()
|
|
else()
|
|
if (CMAKE_SYSTEM_NAME STREQUAL "Android")
|
|
set(SNPE_ARCH_ABI aarch64-android-clang6.0)
|
|
elseif (LINUX)
|
|
if (${GEN_PLATFORM} STREQUAL "x64")
|
|
set(SNPE_ARCH_ABI x86_64-linux-clang)
|
|
else()
|
|
set(SNPE_ARCH_ABI aarch64-linux-gcc4.9)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
list(APPEND onnxruntime_LINK_DIRS ${SNPE_ROOT}/lib/${SNPE_ARCH_ABI})
|
|
endif()
|
|
file(TO_CMAKE_PATH ${SNPE_ROOT} SNPE_ROOT)
|
|
get_filename_component(SNPE_CMAKE_DIR ${SNPE_ROOT} ABSOLUTE)
|
|
file(TO_CMAKE_PATH "${SNPE_CMAKE_DIR}/lib/${SNPE_ARCH_ABI}" SNPE_LIB_DIR)
|
|
file(TO_NATIVE_PATH ${SNPE_LIB_DIR} SNPE_NATIVE_DIR)
|
|
message(STATUS "Looking for SNPE library in ${SNPE_NATIVE_DIR}")
|
|
find_library(SNPE NAMES snpe SNPE libSNPE.so PATHS "${SNPE_NATIVE_DIR}" "${SNPE_ROOT}" NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH REQUIRED)
|
|
|
|
file(GLOB SNPE_SO_FILES LIST_DIRECTORIES false "${SNPE_CMAKE_DIR}/lib/${SNPE_ARCH_ABI}/*.so" "${SNPE_CMAKE_DIR}/lib/${SNPE_ARCH_ABI}/*.dll")
|
|
# add dsp skel files to distribution
|
|
file(GLOB SNPE_DSP_FILES LIST_DIRECTORIES false "${SNPE_CMAKE_DIR}/lib/dsp/*.so")
|
|
list(APPEND SNPE_SO_FILES ${QCDK_FILES} ${SNPE_DSP_FILES})
|
|
|
|
if(NOT SNPE OR NOT SNPE_SO_FILES)
|
|
message(ERROR "Snpe not found in ${SNPE_CMAKE_DIR}/lib/${SNPE_ARCH_ABI} for platform ${CMAKE_GENERATOR_PLATFORM}")
|
|
endif()
|
|
|
|
set(SNPE_NN_LIBS ${SNPE})
|
|
if(ANDROID)
|
|
# Use libc++_shared.so from SNPE SDK
|
|
list(APPEND SNPE_NN_LIBS libc++_shared.so)
|
|
endif()
|
|
|
|
message(STATUS "SNPE library at ${SNPE}")
|
|
message(STATUS "SNPE so/dlls in ${SNPE_SO_FILES}") |