@@ -35,42 +35,50 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES
3535endif ()
3636
3737if (NOT DEFINED QNN_SDK_ROOT)
38- if (_qnn_host_is_linux_x86)
39- find_package (
40- Python3
41- COMPONENTS Interpreter
42- REQUIRED
43- )
44- message (STATUS "QNN_SDK_ROOT not provided, downloading Qualcomm SDK" )
45- execute_process (
46- COMMAND
47- ${Python3_EXECUTABLE}
48- ${EXECUTORCH_SOURCE_DIR} /backends/qualcomm/scripts/download_qnn_sdk.py
49- --print-sdk-path
50- WORKING_DIRECTORY ${EXECUTORCH_SOURCE_DIR}
51- RESULT_VARIABLE _qnn_sdk_download_result
52- OUTPUT_VARIABLE _qnn_sdk_download_output
53- ERROR_VARIABLE _qnn_sdk_download_error
54- OUTPUT_STRIP_TRAILING_WHITESPACE
55- )
56- if (NOT _qnn_sdk_download_result EQUAL 0 OR _qnn_sdk_download_output
57- STREQUAL ""
58- )
38+ if (_qnn_host_is_linux_x86)
39+ set (_qnn_default_sdk_dir
40+ "${CMAKE_CURRENT_LIST_DIR} /sdk/qnn"
41+ )
42+
43+ if (EXISTS "${_qnn_default_sdk_dir} " AND EXISTS "${_qnn_default_sdk_dir} /lib" )
44+ message (STATUS "Found cached Qualcomm SDK at ${_qnn_default_sdk_dir} " )
45+ set (QNN_SDK_ROOT
46+ ${_qnn_default_sdk_dir}
47+ CACHE PATH "Qualcomm SDK root directory" FORCE
48+ )
49+ else ()
50+ message (STATUS "QNN_SDK_ROOT not provided, downloading Qualcomm SDK" )
51+ execute_process (
52+ COMMAND
53+ ${PYTHON_EXECUTABLE}
54+ ${EXECUTORCH_SOURCE_DIR} /backends/qualcomm/scripts/download_qnn_sdk.py
55+ --print-sdk-path
56+ WORKING_DIRECTORY ${EXECUTORCH_SOURCE_DIR}
57+ RESULT_VARIABLE _qnn_sdk_download_result
58+ OUTPUT_VARIABLE _qnn_sdk_download_output
59+ ERROR_VARIABLE _qnn_sdk_download_error
60+ OUTPUT_STRIP_TRAILING_WHITESPACE
61+ )
62+ if (NOT _qnn_sdk_download_result EQUAL 0 OR _qnn_sdk_download_output
63+ STREQUAL ""
64+ )
65+ message (
66+ FATAL_ERROR
67+ "Failed to download Qualcomm SDK. stdout: ${_qnn_sdk_download_output} \n "
68+ "stderr: ${_qnn_sdk_download_error} "
69+ )
70+ endif ()
71+ set (QNN_SDK_ROOT
72+ ${_qnn_sdk_download_output}
73+ CACHE PATH "Qualcomm SDK root directory" FORCE
74+ )
75+ endif ()
76+ else ()
5977 message (
6078 FATAL_ERROR
61- "Failed to download Qualcomm SDK. stdout: ${_qnn_sdk_download_output} \n "
62- "stderr: ${_qnn_sdk_download_error} "
79+ "Please define QNN_SDK_ROOT, e.g. cmake <..> -DQNN_SDK_ROOT=<...>"
6380 )
6481 endif ()
65- set (QNN_SDK_ROOT
66- ${_qnn_sdk_download_output}
67- CACHE PATH "Qualcomm SDK root directory" FORCE
68- )
69- else ()
70- message (
71- FATAL_ERROR
72- "Please define QNN_SDK_ROOT, e.g. cmake <..> -DQNN_SDK_ROOT=<...>"
73- )
7482 endif ()
7583endif ()
7684
0 commit comments