Skip to content

Commit bf48d65

Browse files
Akhil Kumarrbsheth
authored andcommitted
update ffmpeg hunterizations (see detect_ffmpeg.cmake)
fix ffmpeg build test find eigen3 dependecy automatically fixed broken if got rid of CHECK_MODULE and ALIASOF
1 parent 0669c34 commit bf48d65

File tree

4 files changed

+26
-279
lines changed

4 files changed

+26
-279
lines changed

cmake/OpenCVFindLibsVideo.cmake

Lines changed: 0 additions & 277 deletions
Original file line numberDiff line numberDiff line change
@@ -1,280 +1,3 @@
1-
# ----------------------------------------------------------------------------
2-
# Detect 3rd-party video IO libraries
3-
# ----------------------------------------------------------------------------
4-
5-
# --- GStreamer ---
6-
ocv_clear_vars(HAVE_GSTREAMER)
7-
# try to find gstreamer 1.x first if 0.10 was not requested
8-
if(WITH_GSTREAMER AND NOT WITH_GSTREAMER_0_10)
9-
if(WIN32)
10-
SET(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_LIST_DIR}")
11-
FIND_PACKAGE(GstreamerWindows)
12-
IF(GSTREAMER_gstbase_LIBRARY AND GSTREAMER_gstvideo_LIBRARY AND GSTREAMER_gstapp_LIBRARY AND GSTREAMER_gstpbutils_LIBRARY AND GSTREAMER_gstriff_LIBRARY)
13-
set(HAVE_GSTREAMER TRUE)
14-
set(GSTREAMER_BASE_VERSION 1.0)
15-
set(GSTREAMER_VIDEO_VERSION 1.0)
16-
set(GSTREAMER_APP_VERSION 1.0)
17-
set(GSTREAMER_RIFF_VERSION 1.0)
18-
set(GSTREAMER_PBUTILS_VERSION 1.0)
19-
ENDIF(GSTREAMER_gstbase_LIBRARY AND GSTREAMER_gstvideo_LIBRARY AND GSTREAMER_gstapp_LIBRARY AND GSTREAMER_gstpbutils_LIBRARY AND GSTREAMER_gstriff_LIBRARY)
20-
21-
else(WIN32)
22-
CHECK_MODULE(gstreamer-base-1.0 HAVE_GSTREAMER_BASE VIDEOIO)
23-
CHECK_MODULE(gstreamer-video-1.0 HAVE_GSTREAMER_VIDEO VIDEOIO)
24-
CHECK_MODULE(gstreamer-app-1.0 HAVE_GSTREAMER_APP VIDEOIO)
25-
CHECK_MODULE(gstreamer-riff-1.0 HAVE_GSTREAMER_RIFF VIDEOIO)
26-
CHECK_MODULE(gstreamer-pbutils-1.0 HAVE_GSTREAMER_PBUTILS VIDEOIO)
27-
28-
if(HAVE_GSTREAMER_BASE AND HAVE_GSTREAMER_VIDEO AND HAVE_GSTREAMER_APP AND HAVE_GSTREAMER_RIFF AND HAVE_GSTREAMER_PBUTILS)
29-
set(HAVE_GSTREAMER TRUE)
30-
set(GSTREAMER_BASE_VERSION ${ALIASOF_gstreamer-base-1.0_VERSION})
31-
set(GSTREAMER_VIDEO_VERSION ${ALIASOF_gstreamer-video-1.0_VERSION})
32-
set(GSTREAMER_APP_VERSION ${ALIASOF_gstreamer-app-1.0_VERSION})
33-
set(GSTREAMER_RIFF_VERSION ${ALIASOF_gstreamer-riff-1.0_VERSION})
34-
set(GSTREAMER_PBUTILS_VERSION ${ALIASOF_gstreamer-pbutils-1.0_VERSION})
35-
endif()
36-
endif(WIN32)
37-
endif(WITH_GSTREAMER AND NOT WITH_GSTREAMER_0_10)
38-
39-
# if gstreamer 1.x was not found, or we specified we wanted 0.10, try to find it
40-
if(WITH_GSTREAMER AND NOT HAVE_GSTREAMER OR WITH_GSTREAMER_0_10)
41-
CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER_BASE VIDEOIO)
42-
CHECK_MODULE(gstreamer-video-0.10 HAVE_GSTREAMER_VIDEO VIDEOIO)
43-
CHECK_MODULE(gstreamer-app-0.10 HAVE_GSTREAMER_APP VIDEOIO)
44-
CHECK_MODULE(gstreamer-riff-0.10 HAVE_GSTREAMER_RIFF VIDEOIO)
45-
CHECK_MODULE(gstreamer-pbutils-0.10 HAVE_GSTREAMER_PBUTILS VIDEOIO)
46-
47-
if(HAVE_GSTREAMER_BASE AND HAVE_GSTREAMER_VIDEO AND HAVE_GSTREAMER_APP AND HAVE_GSTREAMER_RIFF AND HAVE_GSTREAMER_PBUTILS)
48-
set(HAVE_GSTREAMER TRUE)
49-
set(GSTREAMER_BASE_VERSION ${ALIASOF_gstreamer-base-0.10_VERSION})
50-
set(GSTREAMER_VIDEO_VERSION ${ALIASOF_gstreamer-video-0.10_VERSION})
51-
set(GSTREAMER_APP_VERSION ${ALIASOF_gstreamer-app-0.10_VERSION})
52-
set(GSTREAMER_RIFF_VERSION ${ALIASOF_gstreamer-riff-0.10_VERSION})
53-
set(GSTREAMER_PBUTILS_VERSION ${ALIASOF_gstreamer-pbutils-0.10_VERSION})
54-
endif()
55-
endif(WITH_GSTREAMER AND NOT HAVE_GSTREAMER OR WITH_GSTREAMER_0_10)
56-
57-
# --- PvApi ---
58-
ocv_clear_vars(HAVE_PVAPI)
59-
if(WITH_PVAPI)
60-
find_path(PVAPI_INCLUDE_PATH "PvApi.h"
61-
PATHS /usr/local /opt /usr ENV ProgramFiles ENV ProgramW6432
62-
PATH_SUFFIXES include "Allied Vision Technologies/GigESDK/inc-pc" "AVT GigE SDK/inc-pc" "GigESDK/inc-pc"
63-
DOC "The path to PvAPI header")
64-
65-
if(PVAPI_INCLUDE_PATH)
66-
if(X86 AND NOT WIN32)
67-
set(PVAPI_SDK_SUBDIR x86)
68-
elseif(X86_64)
69-
set(PVAPI_SDK_SUBDIR x64)
70-
elseif(ARM)
71-
set(PVAPI_SDK_SUBDIR arm)
72-
endif()
73-
74-
get_filename_component(_PVAPI_LIBRARY_HINT "${PVAPI_INCLUDE_PATH}/../lib-pc" ABSOLUTE)
75-
76-
find_library(PVAPI_LIBRARY NAMES "PvAPI" PATHS "${_PVAPI_LIBRARY_HINT}")
77-
78-
if(PVAPI_LIBRARY)
79-
if(WIN32)
80-
if(MINGW)
81-
set(PVAPI_DEFINITIONS "-DPVDECL=__stdcall")
82-
endif(MINGW)
83-
endif()
84-
set(HAVE_PVAPI TRUE)
85-
endif()
86-
endif(PVAPI_INCLUDE_PATH)
87-
endif(WITH_PVAPI)
88-
89-
# --- GigEVisionSDK ---
90-
ocv_clear_vars(HAVE_GIGE_API)
91-
if(WITH_GIGEAPI)
92-
find_path(GIGEAPI_INCLUDE_PATH "GigEVisionSDK.h"
93-
PATHS /usr/local /var /opt /usr ENV ProgramFiles ENV ProgramW6432
94-
PATH_SUFFIXES include "Smartek Vision Technologies/GigEVisionSDK/gige_cpp" "GigEVisionSDK/gige_cpp" "GigEVisionSDK/gige_c"
95-
DOC "The path to Smartek GigEVisionSDK header")
96-
FIND_LIBRARY(GIGEAPI_LIBRARIES NAMES GigEVisionSDK)
97-
if(GIGEAPI_LIBRARIES AND GIGEAPI_INCLUDE_PATH)
98-
set(HAVE_GIGE_API TRUE)
99-
endif()
100-
endif(WITH_GIGEAPI)
101-
102-
# --- Aravis SDK ---
103-
ocv_clear_vars(HAVE_ARAVIS_API)
104-
if(WITH_ARAVIS)
105-
check_module(glib-2.0 HAVE_ARAVIS_GLIB VIDEOIO)
106-
if(HAVE_ARAVIS_GLIB)
107-
find_path(ARAVIS_INCLUDE_PATH "arv.h"
108-
PATHS /usr/local /var /opt /usr ENV ProgramFiles ENV ProgramW6432
109-
PATH_SUFFIXES include "aravis-0.6" "aravis-0.4"
110-
DOC "The path to Aravis SDK headers")
111-
find_library(ARAVIS_LIBRARIES NAMES "aravis-0.6" "aravis-0.4" )
112-
if(ARAVIS_LIBRARIES AND ARAVIS_INCLUDE_PATH)
113-
set(HAVE_ARAVIS_API TRUE)
114-
endif()
115-
else()
116-
message("Can not build Aravis support without glib2")
117-
endif()
118-
endif(WITH_ARAVIS)
119-
120-
# --- Dc1394 ---
121-
ocv_clear_vars(HAVE_DC1394 HAVE_DC1394_2)
122-
if(WITH_1394)
123-
if(WIN32 AND MINGW)
124-
find_path(CMU1394_INCLUDE_PATH "/1394common.h"
125-
PATH_SUFFIXES include
126-
DOC "The path to cmu1394 headers")
127-
find_path(DC1394_2_INCLUDE_PATH "/dc1394/dc1394.h"
128-
PATH_SUFFIXES include
129-
DOC "The path to DC1394 2.x headers")
130-
if(CMU1394_INCLUDE_PATH AND DC1394_2_INCLUDE_PATH)
131-
set(CMU1394_LIB_DIR "${CMU1394_INCLUDE_PATH}/../lib" CACHE PATH "Full path of CMU1394 library directory")
132-
set(DC1394_2_LIB_DIR "${DC1394_2_INCLUDE_PATH}/../lib" CACHE PATH "Full path of DC1394 2.x library directory")
133-
if(EXISTS "${CMU1394_LIB_DIR}/lib1394camera.a" AND EXISTS "${DC1394_2_LIB_DIR}/libdc1394.a")
134-
set(HAVE_DC1394_2 TRUE)
135-
endif()
136-
endif()
137-
if(HAVE_DC1394_2)
138-
ocv_parse_pkg("libdc1394-2" "${DC1394_2_LIB_DIR}/pkgconfig" "")
139-
ocv_include_directories(${DC1394_2_INCLUDE_PATH})
140-
set(VIDEOIO_LIBRARIES ${VIDEOIO_LIBRARIES}
141-
"${DC1394_2_LIB_DIR}/libdc1394.a"
142-
"${CMU1394_LIB_DIR}/lib1394camera.a")
143-
endif(HAVE_DC1394_2)
144-
else(WIN32 AND MINGW)
145-
CHECK_MODULE(libdc1394-2 HAVE_DC1394_2 VIDEOIO)
146-
if(NOT HAVE_DC1394_2)
147-
CHECK_MODULE(libdc1394 HAVE_DC1394 VIDEOIO)
148-
endif()
149-
endif(WIN32 AND MINGW)
150-
endif(WITH_1394)
151-
152-
# --- xine ---
153-
ocv_clear_vars(HAVE_XINE)
154-
if(WITH_XINE)
155-
CHECK_MODULE(libxine HAVE_XINE VIDEOIO)
156-
endif(WITH_XINE)
157-
158-
# --- V4L ---
159-
ocv_clear_vars(HAVE_CAMV4L2 HAVE_VIDEOIO)
160-
if(WITH_V4L)
161-
CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2)
162-
CHECK_INCLUDE_FILE(sys/videoio.h HAVE_VIDEOIO)
163-
endif(WITH_V4L)
164-
165-
# --- OpenNI ---
166-
ocv_clear_vars(HAVE_OPENNI HAVE_OPENNI_PRIME_SENSOR_MODULE)
167-
if(WITH_OPENNI)
168-
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenNI.cmake")
169-
endif(WITH_OPENNI)
170-
171-
ocv_clear_vars(HAVE_OPENNI2)
172-
if(WITH_OPENNI2)
173-
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenNI2.cmake")
174-
endif(WITH_OPENNI2)
175-
176-
# --- XIMEA ---
177-
ocv_clear_vars(HAVE_XIMEA)
178-
if(WITH_XIMEA)
179-
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindXimea.cmake")
180-
if(XIMEA_FOUND)
181-
set(HAVE_XIMEA TRUE)
182-
endif()
183-
endif(WITH_XIMEA)
184-
185-
# --- FFMPEG ---
186-
ocv_clear_vars(HAVE_FFMPEG)
187-
if(WITH_FFMPEG) # try FFmpeg autodetection
188-
if(OPENCV_FFMPEG_USE_FIND_PACKAGE)
189-
if(NOT HUNTER_ENABLED)
190-
191-
if(OPENCV_FFMPEG_USE_FIND_PACKAGE STREQUAL "1" OR OPENCV_FFMPEG_USE_FIND_PACKAGE STREQUAL "ON")
192-
set(OPENCV_FFMPEG_USE_FIND_PACKAGE "FFMPEG")
193-
endif()
194-
find_package(${OPENCV_FFMPEG_USE_FIND_PACKAGE}) # Required components: AVCODEC AVFORMAT AVUTIL SWSCALE
195-
if(FFMPEG_FOUND OR FFmpeg_FOUND)
196-
set(HAVE_FFMPEG TRUE)
197-
else()
198-
message(STATUS "Can't find FFmpeg via find_package(${OPENCV_FFMPEG_USE_FIND_PACKAGE})")
199-
endif()
200-
201-
else(HUNTER_ENABLED)
202-
hunter_add_package(ffmpeg)
203-
find_package(ffmpeg CONFIG REQUIRED)
204-
205-
set(FFMPEG_FOUND TRUE)
206-
set(HAVE_FFMPEG TRUE)
207-
foreach(lib avcodec avformat avutil swresample swscale)
208-
get_target_property(
209-
${lib}_INCLUDE_DIR
210-
ffmpeg::${lib}
211-
INTERFACE_INCLUDE_DIRECTORIES
212-
)
213-
list(APPEND FFMPEG_INCLUDE_DIRS "${${lib}_INCLUDE_DIR}")
214-
list(APPEND FFMPEG_LIBRARIES "ffmpeg::${lib}")
215-
set(FFMPEG_lib${lib}_FOUND TRUE)
216-
endforeach()
217-
list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS)
218-
endif()
219-
elseif(WIN32 AND NOT ARM AND NOT OPENCV_FFMPEG_SKIP_DOWNLOAD)
220-
include("${OpenCV_SOURCE_DIR}/3rdparty/ffmpeg/ffmpeg.cmake")
221-
download_win_ffmpeg(FFMPEG_CMAKE_SCRIPT)
222-
if(FFMPEG_CMAKE_SCRIPT)
223-
set(HAVE_FFMPEG TRUE)
224-
set(HAVE_FFMPEG_WRAPPER 1)
225-
include("${FFMPEG_CMAKE_SCRIPT}")
226-
endif()
227-
elseif(PKG_CONFIG_FOUND)
228-
ocv_check_modules(FFMPEG libavcodec libavformat libavutil libswscale)
229-
ocv_check_modules(FFMPEG_libavresample libavresample)
230-
if(FFMPEG_libavresample_FOUND)
231-
ocv_append_build_options(FFMPEG FFMPEG_libavresample)
232-
endif()
233-
else()
234-
message(STATUS "Can't find ffmpeg - 'pkg-config' utility is missing")
235-
endif()
236-
endif()
237-
if(HAVE_FFMPEG
238-
AND NOT HAVE_FFMPEG_WRAPPER
239-
)
240-
try_compile(__VALID_FFMPEG
241-
"${OpenCV_BINARY_DIR}"
242-
"${OpenCV_SOURCE_DIR}/cmake/checks/ffmpeg_test.cpp"
243-
CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${FFMPEG_INCLUDE_DIRS}"
244-
LINK_LIBRARIES ${FFMPEG_LIBRARIES}
245-
OUTPUT_VARIABLE TRY_OUT
246-
)
247-
if(NOT __VALID_FFMPEG)
248-
#message(FATAL_ERROR "FFMPEG: test check build log:\n${TRY_OUT}")
249-
message(STATUS "WARNING: Can't build ffmpeg test code")
250-
set(HAVE_FFMPEG FALSE)
251-
else()
252-
ocv_append_build_options(VIDEOIO FFMPEG)
253-
endif()
254-
endif()
255-
256-
# --- VideoInput/DirectShow ---
257-
if(WITH_DSHOW)
258-
if(MSVC_VERSION GREATER 1499)
259-
set(HAVE_DSHOW 1)
260-
elseif(NOT HAVE_DSHOW)
261-
check_include_file(DShow.h HAVE_DSHOW)
262-
endif()
263-
endif(WITH_DSHOW)
264-
265-
# --- VideoInput/Microsoft Media Foundation ---
266-
ocv_clear_vars(HAVE_MSMF)
267-
if(WITH_MSMF)
268-
check_include_file(Mfapi.h HAVE_MSMF)
269-
check_include_file(D3D11.h D3D11_found)
270-
check_include_file(D3d11_4.h D3D11_4_found)
271-
if(D3D11_found AND D3D11_4_found)
272-
set(HAVE_DXVA YES)
273-
else()
274-
set(HAVE_DXVA NO)
275-
endif()
276-
endif(WITH_MSMF)
277-
2781
# --- Extra HighGUI and VideoIO libs on Windows ---
2792
if(WIN32)
2803
list(APPEND HIGHGUI_LIBRARIES comctl32 gdi32 ole32 setupapi ws2_32)

cmake/templates/OpenCVConfig.cmake.in

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,10 @@ if("@WEBP_FOUND@")
384384
find_dependency(WebP CONFIG)
385385
endif()
386386

387+
if("@Eigen3_FOUND@")
388+
find_dependency(Eigen3 CONFIG)
389+
endif()
390+
387391
if("@WITH_FFMPEG@")
388392
find_dependency(ffmpeg CONFIG)
389393
endif()

modules/java/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ if(OPENCV_INITIAL_PASS)
44
endif()
55

66
if(APPLE_FRAMEWORK OR WINRT OR NOT PYTHON_DEFAULT_AVAILABLE OR NOT (ANT_EXECUTABLE OR ANDROID_PROJECTS_BUILD_TYPE STREQUAL "GRADLE")
7-
OR NOT (JNI_FOUND OR (ANDROID AND (NOT DEFINED CMAKE_SYSTEM_VERSION OR CMAKE_SYSTEM_VERSION 7)))
7+
OR NOT (JNI_FOUND OR (ANDROID AND (NOT DEFINED CMAKE_SYSTEM_VERSION OR CMAKE_SYSTEM_VERSION GREATER 7)))
88
OR BUILD_opencv_world
99
)
1010
ocv_module_disable(java)

modules/videoio/cmake/detect_ffmpeg.cmake

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,32 @@
11
# --- FFMPEG ---
22
if(NOT HAVE_FFMPEG AND OPENCV_FFMPEG_USE_FIND_PACKAGE)
3+
if(NOT HUNTER_ENABLED) ### NO INDENT
34
if(OPENCV_FFMPEG_USE_FIND_PACKAGE STREQUAL "1" OR OPENCV_FFMPEG_USE_FIND_PACKAGE STREQUAL "ON")
45
set(OPENCV_FFMPEG_USE_FIND_PACKAGE "FFMPEG")
56
endif()
67
find_package(${OPENCV_FFMPEG_USE_FIND_PACKAGE}) # Required components: AVCODEC AVFORMAT AVUTIL SWSCALE
78
if(FFMPEG_FOUND OR FFmpeg_FOUND)
89
set(HAVE_FFMPEG TRUE)
910
endif()
11+
12+
else(HUNTER_ENABLED) ### NO INDENT
13+
hunter_add_package(ffmpeg)
14+
find_package(ffmpeg CONFIG REQUIRED)
15+
16+
set(FFMPEG_FOUND TRUE)
17+
set(HAVE_FFMPEG TRUE)
18+
foreach(lib avcodec avformat avutil swresample swscale)
19+
get_target_property(
20+
${lib}_INCLUDE_DIR
21+
ffmpeg::${lib}
22+
INTERFACE_INCLUDE_DIRECTORIES
23+
)
24+
list(APPEND FFMPEG_INCLUDE_DIRS "${${lib}_INCLUDE_DIR}")
25+
list(APPEND FFMPEG_LIBRARIES "ffmpeg::${lib}")
26+
set(FFMPEG_lib${lib}_FOUND TRUE)
27+
endforeach()
28+
list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS)
29+
endif()
1030
endif()
1131

1232
if(NOT HAVE_FFMPEG AND WIN32 AND NOT ARM AND NOT OPENCV_FFMPEG_SKIP_DOWNLOAD)
@@ -76,7 +96,7 @@ if(HAVE_FFMPEG AND NOT HAVE_FFMPEG_WRAPPER AND NOT OPENCV_FFMPEG_SKIP_BUILD_CHEC
7696
"${OpenCV_BINARY_DIR}"
7797
"${OpenCV_SOURCE_DIR}/cmake/checks/ffmpeg_test.cpp"
7898
CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${FFMPEG_INCLUDE_DIRS}"
79-
"-DLINK_LIBRARIES:STRING=${FFMPEG_LIBRARIES}"
99+
LINK_LIBRARIES ${FFMPEG_LIBRARIES}
80100
OUTPUT_VARIABLE TRY_OUT
81101
)
82102
if(NOT __VALID_FFMPEG)

0 commit comments

Comments
 (0)