1313 "${ONNXRUNTIME_ROOT} /core/providers/qnn/*.cc"
1414 )
1515
16+ function (extract_qnn_sdk_version_from_yaml QNN_SDK_YAML_FILE QNN_VERSION_OUTPUT)
17+ file (READ "${QNN_SDK_YAML_FILE} " QNN_SDK_YAML_CONTENT)
18+ # Match a line of text like "version: 1.33.2"
19+ string (REGEX MATCH "(^|\n |\r )version: ([0-9]+\\ .[0-9]+\\ .[0-9]+)" QNN_VERSION_MATCH "${QNN_SDK_YAML_CONTENT} " )
20+ if (QNN_VERSION_MATCH)
21+ set (${QNN_VERSION_OUTPUT} "${CMAKE_MATCH_2} " PARENT_SCOPE)
22+ message (STATUS "Extracted QNN SDK version ${CMAKE_MATCH_2} from ${QNN_SDK_YAML_FILE} " )
23+ else ()
24+ message (WARNING "Failed to extract QNN SDK version from ${QNN_SDK_YAML_FILE} " )
25+ endif ()
26+ endfunction ()
27+
28+ if (NOT QNN_SDK_VERSION)
29+ if (EXISTS "${onnxruntime_QNN_HOME} /sdk.yaml" )
30+ extract_qnn_sdk_version_from_yaml("${onnxruntime_QNN_HOME} /sdk.yaml" QNN_SDK_VERSION)
31+ else ()
32+ message (WARNING "Cannot open sdk.yaml to extract QNN SDK version" )
33+ endif ()
34+ endif ()
35+ message (STATUS "QNN SDK version ${QNN_SDK_VERSION} " )
36+
1637 if (onnxruntime_BUILD_QNN_EP_STATIC_LIB)
1738 #
1839 # Build QNN EP as a static library
2344 onnxruntime_add_include_to_target(onnxruntime_providers_qnn onnxruntime_common onnxruntime_framework onnx
2445 onnx_proto protobuf::libprotobuf-lite
2546 flatbuffers::flatbuffers Boost::mp11
26- nlohmann_json::nlohmann_json)
47+ nlohmann_json::nlohmann_json)
2748 add_dependencies (onnxruntime_providers_qnn onnx ${onnxruntime_EXTERNAL_DEPENDENCIES} )
2849 set_target_properties (onnxruntime_providers_qnn PROPERTIES CXX_STANDARD_REQUIRED ON )
2950 set_target_properties (onnxruntime_providers_qnn PROPERTIES FOLDER "ONNXRuntime" )
6182 "${ONNXRUNTIME_ROOT} /core/providers/shared_library/*.cc"
6283 )
6384 set (onnxruntime_providers_qnn_srcs ${onnxruntime_providers_qnn_ep_srcs}
64- ${onnxruntime_providers_qnn_shared_lib_srcs} )
85+ ${onnxruntime_providers_qnn_shared_lib_srcs} )
6586
6687 source_group (TREE ${ONNXRUNTIME_ROOT} /core FILES ${onnxruntime_providers_qnn_srcs} )
67- onnxruntime_add_shared_library_module(onnxruntime_providers_qnn ${onnxruntime_providers_qnn_srcs} )
88+
89+ set (onnxruntime_providers_qnn_all_srcs ${onnxruntime_providers_qnn_srcs} )
90+ if (WIN32 )
91+ # Sets the DLL version info on Windows: https://learn.microsoft.com/en-us/windows/win32/menurc/versioninfo-resource
92+ list (APPEND onnxruntime_providers_qnn_all_srcs "${ONNXRUNTIME_ROOT} /core/providers/qnn/onnxruntime_providers_qnn.rc" )
93+ endif ()
94+
95+ onnxruntime_add_shared_library_module(onnxruntime_providers_qnn ${onnxruntime_providers_qnn_all_srcs} )
6896 onnxruntime_add_include_to_target(onnxruntime_providers_qnn ${ONNXRUNTIME_PROVIDERS_SHARED} ${GSL_TARGET} onnx
69- onnxruntime_common Boost::mp11 safeint_interface
70- nlohmann_json::nlohmann_json)
97+ onnxruntime_common Boost::mp11 safeint_interface
98+ nlohmann_json::nlohmann_json)
7199 target_link_libraries (onnxruntime_providers_qnn PRIVATE ${ONNXRUNTIME_PROVIDERS_SHARED} ${ABSEIL_LIBS} ${CMAKE_DL_LIBS} )
72100 add_dependencies (onnxruntime_providers_qnn onnxruntime_providers_shared ${onnxruntime_EXTERNAL_DEPENDENCIES} )
73101 target_include_directories (onnxruntime_providers_qnn PRIVATE ${ONNXRUNTIME_ROOT}
74102 ${CMAKE_CURRENT_BINARY_DIR}
75103 ${onnxruntime_QNN_HOME} /include /QNN
76104 ${onnxruntime_QNN_HOME} /include )
77105
106+ # Set preprocessor definitions used in onnxruntime_providers_qnn.rc
107+ if (WIN32 )
108+ if (NOT QNN_SDK_VERSION)
109+ set (QNN_DLL_FILE_DESCRIPTION "ONNX Runtime QNN Provider" )
110+ else ()
111+ set (QNN_DLL_FILE_DESCRIPTION "ONNX Runtime QNN Provider (QAIRT ${QNN_SDK_VERSION} )" )
112+ endif ()
113+
114+ target_compile_definitions (onnxruntime_providers_qnn PRIVATE FILE_DESC=\"${QNN_DLL_FILE_DESCRIPTION} \")
115+ target_compile_definitions (onnxruntime_providers_qnn PRIVATE FILE_NAME=\"onnxruntime_providers_qnn.dll\")
116+ endif ()
117+
78118 # Set linker flags for function(s) exported by EP DLL
79119 if (UNIX )
80120 target_link_options (onnxruntime_providers_qnn PRIVATE
120160 COMMAND ${CMAKE_COMMAND} -E copy "${onnxruntime_QNN_HOME} /Qualcomm AI Hub Proprietary License.pdf" $<TARGET_FILE_DIR:${onnxruntime_providers_qnn_target} >
121161 )
122162 endif ()
123- endif ()
163+ endif ()
0 commit comments