-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
41 lines (33 loc) · 1.28 KB
/
Copy pathCMakeLists.txt
File metadata and controls
41 lines (33 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
cmake_minimum_required(VERSION 3.20)
project(OpenTrackIR LANGUAGES C CXX)
option(OPENTRACKIR_BUILD_TESTS "Build OpenTrackIR native tests" ON)
option(OPENTRACKIR_BUILD_PREVIEW "Build the OpenCV preview harness when dependencies are present" ON)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(LIBUSB QUIET IMPORTED_TARGET libusb-1.0)
endif()
if(LIBUSB_FOUND)
add_library(opentrackir_libusb INTERFACE)
target_link_libraries(opentrackir_libusb INTERFACE PkgConfig::LIBUSB)
else()
find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h PATH_SUFFIXES libusb-1.0)
find_library(LIBUSB_LIBRARY NAMES usb-1.0 libusb-1.0)
if(NOT LIBUSB_INCLUDE_DIR OR NOT LIBUSB_LIBRARY)
message(FATAL_ERROR "libusb-1.0 is required to build the native TrackIR library")
endif()
add_library(opentrackir_libusb INTERFACE)
target_include_directories(opentrackir_libusb INTERFACE "${LIBUSB_INCLUDE_DIR}")
target_link_libraries(opentrackir_libusb INTERFACE "${LIBUSB_LIBRARY}")
endif()
if(OPENTRACKIR_BUILD_TESTS)
enable_testing()
endif()
find_package(OpenCV QUIET COMPONENTS core highgui imgproc)
add_subdirectory(c)
if(OPENTRACKIR_BUILD_PREVIEW)
add_subdirectory(cpp)
endif()