From ef77e5d02ebf8bb2794301de143fb57890f5c330 Mon Sep 17 00:00:00 2001 From: Guillaume Dollé Date: Sun, 1 Aug 2021 03:47:02 +0200 Subject: Find ONNXRuntime using cmake modules --- tracker-neuralnet/CMakeLists.txt | 16 ++++++---------- tracker-neuralnet/ftnoir_tracker_neuralnet.h | 4 ++-- 2 files changed, 8 insertions(+), 12 deletions(-) (limited to 'tracker-neuralnet') diff --git a/tracker-neuralnet/CMakeLists.txt b/tracker-neuralnet/CMakeLists.txt index d06f0c83..f02911b0 100644 --- a/tracker-neuralnet/CMakeLists.txt +++ b/tracker-neuralnet/CMakeLists.txt @@ -1,18 +1,14 @@ include(opentrack-opencv) find_package(OpenCV QUIET) find_package(OpenMP QUIET) # Used to control number of onnx threads. -set(SDK_ONNX_LIBPATH "" CACHE FILEPATH "Full path of onnx library") - -if(OpenCV_FOUND AND SDK_ONNX_LIBPATH AND OpenMP_FOUND) - get_filename_component(ONNX_INCLUDE_DIR "${SDK_ONNX_LIBPATH}" DIRECTORY) - get_filename_component(ONNX_INCLUDE_DIR "${ONNX_INCLUDE_DIR}" ABSOLUTE) - set(ONNX_INCLUDE_DIR "${ONNX_INCLUDE_DIR}/../include") +find_package(ONNXRuntime REQUIRED) +if(OpenCV_FOUND AND ONNXRuntime_FOUND AND OpenMP_FOUND) otr_module(tracker-neuralnet) target_include_directories(${self} SYSTEM PUBLIC - ${OpenCV_INCLUDE_DIRS} "${ONNX_INCLUDE_DIR}") - target_link_libraries(${self} - opentrack-cv "${SDK_ONNX_LIBPATH}" opencv_imgproc opencv_core + ${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) @@ -20,4 +16,4 @@ if(OpenCV_FOUND AND SDK_ONNX_LIBPATH AND OpenMP_FOUND) FILES "models/head-localizer.onnx" "models/head-pose.onnx" DESTINATION "${opentrack-libexec}/models" PERMISSIONS ${opentrack-perms-file}) -endif() \ No newline at end of file +endif() diff --git a/tracker-neuralnet/ftnoir_tracker_neuralnet.h b/tracker-neuralnet/ftnoir_tracker_neuralnet.h index b2eca6e3..6c3af079 100644 --- a/tracker-neuralnet/ftnoir_tracker_neuralnet.h +++ b/tracker-neuralnet/ftnoir_tracker_neuralnet.h @@ -26,7 +26,7 @@ #include #include -#include +#include #include #include @@ -230,4 +230,4 @@ class neuralnet_metadata : public Metadata using neuralnet_tracker_ns::neuralnet_tracker; using neuralnet_tracker_ns::neuralnet_dialog; -using neuralnet_tracker_ns::neuralnet_metadata; \ No newline at end of file +using neuralnet_tracker_ns::neuralnet_metadata; -- cgit v1.2.3 From 1a22815d82ddfbd4f5c1f3240fb13155f517d79c Mon Sep 17 00:00:00 2001 From: Guillaume Dollé Date: Sun, 1 Aug 2021 03:57:21 +0200 Subject: Fix silent module --- tracker-neuralnet/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tracker-neuralnet') diff --git a/tracker-neuralnet/CMakeLists.txt b/tracker-neuralnet/CMakeLists.txt index f02911b0..c38ba3d8 100644 --- a/tracker-neuralnet/CMakeLists.txt +++ b/tracker-neuralnet/CMakeLists.txt @@ -1,7 +1,7 @@ include(opentrack-opencv) find_package(OpenCV QUIET) find_package(OpenMP QUIET) # Used to control number of onnx threads. -find_package(ONNXRuntime REQUIRED) +find_package(ONNXRuntime QUIET) if(OpenCV_FOUND AND ONNXRuntime_FOUND AND OpenMP_FOUND) otr_module(tracker-neuralnet) -- cgit v1.2.3 From 489b49e98f013ca495ee8314718df24b67b0e825 Mon Sep 17 00:00:00 2001 From: Guillaume Dollé Date: Sun, 1 Aug 2021 16:02:00 +0200 Subject: 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 --- cmake/FindONNXRuntime.cmake | 23 ++++++++++++++++------- tracker-neuralnet/CMakeLists.txt | 26 ++++++++++++++++---------- 2 files changed, 32 insertions(+), 17 deletions(-) (limited to 'tracker-neuralnet') 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() -- cgit v1.2.3 From 1e3d62e04f78e2d0e22b3ceb67aaf20a03f18bbc Mon Sep 17 00:00:00 2001 From: Guillaume Dollé Date: Mon, 2 Aug 2021 02:21:01 +0200 Subject: Fix include path for release package * Revert include header changes * Address the following review remarks for include path https://github.com/opentrack/opentrack/pull/1306#discussion_r680548570 https://github.com/opentrack/opentrack/pull/1306#discussion_r680548755 https://github.com/opentrack/opentrack/pull/1306#discussion_r680548800 https://github.com/opentrack/opentrack/pull/1306#discussion_r680549144 --- cmake/FindONNXRuntime.cmake | 4 +++- tracker-neuralnet/CMakeLists.txt | 9 ++------- tracker-neuralnet/ftnoir_tracker_neuralnet.h | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) (limited to 'tracker-neuralnet') diff --git a/cmake/FindONNXRuntime.cmake b/cmake/FindONNXRuntime.cmake index f485ecdd..7350ec0d 100644 --- a/cmake/FindONNXRuntime.cmake +++ b/cmake/FindONNXRuntime.cmake @@ -19,7 +19,9 @@ find_library(ORT_LIB onnxruntime CMAKE_FIND_ROOT_PATH_BOTH) -find_path(ORT_INCLUDE onnxruntime/core/session/onnxruntime_cxx_api.h + +find_path(ORT_INCLUDE onnxruntime_cxx_api.h + PATH_SUFFIXES onnxruntime/core/session CMAKE_FIND_ROOT_PATH_BOTH) if(ORT_LIB AND ORT_INCLUDE) diff --git a/tracker-neuralnet/CMakeLists.txt b/tracker-neuralnet/CMakeLists.txt index 36395684..bcdbbc81 100644 --- a/tracker-neuralnet/CMakeLists.txt +++ b/tracker-neuralnet/CMakeLists.txt @@ -5,14 +5,9 @@ find_package(ONNXRuntime QUIET) if(OpenCV_FOUND AND ONNXRuntime_FOUND AND OpenMP_FOUND) otr_module(tracker-neuralnet) - target_include_directories(${self} - SYSTEM PRIVATE - ${OpenCV_INCLUDE_DIRS} - ${ONNXRuntime_INCLUDE_DIRS} - ) target_link_libraries(${self} - opentrack-cv - ${ONNXRuntime_LIBRARIES} + opentrack-cv + onnxruntime ${OpenCV_LIBS} OpenMP::OpenMP_C ) diff --git a/tracker-neuralnet/ftnoir_tracker_neuralnet.h b/tracker-neuralnet/ftnoir_tracker_neuralnet.h index 6c3af079..7f496dc6 100644 --- a/tracker-neuralnet/ftnoir_tracker_neuralnet.h +++ b/tracker-neuralnet/ftnoir_tracker_neuralnet.h @@ -26,7 +26,7 @@ #include #include -#include +#include #include #include -- cgit v1.2.3