Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/modules/videoio/CMakeLists.txt
16337 views
1
set(the_description "Media I/O")
2
ocv_add_module(videoio opencv_imgproc opencv_imgcodecs WRAP java python)
3
4
# ----------------------------------------------------------------------------
5
# CMake file for videoio. See root CMakeLists.txt
6
# Some parts taken from version of Hartmut Seichter, HIT Lab NZ.
7
# Jose Luis Blanco, 2008
8
# ----------------------------------------------------------------------------
9
10
if(DEFINED WINRT AND NOT DEFINED ENABLE_WINRT_MODE_NATIVE)
11
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /ZW")
12
endif()
13
14
if(APPLE)
15
ocv_include_directories(${ZLIB_INCLUDE_DIRS})
16
list(APPEND VIDEOIO_LIBRARIES ${ZLIB_LIBRARIES})
17
endif()
18
19
set(videoio_hdrs
20
${CMAKE_CURRENT_LIST_DIR}/src/precomp.hpp
21
)
22
set(videoio_srcs
23
${CMAKE_CURRENT_LIST_DIR}/src/videoio_registry.cpp
24
${CMAKE_CURRENT_LIST_DIR}/src/videoio_c.cpp
25
${CMAKE_CURRENT_LIST_DIR}/src/cap.cpp
26
${CMAKE_CURRENT_LIST_DIR}/src/cap_images.cpp
27
${CMAKE_CURRENT_LIST_DIR}/src/cap_mjpeg_encoder.cpp
28
${CMAKE_CURRENT_LIST_DIR}/src/cap_mjpeg_decoder.cpp
29
${CMAKE_CURRENT_LIST_DIR}/src/container_avi.cpp
30
)
31
32
file(GLOB videoio_ext_hdrs
33
"${CMAKE_CURRENT_LIST_DIR}/include/opencv2/*.hpp"
34
"${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/*.hpp"
35
"${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/*.h")
36
37
# Removing WinRT API headers by default
38
list(REMOVE_ITEM videoio_ext_hdrs "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/cap_winrt.hpp")
39
40
# Dependencies used by the implementation referenced
41
# below are not available on WinRT 8.0.
42
# Enabling it for WiRT 8.1+ only.
43
if(DEFINED WINRT AND NOT DEFINED WINRT_8_0 AND NOT DEFINED ENABLE_WINRT_MODE_NATIVE)
44
45
# WinRT detected. Adding WinRT API header
46
message(STATUS " ${name}: WinRT detected. Adding WinRT API header")
47
list(APPEND videoio_ext_hdrs "${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/cap_winrt.hpp")
48
49
# Adding WinRT internal sources and headers
50
list(APPEND videoio_srcs
51
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt_capture.cpp
52
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt_bridge.cpp
53
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt_video.cpp
54
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt/CaptureFrameGrabber.cpp
55
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt/MediaStreamSink.cpp)
56
list(APPEND videoio_hdrs
57
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt_capture.hpp
58
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt_bridge.hpp
59
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt_video.hpp
60
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt/MFIncludes.hpp
61
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt/CaptureFrameGrabber.hpp
62
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt/MediaSink.hpp
63
${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt/MediaStreamSink.hpp)
64
endif()
65
66
if(HAVE_MFX)
67
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_common.cpp)
68
list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_common.hpp)
69
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_reader.cpp)
70
list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_reader.hpp)
71
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_writer.cpp)
72
list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_writer.hpp)
73
list(APPEND VIDEOIO_LIBRARIES mfx)
74
endif()
75
76
if(WIN32 AND NOT ARM)
77
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_cmu.cpp)
78
endif()
79
80
if (WIN32 AND HAVE_DSHOW)
81
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dshow.cpp)
82
list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dshow.hpp)
83
if (MINGW64)
84
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTRSAFE_NO_DEPRECATE")
85
endif()
86
endif()
87
88
if (WIN32 AND HAVE_MSMF)
89
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_msmf.hpp)
90
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_msmf.cpp)
91
if (HAVE_DXVA)
92
add_definitions(-DHAVE_DXVA)
93
endif()
94
endif()
95
96
if (WIN32 AND HAVE_VFW)
97
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_vfw.cpp)
98
endif()
99
100
if(HAVE_XINE)
101
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_xine.cpp)
102
endif(HAVE_XINE)
103
104
if(HAVE_DC1394_2)
105
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dc1394_v2.cpp)
106
endif(HAVE_DC1394_2)
107
108
if(HAVE_DC1394)
109
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dc1394.cpp)
110
endif(HAVE_DC1394)
111
112
if(HAVE_GSTREAMER)
113
IF(WIN32)
114
INCLUDE_DIRECTORIES(${GSTREAMER_INCLUDE_DIR})
115
list(APPEND VIDEOIO_LIBRARIES ${GSTREAMER_LIBRARIES})
116
ENDIF(WIN32)
117
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_gstreamer.cpp)
118
endif(HAVE_GSTREAMER)
119
120
if(HAVE_UNICAP)
121
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_unicap.cpp)
122
endif(HAVE_UNICAP)
123
124
if(HAVE_LIBV4L)
125
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_libv4l.cpp)
126
elseif(HAVE_CAMV4L2 OR HAVE_VIDEOIO)
127
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_v4l.cpp)
128
endif()
129
130
if(HAVE_OPENNI)
131
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_openni.cpp)
132
ocv_include_directories(${OPENNI_INCLUDE_DIR})
133
list(APPEND VIDEOIO_LIBRARIES ${OPENNI_LIBRARY})
134
endif(HAVE_OPENNI)
135
136
if(HAVE_OPENNI2)
137
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_openni2.cpp)
138
ocv_include_directories(${OPENNI2_INCLUDE_DIR})
139
list(APPEND VIDEOIO_LIBRARIES ${OPENNI2_LIBRARY})
140
endif(HAVE_OPENNI2)
141
142
if(HAVE_XIMEA)
143
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_ximea.cpp)
144
if(XIMEA_PATH)
145
ocv_include_directories(${XIMEA_PATH})
146
endif()
147
if(XIMEA_LIBRARY_DIR)
148
link_directories("${XIMEA_LIBRARY_DIR}")
149
endif()
150
if(WIN32 AND X86_64)
151
list(APPEND VIDEOIO_LIBRARIES xiapi64)
152
elseif(WIN32)
153
list(APPEND VIDEOIO_LIBRARIES xiapi32)
154
elseif(APPLE)
155
list(APPEND VIDEOIO_LIBRARIES "-framework m3api")
156
else()
157
list(APPEND VIDEOIO_LIBRARIES m3api)
158
endif()
159
endif(HAVE_XIMEA)
160
161
if(HAVE_FFMPEG)
162
list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_ffmpeg_impl.hpp)
163
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_ffmpeg.cpp)
164
if(UNIX AND BZIP2_LIBRARIES)
165
list(APPEND VIDEOIO_LIBRARIES ${BZIP2_LIBRARIES})
166
endif()
167
if(APPLE)
168
list(APPEND VIDEOIO_LIBRARIES "-framework VideoDecodeAcceleration" bz2)
169
endif()
170
if(HAVE_FFMPEG_WRAPPER)
171
add_definitions(-DHAVE_FFMPEG_WRAPPER=1)
172
endif()
173
endif(HAVE_FFMPEG)
174
175
if(HAVE_PVAPI)
176
add_definitions(-DHAVE_PVAPI)
177
add_definitions(${PVAPI_DEFINITIONS})
178
ocv_include_directories(${PVAPI_INCLUDE_PATH})
179
set(videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_pvapi.cpp ${videoio_srcs})
180
list(APPEND VIDEOIO_LIBRARIES ${PVAPI_LIBRARY})
181
endif()
182
183
if(HAVE_GIGE_API)
184
add_definitions(-DHAVE_GIGE_API)
185
ocv_include_directories(${GIGEAPI_INCLUDE_PATH})
186
set(videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_giganetix.cpp ${videoio_srcs})
187
list(APPEND VIDEOIO_LIBRARIES ${GIGEAPI_LIBRARIES})
188
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_giganetix.cpp)
189
endif(HAVE_GIGE_API)
190
191
if(HAVE_ARAVIS_API)
192
add_definitions(-DHAVE_ARAVIS_API)
193
ocv_include_directories(${ARAVIS_INCLUDE_PATH})
194
set(videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_aravis.cpp ${videoio_srcs})
195
list(APPEND VIDEOIO_LIBRARIES ${ARAVIS_LIBRARIES})
196
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_aravis.cpp)
197
endif(HAVE_ARAVIS_API)
198
199
if(HAVE_AVFOUNDATION)
200
if(IOS)
201
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_avfoundation.mm)
202
list(APPEND VIDEOIO_LIBRARIES "-framework AVFoundation" "-framework QuartzCore")
203
else()
204
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_avfoundation_mac.mm)
205
list(APPEND VIDEOIO_LIBRARIES "-framework Cocoa" "-framework Accelerate" "-framework AVFoundation" "-framework CoreGraphics" "-framework CoreMedia" "-framework CoreVideo" "-framework QuartzCore")
206
endif()
207
endif()
208
209
if(HAVE_QUICKTIME)
210
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_qt.cpp)
211
list(APPEND VIDEOIO_LIBRARIES "-framework Carbon" "-framework QuickTime" "-framework CoreFoundation" "-framework QuartzCore")
212
elseif(HAVE_QTKIT)
213
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_qtkit.mm)
214
list(APPEND VIDEOIO_LIBRARIES "-framework QTKit" "-framework QuartzCore" "-framework AppKit")
215
endif()
216
217
if(HAVE_INTELPERC)
218
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_intelperc.cpp)
219
ocv_include_directories(${INTELPERC_INCLUDE_DIR})
220
list(APPEND VIDEOIO_LIBRARIES ${INTELPERC_LIBRARIES})
221
endif(HAVE_INTELPERC)
222
223
if(HAVE_LIBREALSENSE)
224
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_librealsense.cpp)
225
ocv_include_directories(${LIBREALSENSE_INCLUDE_DIR})
226
list(APPEND VIDEOIO_LIBRARIES ${LIBREALSENSE_LIBRARIES})
227
endif(HAVE_LIBREALSENSE)
228
229
if(HAVE_GPHOTO2)
230
list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_gphoto2.cpp)
231
endif(HAVE_GPHOTO2)
232
233
if(IOS)
234
list(APPEND videoio_srcs
235
${CMAKE_CURRENT_LIST_DIR}/src/cap_ios_abstract_camera.mm
236
${CMAKE_CURRENT_LIST_DIR}/src/cap_ios_photo_camera.mm
237
${CMAKE_CURRENT_LIST_DIR}/src/cap_ios_video_camera.mm)
238
239
list(APPEND VIDEOIO_LIBRARIES "-framework Accelerate" "-framework AVFoundation" "-framework CoreGraphics" "-framework CoreImage" "-framework CoreMedia" "-framework CoreVideo" "-framework QuartzCore" "-framework UIKit")
240
endif()
241
242
if(UNIX)
243
#these variables are set by CHECK_MODULE macro
244
foreach(P ${VIDEOIO_INCLUDE_DIRS})
245
ocv_include_directories(${P})
246
endforeach()
247
248
foreach(P ${VIDEOIO_LIBRARY_DIRS})
249
link_directories(${P})
250
endforeach()
251
endif()
252
253
source_group("Src" FILES ${videoio_srcs} ${videoio_hdrs})
254
source_group("Include" FILES ${videoio_ext_hdrs})
255
ocv_set_module_sources(HEADERS ${videoio_ext_hdrs} SOURCES ${videoio_srcs} ${videoio_hdrs})
256
ocv_module_include_directories()
257
258
ocv_create_module(${VIDEOIO_LIBRARIES})
259
260
macro(ocv_videoio_configure_target)
261
if(APPLE)
262
add_apple_compiler_options(the_module)
263
endif()
264
265
if(MSVC)
266
set_target_properties(${the_module} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /NODEFAULTLIB:libcmt.lib /DEBUG")
267
if(DEFINED WINRT AND NOT DEFINED ENABLE_WINRT_MODE_NATIVE)
268
set_target_properties(${the_module} PROPERTIES VS_DESKTOP_EXTENSIONS_VERSION "${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}")
269
endif()
270
endif()
271
272
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations)
273
274
if(WIN32 AND HAVE_FFMPEG_WRAPPER)
275
#copy ffmpeg dll to the output folder
276
if(MSVC64 OR MINGW64)
277
set(FFMPEG_SUFFIX _64)
278
endif()
279
280
set(ffmpeg_dir "${OpenCV_BINARY_DIR}/3rdparty/ffmpeg")
281
set(ffmpeg_bare_name "opencv_ffmpeg${FFMPEG_SUFFIX}.dll")
282
set(ffmpeg_bare_name_ver "opencv_ffmpeg${OPENCV_DLLVERSION}${FFMPEG_SUFFIX}.dll")
283
set(ffmpeg_path "${ffmpeg_dir}/${ffmpeg_bare_name}")
284
285
if(MSVC_IDE)
286
add_custom_command(TARGET ${the_module} POST_BUILD
287
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Release/${ffmpeg_bare_name_ver}"
288
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Debug/${ffmpeg_bare_name_ver}"
289
COMMENT "Copying ${ffmpeg_path} to the output directory")
290
elseif(MSVC AND (CMAKE_GENERATOR MATCHES "Visual"))
291
add_custom_command(TARGET ${the_module} POST_BUILD
292
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/${ffmpeg_bare_name_ver}"
293
COMMENT "Copying ${ffmpeg_path} to the output directory")
294
else()
295
add_custom_command(TARGET ${the_module} POST_BUILD
296
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${ffmpeg_bare_name_ver}"
297
COMMENT "Copying ${ffmpeg_path} to the output directory")
298
endif()
299
300
install(FILES "${ffmpeg_path}" DESTINATION ${OPENCV_BIN_INSTALL_PATH} COMPONENT libs RENAME "${ffmpeg_bare_name_ver}")
301
302
if(INSTALL_CREATE_DISTRIB)
303
install(FILES "${ffmpeg_dir}/opencv_ffmpeg.dll" DESTINATION "bin/" COMPONENT libs RENAME "opencv_ffmpeg${OPENCV_DLLVERSION}.dll")
304
install(FILES "${ffmpeg_dir}/opencv_ffmpeg_64.dll" DESTINATION "bin/" COMPONENT libs RENAME "opencv_ffmpeg${OPENCV_DLLVERSION}_64.dll")
305
endif()
306
endif()
307
endmacro()
308
309
if(NOT BUILD_opencv_world)
310
ocv_videoio_configure_target()
311
endif()
312
313
ocv_add_accuracy_tests()
314
ocv_add_perf_tests()
315
316