Merge remote-tracking branch 'upstream/3.4' into merge-3.4
[platform/upstream/opencv.git] / cmake / FindONNX.cmake
1 ocv_clear_vars(HAVE_ONNX)
2
3 set(ONNXRT_ROOT_DIR "" CACHE PATH "ONNX Runtime install directory")
4
5 # For now, check the old name ORT_INSTALL_DIR
6 if(ORT_INSTALL_DIR AND NOT ONNXRT_ROOT_DIR)
7   set(ONNXRT_ROOT_DIR ${ORT_INSTALL_DIR})
8 endif()
9
10 if(ONNXRT_ROOT_DIR)
11   find_library(ORT_LIB onnxruntime
12     ${ONNXRT_ROOT_DIR}/lib
13     CMAKE_FIND_ROOT_PATH_BOTH)
14   find_path(ORT_INCLUDE onnxruntime_cxx_api.h
15     ${ONNXRT_ROOT_DIR}/include/onnxruntime/core/session
16     CMAKE_FIND_ROOT_PATH_BOTH)
17 endif()
18
19 if(ORT_LIB AND ORT_INCLUDE)
20   set(HAVE_ONNX TRUE)
21   # For CMake output only
22   set(ONNX_LIBRARIES "${ORT_LIB}" CACHE STRING "ONNX Runtime libraries")
23   set(ONNX_INCLUDE_DIR "${ORT_INCLUDE}" CACHE STRING "ONNX Runtime include path")
24
25   # Link target with associated interface headers
26   set(ONNX_LIBRARY "onnxruntime" CACHE STRING "ONNX Link Target")
27   ocv_add_library(${ONNX_LIBRARY} SHARED IMPORTED)
28   set_target_properties(${ONNX_LIBRARY} PROPERTIES
29                         INTERFACE_INCLUDE_DIRECTORIES ${ORT_INCLUDE}
30                         IMPORTED_LOCATION ${ORT_LIB}
31                         IMPORTED_IMPLIB ${ORT_LIB})
32 endif()
33
34 if(NOT HAVE_ONNX)
35   ocv_clear_vars(HAVE_ONNX ORT_LIB ORT_INCLUDE_DIR)
36 endif()