forked from IntelRealSense/librealsense
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
184 lines (159 loc) · 5.06 KB
/
CMakeLists.txt
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# minimum required cmake version: 3.1.0
cmake_minimum_required(VERSION 3.1.0)
project(RealsensePythonWrappers)
set(PYRS_CPP
pyrealsense2.cpp
c_files.cpp
pyrs_advanced_mode.cpp
pyrs_context.cpp
pyrs_device.cpp
pyrs_export.cpp
pyrs_frame.cpp
pyrs_internal.cpp
pyrs_options.cpp
pyrs_pipeline.cpp
pyrs_processing.cpp
pyrs_record_playback.cpp
pyrs_sensor.cpp
pyrs_types.cpp
pyrsutil.cpp
../../common/metadata-helper.cpp
)
pybind11_add_module(pyrealsense2 SHARED pyrealsense2.h ${PYRS_CPP})
set(CMAKECONFIG_PY_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/pyrealsense2")
target_link_libraries(pyrealsense2 PRIVATE ${DEPENDENCIES})
set_target_properties(pyrealsense2 PROPERTIES VERSION
${REALSENSE_VERSION_STRING} SOVERSION "${REALSENSE_VERSION_MAJOR}.${REALSENSE_VERSION_MINOR}")
set_target_properties( pyrealsense2
PROPERTIES
FOLDER Library/Python
)
set(RAW_RS
pybackend.cpp
pybackend_extras.h
pybackend_extras.cpp
../../src/types.h
../../src/types.cpp
../../src/log.cpp
../../src/backend.h
../../src/backend.cpp
../../src/frame.cpp
../../src/environment.cpp
../../src/to-string.cpp
../../src/core/streaming.cpp
)
if(UNIX)
list(APPEND RAW_RS
../../src/libusb/interface-libusb.cpp
../../src/libusb/device-libusb.cpp
../../src/libusb/messenger-libusb.cpp
../../src/libusb/enumerator-libusb.cpp
../../src/libusb/request-libusb.cpp
../../src/libusb/context-libusb.cpp
)
endif()
if(WIN32)
list(APPEND RAW_RS
../../src/win/win-helpers.cpp
../../src/winusb/interface-winusb.cpp
../../src/winusb/device-winusb.cpp
../../src/winusb/messenger-winusb.cpp
../../src/winusb/enumerator-winusb.cpp
../../src/winusb/request-winusb.cpp
)
endif()
if(${BACKEND} STREQUAL RS2_USE_V4L2_BACKEND)
list(APPEND RAW_RS
../../src/linux/backend-v4l2.cpp
../../src/linux/backend-hid.cpp
)
endif()
if(${BACKEND} STREQUAL RS2_USE_WMF_BACKEND)
list(APPEND RAW_RS
../../src/win/win-helpers.cpp
../../src/mf/mf-uvc.cpp
../../src/mf/mf-hid.cpp
../../src/mf/mf-backend.cpp
)
endif()
if(${FORCE_RSUSB_BACKEND})
list(APPEND RAW_RS
../../src/rsusb-backend/rsusb-backend.h
../../src/rsusb-backend/rsusb-backend.cpp
../../src/uvc/uvc-device.cpp
../../src/uvc/uvc-parser.cpp
../../src/uvc/uvc-streamer.cpp
../../src/hid/hid-device.cpp
../../src/hid/hid-device.h
)
if(APPLE)
list(APPEND RAW_RS
../../third-party/hidapi/hidapi.cpp
../../third-party/hidapi/hidapi.h
)
endif()
endif()
if(${BUILD_EASYLOGGINGPP})
list(APPEND RAW_RS
../../third-party/easyloggingpp/src/easylogging++.h
../../third-party/easyloggingpp/src/easylogging++.cc
)
endif()
if(${BACKEND} STREQUAL RS2_USE_WINUSB_UVC_BACKEND)
list(APPEND RAW_RS
../../src/win7/rsusb-backend-windows.h
../../src/win7/rsusb-backend-windows.cpp
)
endif()
if(${BACKEND} STREQUAL RS2_USE_LIBUVC_BACKEND)
list(APPEND RAW_RS
../../src/libuvc/rsusb-backend-linux.h
../../src/libuvc/rsusb-backend-linux.cpp
)
endif()
pybind11_add_module(pybackend2 SHARED ${RAW_RS})
if(USE_EXTERNAL_USB)
add_dependencies(pybackend2 libusb)
endif()
target_link_libraries(pybackend2 PRIVATE rsutils usb ${CMAKE_THREAD_LIBS_INIT})
set_target_properties(pybackend2 PROPERTIES
VERSION ${REALSENSE_VERSION_STRING}
SOVERSION ${REALSENSE_VERSION_MAJOR})
set_target_properties( pybackend2
PROPERTIES
FOLDER Library/Python
)
target_include_directories(pybackend2 PRIVATE ${CMAKE_SOURCE_DIR}/include)
if(${FORCE_RSUSB_BACKEND})
if(APPLE)
target_include_directories(pybackend2 PRIVATE ${CMAKE_SOURCE_DIR}/third-party/hidapi/)
endif()
endif()
write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/pyrealsense2ConfigVersion.cmake"
VERSION ${REALSENSE_VERSION_STRING} COMPATIBILITY AnyNewerVersion)
configure_package_config_file(../../CMake/pyrealsense2Config.cmake.in pyrealsense2Config.cmake
INSTALL_DESTINATION ${CMAKECONFIG_PY_INSTALL_DIR}
INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/bin
PATH_VARS CMAKE_INSTALL_INCLUDEDIR
)
install(TARGETS pybackend2 pyrealsense2
EXPORT pyrealsense2Targets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${PYTHON_INSTALL_DIR}
ARCHIVE DESTINATION ${PYTHON_INSTALL_DIR}
)
install(EXPORT pyrealsense2Targets
FILE pyrealsense2Targets.cmake
NAMESPACE pyrealsense2::
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/pyrealsense2")
install(FILES "${CMAKE_BINARY_DIR}/wrappers/python/pyrealsense2Config.cmake"
DESTINATION ${CMAKECONFIG_PY_INSTALL_DIR}
)
install(FILES "${CMAKE_BINARY_DIR}/wrappers/python/pyrealsense2ConfigVersion.cmake"
DESTINATION ${CMAKECONFIG_PY_INSTALL_DIR}
)
target_include_directories(pybackend2 PRIVATE ../../src)
target_include_directories(pyrealsense2 PRIVATE ../../src)
if (BUILD_PYTHON_DOCS)
add_subdirectory(docs)
endif()