diff options
Diffstat (limited to 'tracker-aruco/CMakeLists.txt')
| -rw-r--r-- | tracker-aruco/CMakeLists.txt | 20 | 
1 files changed, 18 insertions, 2 deletions
| diff --git a/tracker-aruco/CMakeLists.txt b/tracker-aruco/CMakeLists.txt index b9f62a07..84dc7fba 100644 --- a/tracker-aruco/CMakeLists.txt +++ b/tracker-aruco/CMakeLists.txt @@ -2,9 +2,25 @@ find_package(OpenCV QUIET)  if(OpenCV_FOUND)      set(SDK_ARUCO_LIBPATH "" CACHE FILEPATH "Aruco paper marker tracker static library path")      if(SDK_ARUCO_LIBPATH) +        set(modules "${SDK_ARUCO_LIBPATH}" opencv_core opencv_calib3d opencv_imgproc opencv_videoio) + +        file(TIMESTAMP "${SDK_ARUCO_LIBPATH}" tm "%s" UTC) +        set(cache-str "${tm}|${SDK_ARUCO_LIBPATH}") + +        if(NOT aruco_has-working-abi STREQUAL "${cache-str}") +            try_compile(result "${CMAKE_CURRENT_BINARY_DIR}" +                               SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/compile-test/abi.cpp" +                               OUTPUT_VARIABLE krap +                               LINK_LIBRARIES ${modules}) +            if(NOT result) +                message(FATAL_ERROR "${krap}\n" "Must use Aruco fork from <https://github.com/opentrack/aruco>") +            endif() + +            set(aruco_has-working-abi "${cache-str}" CACHE INTERNAL "" FORCE) +        endif() +          otr_module(tracker-aruco) -        set(modules opencv_core opencv_calib3d opencv_imgproc opencv_videoio) -        target_link_libraries(opentrack-tracker-aruco opentrack-cv ${SDK_ARUCO_LIBPATH} ${modules}) +        target_link_libraries(opentrack-tracker-aruco opentrack-cv ${modules})          target_include_directories(opentrack-tracker-aruco SYSTEM PUBLIC ${OpenCV_INCLUDE_DIRS})      endif()  endif() | 
