@@ -174,7 +174,6 @@ add_library(qnn_sys_function_interface INTERFACE)
174174add_library (qnn_sys_implementation STATIC )
175175add_library (shared_buffer STATIC )
176176add_library (wrappers STATIC )
177- add_library (utils STATIC )
178177
179178#
180179# declare dependency
@@ -240,24 +239,38 @@ target_link_libraries(
240239)
241240
242241target_link_libraries (
243- qnn_manager
244- PRIVATE qnn_factory
245- qnn_backend_unified_registry
246- wrappers
247- qnn_schema
248- utils
249- shared_buffer
250- qnn_dlc_manager
242+ qnn_manager PRIVATE qnn_factory qnn_backend_unified_registry wrappers
243+ qnn_schema shared_buffer qnn_dlc_manager
251244)
252245target_link_libraries (
253246 qnn_executorch_backend
254247 PRIVATE qnn_executorch_header qnn_schema qnn_manager executorch_core
255248 extension_tensor qnn_backend_options
256249)
250+
251+ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES Hexagon)
252+ # Add macro here so we can dlopen the correct .so library.
253+ if (DSP_TYPE STREQUAL "3" )
254+ string (TOUPPER ${DSP_VERSION} CAPITAL_DSP_VERSION)
255+ set (HEXAGON_LIB "libQnnHtp${CAPITAL_DSP_VERSION} .so" )
256+ add_compile_definitions (HEXAGON_LIB= "${HEXAGON_LIB} " )
257+ message (STATUS "For hexagon build, using HTP Library: ${HEXAGON_LIB} " )
258+ else ()
259+ message (FATAL_ERROR "Unknown DSP_TYPE ${DSP_TYPE} " )
260+ endif ()
261+
262+ target_link_libraries (
263+ qnn_executorch_backend
264+ PRIVATE
265+ ${HEXAGON_TOOLS_ROOT} /Tools/target/hexagon/lib/${DSP_VERSION}/G0/pic/libc.so
266+ ${HEXAGON_TOOLS_ROOT} /Tools/target/hexagon/lib/${DSP_VERSION}/G0/pic/libc++.so.1
267+ ${HEXAGON_TOOLS_ROOT} /Tools/target/hexagon/lib/${DSP_VERSION}/G0/pic/libc++abi.so.1
268+ )
269+ endif ()
270+
257271set_target_properties (
258272 qnn_executorch_backend PROPERTIES LINK_FLAGS "-Wl,-rpath='$ORIGIN'"
259273)
260- target_link_libraries (utils PRIVATE qnn_executorch_logging )
261274target_link_libraries (
262275 shared_buffer PRIVATE qnn_executorch_logging ${CMAKE_DL_LIBS}
263276)
@@ -288,6 +301,13 @@ install(
288301 RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} /executorch/backends/qualcomm
289302)
290303
304+ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES Hexagon)
305+ add_subdirectory (
306+ ${QNN_EXECUTORCH_ROOT_DIR} /runtime/backends/direct_mode
307+ ${CMAKE_CURRENT_BINARY_DIR} /qnn_executorch/direct_mode
308+ )
309+ endif ()
310+
291311# QNN pybind
292312if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64" )
293313 add_subdirectory (
0 commit comments