|
1 | 1 | message(STATUS "Using QNN backend")
|
2 | 2 | message("CMAKE_SYSTEM_NAME : ${CMAKE_SYSTEM_NAME}")
|
3 | 3 |
|
| 4 | +if(NOT DEFINED QNN_SDK_PATH) |
| 5 | + message(FATAL_ERROR "QNN_SDK_PATH not defined") |
| 6 | +endif() |
| 7 | + |
| 8 | +if(NOT DEFINED HEXAGON_SDK_PATH) |
| 9 | + message(FATAL_ERROR "HEXAGON_SDK_PATH not defined") |
| 10 | +endif() |
| 11 | + |
| 12 | +message("QNN_SDK_PATH: ${QNN_SDK_PATH}") |
| 13 | +message("HEXAGON_SDK_PATH: ${HEXAGON_SDK_PATH}") |
| 14 | + |
4 | 15 | if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
5 | 16 | find_library(LOG_LIB log)
|
6 |
| - set(QNN_LINK_LIBRARIES ${LOG_LIB}) |
| 17 | + |
| 18 | + add_library(cdsprpc |
| 19 | + SHARED |
| 20 | + IMPORTED) |
| 21 | + set_target_properties(cdsprpc |
| 22 | + PROPERTIES |
| 23 | + IMPORTED_LOCATION |
| 24 | + ${HEXAGON_SDK_PATH}/ipc/fastrpc/remote/ship/android_aarch64/libcdsprpc.so) |
| 25 | + |
| 26 | + set(QNN_LINK_LIBRARIES ${LOG_LIB} cdsprpc) |
7 | 27 | set(QNN_DEFAULT_LIB_SEARCH_PATH "/data/local/tmp/" CACHE STRING "customized library search path for QNN backend")
|
| 28 | + |
| 29 | + include_directories(${HEXAGON_SDK_PATH}/incs) |
| 30 | + include_directories(${HEXAGON_SDK_PATH}/incs/stddef) |
| 31 | + include_directories(${HEXAGON_SDK_PATH}/ipc/fastrpc/incs) |
| 32 | + include_directories(${HEXAGON_SDK_PATH}/ipc/fastrpc/rpcmem/inc) |
| 33 | + include_directories(${HEXAGON_SDK_PATH}/ipc/fastrpc/remote/ship/android_Debug_aarch64) |
| 34 | + include_directories(${HEXAGON_SDK_PATH}/incs/qnx) |
| 35 | + include_directories(${HEXAGON_SDK_PATH}/libs/common/qnx/ship/android_Debug_aarch64) |
| 36 | + include_directories(${HEXAGON_SDK_PATH}/utils/examples) |
| 37 | + include_directories(${HEXAGON_SDK_PATH}/ipc/fastrpc/rtld/ship/android_aarch64) |
| 38 | + include_directories(${HEXAGON_SDK_PATH}/libs/atomic/inc) |
| 39 | + include_directories(${HEXAGON_SDK_PATH}/libs/atomic/android_Debug_aarch64/ship) |
| 40 | + include_directories(${CMAKE_SOURCE_DIR}/ggml/src/ggml-qnn/) |
| 41 | + include_directories(${CMAKE_SOURCE_DIR}/ggml/src/ggml-qnn/kernels/) |
| 42 | + |
8 | 43 | elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
9 | 44 | set(QNN_DEFAULT_LIB_SEARCH_PATH "C:\\" CACHE STRING "customized library search path for QNN backend")
|
10 | 45 | else()
|
11 | 46 | message(FATAL_ERROR "QNN now only available on Android and Windows(Windows on ARM)")
|
12 | 47 | endif()
|
13 | 48 |
|
14 |
| -if(NOT DEFINED GGML_QNN_SDK_PATH) |
15 |
| -# try read from environment variable |
16 |
| - if(DEFINED ENV{QNN_SDK_PATH}) |
17 |
| - set(GGML_QNN_SDK_PATH $ENV{QNN_SDK_PATH}) |
18 |
| - else() |
19 |
| - message(FATAL_ERROR "GGML_QNN_SDK_PATH not defined") |
20 |
| - endif() |
21 |
| -endif() |
22 |
| - |
23 |
| -message("QNN_SDK_PATH: ${GGML_QNN_SDK_PATH}") |
24 |
| - |
25 | 49 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGGML_USE_QNN")
|
26 | 50 | set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
|
27 | 51 |
|
28 |
| -file(GLOB QNN_SOURCES "${CMAKE_CURRENT_LIST_DIR}/*.cpp") |
29 |
| - ggml_add_backend_library(ggml-qnn |
30 |
| - ${QNN_SOURCES} |
31 |
| -) |
| 52 | +file(GLOB QNN_SOURCES "${CMAKE_CURRENT_LIST_DIR}/*.cpp" "${CMAKE_CURRENT_LIST_DIR}/kernels/*.c") |
| 53 | +#file(GLOB QNN_SOURCES "${CMAKE_CURRENT_LIST_DIR}/*.cpp") |
| 54 | +ggml_add_backend_library(ggml-qnn ${QNN_SOURCES}) |
32 | 55 |
|
33 |
| -target_include_directories(ggml-qnn PRIVATE ${GGML_QNN_SDK_PATH}/include/QNN ${CMAKE_CURRENT_LIST_DIR}) |
| 56 | +target_include_directories(ggml-qnn PRIVATE ${QNN_SDK_PATH}/include/QNN ${HEXAGON_SDK_PATH} ${CMAKE_CURRENT_LIST_DIR}) |
34 | 57 | target_link_libraries(ggml-qnn PRIVATE ${QNN_LINK_LIBRARIES})
|
35 | 58 |
|
36 |
| -string(REGEX REPLACE "/$" "" GGML_QNN_DEFAULT_LIB_SEARCH_PATH "${QNN_DEFAULT_LIB_SEARCH_PATH}") |
37 |
| -target_compile_definitions(ggml-qnn PRIVATE GGML_QNN_DEFAULT_LIB_SEARCH_PATH="${QNN_DEFAULT_LIB_SEARCH_PATH}/") |
| 59 | +string(REGEX REPLACE "/$" "" QNN_DEFAULT_LIB_SEARCH_PATH "${QNN_DEFAULT_LIB_SEARCH_PATH}") |
| 60 | +target_compile_definitions(ggml-qnn PRIVATE QNN_DEFAULT_LIB_SEARCH_PATH="${QNN_DEFAULT_LIB_SEARCH_PATH}/") |
0 commit comments