diff options
author | Guillaume Dollé <dolle.guillaume@gmail.com> | 2021-08-01 16:02:00 +0200 |
---|---|---|
committer | Guillaume Dollé <dolle.guillaume@gmail.com> | 2021-08-01 16:02:00 +0200 |
commit | 489b49e98f013ca495ee8314718df24b67b0e825 (patch) | |
tree | d184e1301d6f57ab2ae464e5e75fd7bc76855ee9 | |
parent | 1a22815d82ddfbd4f5c1f3240fb13155f517d79c (diff) |
Fix link library
- Address review comment https://github.com/opentrack/opentrack/pull/1306#discussion_r680484878
- Update ONNXRuntime module to use a specific `onnxruntime` target.
- Use OpenCV components instead.
NOTE:
ONNXRuntinme may provide their own ONNXRuntimeConfig.cmake and
ONNXRuntimeVersion.cmake in the future.
See https://github.com/microsoft/onnxruntime/issues/3124 for reference
-rw-r--r-- | cmake/FindONNXRuntime.cmake | 23 | ||||
-rw-r--r-- | tracker-neuralnet/CMakeLists.txt | 26 |
2 files changed, 32 insertions, 17 deletions
diff --git a/cmake/FindONNXRuntime.cmake b/cmake/FindONNXRuntime.cmake index 733bdb36..f485ecdd 100644 --- a/cmake/FindONNXRuntime.cmake +++ b/cmake/FindONNXRuntime.cmake @@ -13,10 +13,9 @@ # Output variable # --------------- # -# ONNXRuntime_FOUND Variable indicating that ONNXRuntime has been -# found. -# ONNXRuntime_LIBRARIES Library implementing ONNXRuntime -# ONNXRuntime_INCLUDE_DIRS Headers for ONNXRuntime +# ONNXRuntime_FOUND True if headers and requested libraries were found +# ONNXRuntime_LIBRARIES Component libraries to be linked. +# ONNXRuntime_INCLUDE_DIRS Include directories. find_library(ORT_LIB onnxruntime CMAKE_FIND_ROOT_PATH_BOTH) @@ -25,7 +24,17 @@ find_path(ORT_INCLUDE onnxruntime/core/session/onnxruntime_cxx_api.h if(ORT_LIB AND ORT_INCLUDE) set(ONNXRuntime_FOUND TRUE) - # For CMake output only - set(ONNXRuntime_LIBRARIES "${ORT_LIB}" CACHE STRING "ONNX Runtime libraries") - set(ONNXRuntime_INCLUDE_DIRS "${ORT_INCLUDE}" CACHE STRING "ONNX Runtime include path") + set(ONNXRuntime_INCLUDE_DIRS "${ORT_INCLUDE}") + + if(NOT TARGET onnxruntime) + add_library(onnxruntime UNKNOWN IMPORTED) + set_target_properties(onnxruntime PROPERTIES + IMPORTED_LOCATION "${ORT_LIB}" + INTERFACE_INCLUDE_DIRECTORIES "${ORT_INCLUDE}" + INTERFACE_LINK_LIBRARIES "onnxruntime") + list(APPEND ONNXRuntime_LIBRARIES onnxruntime) + endif() endif() + +unset(ORT_LIB CACHE) +unset(ORT_INCLUDE CACHE) diff --git a/tracker-neuralnet/CMakeLists.txt b/tracker-neuralnet/CMakeLists.txt index c38ba3d8..36395684 100644 --- a/tracker-neuralnet/CMakeLists.txt +++ b/tracker-neuralnet/CMakeLists.txt @@ -1,19 +1,25 @@ include(opentrack-opencv) -find_package(OpenCV QUIET) +find_package(OpenCV QUIET COMPONENTS imgproc core imgcodecs calib3d) find_package(OpenMP QUIET) # Used to control number of onnx threads. find_package(ONNXRuntime QUIET) if(OpenCV_FOUND AND ONNXRuntime_FOUND AND OpenMP_FOUND) otr_module(tracker-neuralnet) - target_include_directories(${self} SYSTEM PUBLIC - ${OpenCV_INCLUDE_DIRS} "${ONNXRuntime_INCLUDE_DIRS}") - target_link_libraries(${self} "${ONNXRuntime_LIBRARIES}" - opentrack-cv opencv_imgproc opencv_core - opencv_imgcodecs opencv_calib3d - OpenMP::OpenMP_C) - + target_include_directories(${self} + SYSTEM PRIVATE + ${OpenCV_INCLUDE_DIRS} + ${ONNXRuntime_INCLUDE_DIRS} + ) + target_link_libraries(${self} + opentrack-cv + ${ONNXRuntime_LIBRARIES} + ${OpenCV_LIBS} + OpenMP::OpenMP_C + ) install( - FILES "models/head-localizer.onnx" "models/head-pose.onnx" + FILES "models/head-localizer.onnx" + "models/head-pose.onnx" DESTINATION "${opentrack-libexec}/models" - PERMISSIONS ${opentrack-perms-file}) + PERMISSIONS ${opentrack-perms-file} + ) endif() |