| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- # Copyright 2025 Sony Semiconductor Solutions Corporation.
- # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- # Find ONNX Runtime library
- #
- # This module defines the following variables:
- #
- # ::
- #
- # onnxruntime_FOUND - True if onnxruntime is found
- # onnxruntime_INCLUDE_DIRS - Include directories for onnxruntime
- # onnxruntime_LIBRARIES - List of libraries for onnxruntime
- # onnxruntime_VERSION - Version of onnxruntime
- #
- # ::
- #
- # Example usage:
- #
- # find_package(onnxruntime)
- # if(onnxruntime_FOUND)
- # target_link_libraries(app onnxruntime)
- # endif()
- # First try to find ONNX Runtime using the CMake config file
- # FIXME: This is a temporary workaround for ONNX Runtime's broken CMake config on Linux.
- # See https://github.com/microsoft/onnxruntime/issues/25279
- # Once the upstream issue is fixed, this conditional can be safely removed.
- if(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
- find_package(onnxruntime CONFIG QUIET)
- if(onnxruntime_FOUND)
- return()
- endif()
- endif()
- # If not found via CMake config, try to find manually
- find_path(onnxruntime_INCLUDE_DIR
- NAMES onnxruntime_c_api.h
- PATHS
- /usr/include
- /usr/local/include
- /opt/onnxruntime/include
- $ENV{ONNXRUNTIME_ROOT}/include
- ${CMAKE_CURRENT_LIST_DIR}/../../../../..
- )
- find_library(onnxruntime_LIBRARY
- NAMES onnxruntime
- PATHS
- /usr/lib
- /usr/local/lib
- /opt/onnxruntime/lib
- $ENV{ONNXRUNTIME_ROOT}/lib
- ${CMAKE_CURRENT_LIST_DIR}/../../../../..
- )
- # Try to determine version from header file
- if(onnxruntime_INCLUDE_DIR)
- file(STRINGS "${onnxruntime_INCLUDE_DIR}/onnxruntime_c_api.h" onnxruntime_version_str
- REGEX "^#define[\t ]+ORT_API_VERSION[\t ]+[0-9]+")
-
- if(onnxruntime_version_str)
- string(REGEX REPLACE "^#define[\t ]+ORT_API_VERSION[\t ]+([0-9]+)" "\\1"
- onnxruntime_VERSION "${onnxruntime_version_str}")
- endif()
- endif()
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(onnxruntime
- REQUIRED_VARS onnxruntime_LIBRARY onnxruntime_INCLUDE_DIR
- VERSION_VAR onnxruntime_VERSION
- )
- if(onnxruntime_FOUND)
- set(onnxruntime_LIBRARIES ${onnxruntime_LIBRARY})
- set(onnxruntime_INCLUDE_DIRS ${onnxruntime_INCLUDE_DIR})
- if(NOT TARGET onnxruntime::onnxruntime)
- add_library(onnxruntime::onnxruntime UNKNOWN IMPORTED)
- set_target_properties(onnxruntime::onnxruntime PROPERTIES
- IMPORTED_LOCATION "${onnxruntime_LIBRARY}"
- INTERFACE_INCLUDE_DIRECTORIES "${onnxruntime_INCLUDE_DIRS}"
- )
- endif()
- endif()
- mark_as_advanced(onnxruntime_INCLUDE_DIR onnxruntime_LIBRARY)
|